Desarrollo de aplicaciones Metro

   Mariano Sanchez
   Guillermo Montiel
   Rodolfo Finochietti
Windows reimaginado
La misma experiencia en todos los
          dispositivos
Demo

Windows 8
Plataforma

• Windows Runtime (WinRT)
• Metro UI
• App Execution Environment
• Windows Store
Plataforma Windows 8
Ventajas de WinRT
• Es Asincronico
• Acceso unico y rico a todos los dispositivos,
  SO, y servicios
• Sintaxis inspirada en .NET
• Codigo nativo para dar la mejor experiencia
Lenguajes
Instalacion de aplicaciones
Componentes de un paquete

• App Manifest Contiene toda
  la informacion necesaria
  para isntalar al aplicacion

• Blockmap contiene hashes
  de todos los archivos de la
  aplicacion

• Signature valida la
  integridad del paquete
Process Isolation
Process state transitions
App data vs. User data
Roaming
Contracts
The Windows Store
Metro UI
Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8
8 rasgos de las aplicaciones Metro
Metro style design
Fast and fluid
Snap and scale beautifully
Use the right contracts
Invest in a great Tile
Feel connected & alive
Roam to the cloud
Embrace Metro principles
Windows Runtime desde .NET
Windows Runtime desde .NET
• Windows siempre ha proporcionado features
  que los desarrolladores pueden utilziar
  construir software sobre ellas.
• Pero nunca fue algo facil de usar desde C# or
  VB
El código de C# que hoy escribimos
 DllImport "avicap32.dll"            "capCreateCaptureWindow"
static extern int
  string                  int
  int    int    int           int
  int             int

 DllImport "avicap32.dll"
static extern bool
  int
   MarshalAs UnmanagedType          ref string
  int
   MarshalAs UnmanagedType          ref string
  int

// more and more of the same
Desarrollo de Aplicaciones Metro en Windows 8
El código que vamos a escribir en
                  Windows 8
using Windows.Media.Capture;

var         new CameraCaptureUI
                                        new Size

var          await                     CameraCaptureUIMode

if

      var            new BitmapImage
                         await              FileAccessMode
Desarrollo de Aplicaciones Metro en Windows 8
Demo

Utilizando WinRT desde C#
Windows Runtime Architecture
Windows Runtime desde .NET
• Usar Windows Runtime desde C# y Visual
  Basic se siente natural y familiar.
• La mayoria de las diferencias entre Windows
  Runtime y.NET estan ocultas
• El uso de Extension methods nos permite
  cerrar el gap entre Windows Runtime y el
  código manejado.
Casi todo se mapea directamente entre
       Windows Runtime y .NET
Mapeos de Colleciones entre .Net y
       Windows Runtime
Usando Extension Methods
FileOpenPicker picker = new FileOpenPicker();
picker.FileTypeFilter.Add("*");

StorageFile file = await picker.PickSingleFileAsync();



Windows.Storage.Streams.IInputStream inputStream =
    await file.OpenForReadAsync();



System.IO.Stream stream = inputStream.AsStream();
System.IO.StreamReader reader = new StreamReader(stream);

string contents = reader.ReadToEnd();
Componentes de Windows Runtime
           desde .Net
• Se pueden construir componentes manejados
  de WinRT components que se proyecten a C++
  o JavaScript bsiguiendo las siguientes reglas
  que aplican a los tipos y miembros publicos:
  – Firmas de la API solo pueden utilizar tipos de
    Windows Runtime.
  – Structs solo pueden contener campos publicos.
  – Todos los tipos deben ser sealed (excepto los
    controles XAML)
Demo

Creando componentes de Windows
       Runtime desde .Net
Async
var data = DownloadData(...);
ProcessData(data);




var
Asynchronous programming models
Asynchronous Methods
• Los “Asynchronous methods” transforman
  automaticamente “codigo normal” en un
  callback.
• Se marcan con el nuevo modificador “async”
• Devuelven void o Task<T>
• El operador “await” permite “yield control”
  – Continua cuando la operación se completa.
• Permite utilizar construcciones de código
  regulares
• Feel just like good old synchronous code!
Demo

Extensions & Async
Visual Studio 2012 XAML Designer
Visual Studio 2012 XAML Designer
Recap
Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8
HTML 5 y CSS
Desarrollo de Aplicaciones Metro en Windows 8
Web Sockets        Touch-first

Web Workers         Pointer events
                    Zoom regions
IndexedDB
                    Snap Points
Ecmascript 5

File API & Blobs   Forms

Geolocation         Validation
                    Input types
Audio tag

Video tag          Spell checking
WinJs
WinJS
Controles
Demo

Grid Template
Data Binding

 Template Binding.

 Programmatic Binding

 Declarative binding
Template Binding
Declarative binding
Programmatic Binding
Demo

Data Binding
Promise
 Es un object que es una promesa de un valor
  en el futuro.

 El procesamiento se implementa en l método
  then()
     then(completion, error, progress)

 then() devuelve otra promesa

 Se implementa en base.js: WinJS.Promise
¿A qué estamos acostumbrados?
Promises – Then escalonado
Promises - Join
Demo

Promises
¿Preguntas?
rodolfof@lagash.com
          @rodolfof
     http://shockbyte.net

      marianos@lagash.com
          @marianosz
hrrp://weblogs.asp.net/marianos

    guillermom@lagash.com

        ¡GRACIAS!

Más contenido relacionado

PPTX
Introducción a ASP.NET Web API
PPTX
ALM con Visual Studio y TFS 2013
PPTX
Introducción a WPF
PPTX
ASP.NET MVC Workshop Día 3
PPTX
NetRaf 2017 - Chat multiplataforma con reconocimiento de voz
PPTX
Asp.Net Core 1.0 Deep Dive
PPTX
NetRaf 2017 - La plataforma .NET en el 2017
PPTX
Integración y Entrega Continua con Visual Studio Online
Introducción a ASP.NET Web API
ALM con Visual Studio y TFS 2013
Introducción a WPF
ASP.NET MVC Workshop Día 3
NetRaf 2017 - Chat multiplataforma con reconocimiento de voz
Asp.Net Core 1.0 Deep Dive
NetRaf 2017 - La plataforma .NET en el 2017
Integración y Entrega Continua con Visual Studio Online

La actualidad más candente (20)

PPTX
.NET Core
PPTX
Gestión Agil de Entornos de Despliegue en la Nube
PDF
Probando aplicaciones AngularJS
PPTX
Analitics: Monitoriza tus aplicaciones móviles
PPTX
Jenkins ci + selenium
PPTX
ASP.NET 5 en Linux y Mac OS X: herramientas e integración
PPTX
ASP.NET MVC Workshop Día 2
PPSX
ASP.NET 5 & Tag Helpers
PDF
Bdd (Behavior Driven Development)
PPTX
Automation test con selenium, .NET y Azure devops
PPTX
Novedades Visual Studio 2013
PPTX
.NET Core 1.0 y ASP.NET Core 1.0
PPTX
Creando tu web con django v1.0
PPTX
DotNet 2019 | Luis Fraile - Tests de integración con .NET Core, Docker y Azur...
PDF
Integración contínua con Jenkins
ODP
Testing Ruby on Rails (spanish)
PDF
dockerize.it
PPTX
Introducción a ASPNET vNext
PPTX
Pruebas automatizadas y azure devops
.NET Core
Gestión Agil de Entornos de Despliegue en la Nube
Probando aplicaciones AngularJS
Analitics: Monitoriza tus aplicaciones móviles
Jenkins ci + selenium
ASP.NET 5 en Linux y Mac OS X: herramientas e integración
ASP.NET MVC Workshop Día 2
ASP.NET 5 & Tag Helpers
Bdd (Behavior Driven Development)
Automation test con selenium, .NET y Azure devops
Novedades Visual Studio 2013
.NET Core 1.0 y ASP.NET Core 1.0
Creando tu web con django v1.0
DotNet 2019 | Luis Fraile - Tests de integración con .NET Core, Docker y Azur...
Integración contínua con Jenkins
Testing Ruby on Rails (spanish)
dockerize.it
Introducción a ASPNET vNext
Pruebas automatizadas y azure devops
Publicidad

Destacado (9)

PPTX
HTML5 Geolocalizacion
PPTX
IoT y Dispositivos
PPTX
Introduccion a Node.js
PPTX
.NET Multiplataforma
PPTX
Azure IoT Hub
PPTX
ASP.NET Core 1.0
PPTX
HTML5 Mobile
DOCX
Trabalho de lubrificantes
HTML5 Geolocalizacion
IoT y Dispositivos
Introduccion a Node.js
.NET Multiplataforma
Azure IoT Hub
ASP.NET Core 1.0
HTML5 Mobile
Trabalho de lubrificantes
Publicidad

Similar a Desarrollo de Aplicaciones Metro en Windows 8 (20)

PPTX
Modern apps development by Pablo Zaidenvoren
PPTX
Desarrollo de aplicaciones Windows 8 Modern UI con Visual Studio 2012
PDF
Windows 8 y Metro para desarrolladores .NET
PDF
Desarrollo aplicaciones windows c#
PDF
Introducción al desarrollo para Winows Phone 8
PPTX
Vuelven los "Pelochos"
PPTX
RIATec Sharing code between win8 & wp8
PPTX
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
PPT
Visual studio.net
PDF
Windows 8 Universidad de Valencia
PDF
Boya.ca - Introducción a Windows Phone
DOCX
michael ascanio
PDF
Curso.de.introducción.net.con.visual.basic.2010
PDF
Curso.de.introducción.net.con.visual.basic.2010
PDF
Curso.de.introducción.net.con.visual.basic.2010
DOCX
computación e infomatica
PPT
Dce1 introduccion microsoft.net
PPTX
PPTX
Introducción a net
Modern apps development by Pablo Zaidenvoren
Desarrollo de aplicaciones Windows 8 Modern UI con Visual Studio 2012
Windows 8 y Metro para desarrolladores .NET
Desarrollo aplicaciones windows c#
Introducción al desarrollo para Winows Phone 8
Vuelven los "Pelochos"
RIATec Sharing code between win8 & wp8
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Visual studio.net
Windows 8 Universidad de Valencia
Boya.ca - Introducción a Windows Phone
michael ascanio
Curso.de.introducción.net.con.visual.basic.2010
Curso.de.introducción.net.con.visual.basic.2010
Curso.de.introducción.net.con.visual.basic.2010
computación e infomatica
Dce1 introduccion microsoft.net
Introducción a net

Más de Rodolfo Finochietti (17)

PPTX
Introduction to Rust language programming
PPTX
C#: Past, Present and Future
PPTX
Re-bot-lution
PPTX
Azure Functions
PPTX
Despliegue y Monitoreo de aplicaciones ASP.NET Core en Linux
PPTX
Windows 10 Developer Readiness
PPTX
Aplicaciones Real-Time con SignalR
PPTX
PPTX
Roslyn: el futuro de C#
PPTX
Microsoft 2014 Dev Plataform - Roslyn -& ASP.NET vNext
PPTX
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
PPTX
Proyectos de Base de Datos con Visual Studio 2013
PPTX
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
PPTX
ASP.NET MVC Workshop Día 1
PPTX
HTML5 Media Queries
PPTX
HTML5 Offline
PPTX
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Introduction to Rust language programming
C#: Past, Present and Future
Re-bot-lution
Azure Functions
Despliegue y Monitoreo de aplicaciones ASP.NET Core en Linux
Windows 10 Developer Readiness
Aplicaciones Real-Time con SignalR
Roslyn: el futuro de C#
Microsoft 2014 Dev Plataform - Roslyn -& ASP.NET vNext
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Proyectos de Base de Datos con Visual Studio 2013
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
ASP.NET MVC Workshop Día 1
HTML5 Media Queries
HTML5 Offline
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4

Último (20)

PPT
Protocolos de seguridad y mecanismos encriptación
PDF
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
PDF
Estrategia de apoyo valentina lopez/ 10-3
PPTX
Tema 1 Taller de tecnologia y proceso tecnologico.pptx
PPTX
Formato de texto, párrafo, documentos, columnas periodísticas, referencias.
PDF
NREN - red nacional de investigacion y educacion en LATAM y Europa: Caracteri...
PDF
Estrategia de Apoyo de Daylin Castaño (5).pdf
PPTX
Sistema de Gestión Integral TCA Ingenieros.pptx
PPTX
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
PPTX
Presentacion de Alba Curso Auditores Internos ISO 19011
DOCX
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
DOCX
TRABAJO GRUPAL (5) (1).docxjesjssjsjjskss
DOCX
Guía 5. Test de orientación Vocacional 2.docx
PDF
Guía_de_implementación_Marco_de_gobierno_y_gestión_de_TI_Universidades.pdf
PDF
0007_PPT_DefinicionesDeDataMining_201_v1-0.pdf
PDF
capacitación de aire acondicionado Bgh r 410
PPTX
Curso de generación de energía mediante sistemas solares
PPTX
El uso de las TIC en la vida cotidiana..
PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
PDF
Final Tecno .pdfjdhdjsjdhsjshshhshshshhshhhhhhh
Protocolos de seguridad y mecanismos encriptación
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
Estrategia de apoyo valentina lopez/ 10-3
Tema 1 Taller de tecnologia y proceso tecnologico.pptx
Formato de texto, párrafo, documentos, columnas periodísticas, referencias.
NREN - red nacional de investigacion y educacion en LATAM y Europa: Caracteri...
Estrategia de Apoyo de Daylin Castaño (5).pdf
Sistema de Gestión Integral TCA Ingenieros.pptx
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
Presentacion de Alba Curso Auditores Internos ISO 19011
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
TRABAJO GRUPAL (5) (1).docxjesjssjsjjskss
Guía 5. Test de orientación Vocacional 2.docx
Guía_de_implementación_Marco_de_gobierno_y_gestión_de_TI_Universidades.pdf
0007_PPT_DefinicionesDeDataMining_201_v1-0.pdf
capacitación de aire acondicionado Bgh r 410
Curso de generación de energía mediante sistemas solares
El uso de las TIC en la vida cotidiana..
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
Final Tecno .pdfjdhdjsjdhsjshshhshshshhshhhhhhh

Desarrollo de Aplicaciones Metro en Windows 8

Notas del editor

  • #23: WinRT is based on COM, interfaces, so doesn’t feel natural in OO lang.Projections take care of this so it feels natural.
  • #27: Surface area of Windows 8.Projection of that surface area into languages like VB, CS, C++.
  • #30: WinRT is based on COM, interfaces, so doesn’t feel natural in OO lang.Projections take care of this so it feels natural.
  • #44: WinRT is based on COM, interfaces, so doesn’t feel natural in OO lang.Projections take care of this so it feels natural.