Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Desarrollo de Aplicaciones Metro en Windows 8

3,247 views

Published on

Introducción al desarrollo de aplicaicones Metro en Windows 8

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Desarrollo de Aplicaciones Metro en Windows 8

  1. 1. Desarrollo de aplicaciones Metro Mariano Sanchez Guillermo Montiel Rodolfo Finochietti
  2. 2. Windows reimaginado
  3. 3. La misma experiencia en todos los dispositivos
  4. 4. DemoWindows 8
  5. 5. Plataforma• Windows Runtime (WinRT)• Metro UI• App Execution Environment• Windows Store
  6. 6. Plataforma Windows 8
  7. 7. 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
  8. 8. Lenguajes
  9. 9. Instalacion de aplicaciones
  10. 10. 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
  11. 11. Process Isolation
  12. 12. Process state transitions
  13. 13. App data vs. User data
  14. 14. Roaming
  15. 15. Contracts
  16. 16. The Windows Store
  17. 17. Metro UI
  18. 18. 8 rasgos de las aplicaciones MetroMetro style designFast and fluidSnap and scale beautifullyUse the right contractsInvest in a great TileFeel connected & aliveRoam to the cloudEmbrace Metro principles
  19. 19. Windows Runtime desde .NET
  20. 20. 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
  21. 21. 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
  22. 22. El código que vamos a escribir en Windows 8using Windows.Media.Capture;var new CameraCaptureUI new Sizevar await CameraCaptureUIModeif var new BitmapImage await FileAccessMode
  23. 23. DemoUtilizando WinRT desde C#
  24. 24. Windows Runtime Architecture
  25. 25. 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.
  26. 26. Casi todo se mapea directamente entre Windows Runtime y .NET
  27. 27. Mapeos de Colleciones entre .Net y Windows Runtime
  28. 28. Usando Extension MethodsFileOpenPicker 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();
  29. 29. 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)
  30. 30. DemoCreando componentes de Windows Runtime desde .Net
  31. 31. Async
  32. 32. var data = DownloadData(...);ProcessData(data);var
  33. 33. Asynchronous programming models
  34. 34. 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!
  35. 35. DemoExtensions & Async
  36. 36. Visual Studio 2012 XAML Designer
  37. 37. Visual Studio 2012 XAML Designer
  38. 38. Recap
  39. 39. HTML 5 y CSS
  40. 40. Web Sockets Touch-firstWeb Workers Pointer events Zoom regionsIndexedDB Snap PointsEcmascript 5File API & Blobs FormsGeolocation Validation Input typesAudio tagVideo tag Spell checking
  41. 41. WinJs
  42. 42. WinJS
  43. 43. Controles
  44. 44. DemoGrid Template
  45. 45. Data Binding Template Binding. Programmatic Binding Declarative binding
  46. 46. Template Binding
  47. 47. Declarative binding
  48. 48. Programmatic Binding
  49. 49. DemoData Binding
  50. 50. 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
  51. 51. ¿A qué estamos acostumbrados?
  52. 52. Promises – Then escalonado
  53. 53. Promises - Join
  54. 54. DemoPromises
  55. 55. ¿Preguntas?
  56. 56. rodolfof@lagash.com @rodolfof http://shockbyte.net marianos@lagash.com @marianoszhrrp://weblogs.asp.net/marianos guillermom@lagash.com ¡GRACIAS!

×