Desarrollo en Windows 8 y

Windows Phone 8 con XAML y C#
Josué Yeray Julián Ferreiro
Rafael Serna Medina
Ibón Landa Martín

DESARROLLO EN WINDOWS 8 Y WINDOWS PHONE 8 CON XAML Y C#
No está permitida la reproducción total o parcial de este libro, ni su tratamiento informático, ni la
transmisión de ninguna forma o por cualquier medio, ya sea electrónico, mecánico, por fotocopia,
por registro u otros métodos, sin el permiso previo y por escrito de los titulares del Copyright.
Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita
fotocopiar o escanear algún fragmento de esta obra.
DERECHOS RESERVADOS © 2013, respecto a la primera edición en español, por
Krasis Consulting, S. L.
www.Krasis.com
ISBN: 978-84-939659-6-9
CREATIVIDAD
Diseño cubierta: Pablo Iglesias Francisco
Frutas cubierta: Las cuatro frutas elegidas (Naranja, mandarina, limón y lima) son cítricos
del género Citrus que pertenecen a la familia de las Rutáceas. Esta familia comprende más de 1.600
especies. El género botánico Citrus es el más importante del grupo, y consta de unas 20 especies con
frutos comestibles todos ellos muy abundantes en vitamina C, flavonoides y aceites esenciales.
El naranjo dulce es el más cultivado de todos los cítricos, siendo la especie más importante del género
Citrus. Tras ella le siguen en importancia sus parientes más próximos: mandarinos, limoneros,
pomelos, limeros y kumquats.

Agradecimientos
“Escribir un libro es un sacrificio, no solo para quien lo redacta. Quiero agradecer
a mi mujer Hilda y a mis hijos Roberto, Laura y Sofia, la paciencia infinita que han
tenido conmigo, con mis largos días ausente tras el teclado. También quiero agradecer
a mi padre Amable, mi madre Estrella y mi abuela Josefa, las tres figuras que hicieron
de mi lo que soy hoy en día. A todos, gracias con el corazón.”
Josué Yeray Julián
“Cuando hace ya unos cuantos meses, Yeray y yo decidimos escribir este libro, jamás
me hubiera imaginado que fuera a ser una de las tareas más costosas de todo cuanto
he realizado hasta el momento. Todo el tiempo que he dedicado en su escritura, se lo
he tenido que robar al sueño y por supuesto a mi familia. Por esa razón, solo puedo
agradecer a mi mujer Susana y a mi hija Celia, su inmensa paciencia al verle un día sí
y otro también pegado al portátil, sin dedicarlas en los últimos meses el tiempo que
ambas se merecen. Gracias por vuestro apoyo constante y por creer tanto en mí.”
Rafael Serna
“A mi hija Laia, que sin lugar a dudas es lo mejor que me ha pasado”
Ibón Landa

Contenido
AGRADECIMIENTOS ................................................................................................ iii
CONTENIDO .............................................................................................................. iv
AUTORES ..................................................................................................................xiii
PRÓLOGO JOSÉ BONNIN - MICROSOFT ........................................................... xv
PRÓLOGO ÓSCAR GUTIÉRREZ - NOKIA ......................................................... xvii
CAPÍTULO 1: WINDOWS 8 Y WINDOWS PHONE 8 ......................................19
1.- Estructura del libro ................................................................................................................... 19
1.1.- Objetivos.......................................................................................................................... 19
1.2.- Estructura ........................................................................................................................ 20
1.2.1.- Desarrollo para Windows 8 y Windows Phone 8. ....................................... 20
1.2.2.- Patrones y buenas prácticas. ............................................................................... 20
1.2.3.- Desarrollando para Windows 8 y Windows Phone 8. ................................ 21
2.- Microsoft Design Style ............................................................................................................. 21
3.- Conociendo Windows 8 ......................................................................................................... 23
3.1.- Windows 8 y el hardware ........................................................................................... 23
3.1.1.- Sistema multitouch ................................................................................................ 24
3.1.2.- Soporte para NFC ................................................................................................. 24
3.1.3.- Sensores ................................................................................................................... 24
3.1.4.- Otras características ............................................................................................. 25
3.2.- Windows 8 y el software............................................................................................. 25
3.2.1.- Plataforma de desarrollo ...................................................................................... 25
4.- Conociendo Windows Phone 8 ............................................................................................ 27
4.1.- Windows Phone 8 y el hardware ............................................................................. 27
4.1.1.- Multiresolución de pantalla.................................................................................. 28
4.1.2.- NFC ........................................................................................................................... 28
4.2.- Windows Phone 8 y el software................................................................................ 28
4.2.1.- Cambio en los frameworks de desarrollo ....................................................... 29
4.2.2.- Otras mejoras......................................................................................................... 30
5.- Herramientas de desarrollo.................................................................................................... 30
5.1.- Herramientas para Windows 8 .................................................................................. 30
5.1.1.- Visual Studio Express para Windows 8............................................................ 32
5.1.2.- Microsoft Blend para Visual Studio ................................................................... 33
5.1.3.- Simulador de Windows 8 .................................................................................... 34
5.1.4.- Windows App Certification Kit ......................................................................... 36
5.2.- Herramientas para Windows Phone 8 ..................................................................... 37
5.2.1.- Visual Studio Express para Windows Phone 8............................................... 39

v

vi Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

5.2.2.5.2.3.5.2.4.5.2.5.5.2.6.5.2.7.5.2.8.5.2.9.-

Blend para Visual Studio 2012 ............................................................................ 42
Emulador de Windows Phone 8 ........................................................................ 43
Application Deployment Tool ............................................................................ 44
Windows Phone Developer Registration ........................................................ 44
Isolated Storage Explorer .................................................................................... 45
Simulation Dashboard para Windows Phone ................................................. 45
Windows Phone Application Analysis .............................................................. 47
Windows Phone Store Test Kit ......................................................................... 48

CAPÍTULO 2: MVVM ................................................................................................49
1.2.3.4.5.6.-

7.8.-

Introducción................................................................................................................................ 49
Enlace a datos ............................................................................................................................. 51
ViewModel................................................................................................................................... 53
Notificación de cambios .......................................................................................................... 56
4.1.- ViewModel Base ............................................................................................................. 58
Converters .................................................................................................................................. 59
Comandos ................................................................................................................................... 64
6.1.- CanExecuteChanged ..................................................................................................... 67
6.2.- DelegateCommand........................................................................................................ 70
6.2.1.- Lazy<T>.................................................................................................................... 73
ViewModel Locator................................................................................................................... 74
Nomenclatura y organización................................................................................................. 76
8.1.- Nomenclatura ................................................................................................................. 77
8.2.- Organización ................................................................................................................... 77

CAPÍTULO 3: MVVM AVANZADO........................................................................79
1.- Introducción................................................................................................................................ 79
2.- Inyección de dependencias (DI) ............................................................................................. 79
2.1.- Unity.................................................................................................................................. 81
2.1.1.- Tiempo de vida de una instancia ........................................................................ 84
2.1.2.- Registro de tipos .................................................................................................... 86
2.2.- MicroIoC .......................................................................................................................... 87
2.2.1.- MetroIoC para Windows 8 ................................................................................. 87
2.2.2.- MicroIoC para Windows Phone 8 .................................................................... 89
2.3.- Autofac ............................................................................................................................. 91
2.3.1.- Tiempo de vida de instancia ................................................................................ 93
2.3.2.- Registro de tipos .................................................................................................... 95
2.4.- ¿Qué contendor escoger?............................................................................................ 95
2.5.- ¿Cuándo usar inyección de dependencias?.............................................................. 96
3.- Servicios ....................................................................................................................................... 96
3.1.- Principios y buenas prácticas .................................................................................... 101
3.1.1.- Principio de responsabilidad única................................................................... 102
3.1.2.- Uso de interfaces ................................................................................................. 102
3.1.3.- Principio de segregación de interfaces ........................................................... 103

Contenido vii

4.- Frameworks para MVVM....................................................................................................... 103
4.1.- MVVMLight .................................................................................................................... 104
4.2.- ¿Cuándo debo usar un framework? ........................................................................ 110
5.- Pruebas unitarias...................................................................................................................... 110
5.1.- Qué son y qué no son ................................................................................................ 111
5.2.- Mocks y Stubs ............................................................................................................... 112
5.2.1.- Mocks ...................................................................................................................... 113
5.2.2.- Stubs ........................................................................................................................ 113
5.3.- Pruebas unitarias en Windows 8 ............................................................................. 113
5.4.- Pruebas unitarias en Windows Phone 8 ................................................................ 120
CAPÍTULO 4: XAML ...............................................................................................123
1.- Introducción.............................................................................................................................. 123
2.- XAML ......................................................................................................................................... 123
3.- Interfaz de usuario en Windows 8 ...................................................................................... 126
3.1.- Composición de la pantalla ....................................................................................... 126
3.1.1.- Marco ...................................................................................................................... 126
3.1.2.- Página ...................................................................................................................... 127
3.1.3.- Elementos .............................................................................................................. 129
4.- Interfaz de usuario en Windows Phone 8......................................................................... 130
4.1.- Composición de pantalla............................................................................................ 130
4.1.1.- Marco ...................................................................................................................... 130
4.1.2.- Página ...................................................................................................................... 131
4.1.3.- Elementos .............................................................................................................. 133
5.- Elementos de layout................................................................................................................ 134
5.1.- Canvas............................................................................................................................. 134
5.1.1.- ViewBox ................................................................................................................. 136
5.2.- StackPanel ...................................................................................................................... 136
5.3.- Grid ................................................................................................................................. 138
5.3.1.- Absoluto, auto y asterisco ................................................................................. 141
5.4.- VariableSizedWrapGrid.............................................................................................. 145
6.- Personalizando nuestra interfaz ........................................................................................... 148
6.1.- Recursos......................................................................................................................... 148
6.1.1.- Diccionarios de recursos en Windows 8 ...................................................... 150
6.1.2.- Diccionarios de recursos en Windows Phone 8 ......................................... 152
6.2.- Estilos .............................................................................................................................. 153
6.2.1.- Blend ....................................................................................................................... 157
6.3.- Plantillas .......................................................................................................................... 161
6.3.1.- Blend ....................................................................................................................... 167
CAPÍTULO 5: INTERFAZ DE USUARIO ............................................................171
1.- Introducción.............................................................................................................................. 171
2.- Interfaz de usuario en Windows Store .............................................................................. 171
2.1.- Conceptos preliminares ............................................................................................. 172
2.1.1.- Grid System ........................................................................................................... 172
2.1.2.- Tipografía ............................................................................................................... 173

viii Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

2.2.- Modos de Visualización .............................................................................................. 173
2.3.- Navegación .................................................................................................................... 179
2.4.- GridView ........................................................................................................................ 185
2.4.1.- Zoom Semántico.................................................................................................. 193
2.5.- FlipView .......................................................................................................................... 198
2.6.- ApplicationBar .............................................................................................................. 201
2.7.- Localización ................................................................................................................... 206
3.- Interfaz de usuario en Windows Phone 8......................................................................... 210
3.1.- Resoluciones ................................................................................................................. 210
3.2.- Orientación ................................................................................................................... 213
3.3.- Navegación .................................................................................................................... 215
3.4.- Panorama ....................................................................................................................... 222
3.4.1.- Recomendaciones de uso .................................................................................. 224
3.4.2.- Usando el elemento Panorama ........................................................................ 225
3.5.- Pivot ................................................................................................................................ 227
3.5.1.- Recomendaciones de uso .................................................................................. 229
3.5.2.- Usando el elemento Pivot.................................................................................. 229
3.6.- ApplicationBar .............................................................................................................. 231
3.7.- SystemTray .................................................................................................................... 237
3.8.- Localización ................................................................................................................... 238
CAPÍTULO 6: CICLO DE VIDA DE APLICACIONES ......................................247
1.- Introducción.............................................................................................................................. 247
2.- Ciclo de vida en Windows Store ........................................................................................ 247
2.1.- Activación de la aplicación......................................................................................... 249
2.2.- Suspensión de la aplicación........................................................................................ 253
2.3.- Visibilidad de aplicación .............................................................................................. 255
2.4.- Tareas en segundo plano ........................................................................................... 256
3.- Ciclo de vida en Windows Phone 8 ................................................................................... 256
3.1.- Detección de actividad ............................................................................................... 262
3.2.- Inicio, suspensión y activación .................................................................................. 263
CAPÍTULO 7: ACCESO AL SISTEMA .................................................................265
1.- Introducción.............................................................................................................................. 265
2.- Windows Store ........................................................................................................................ 266
2.1.- Configuración de contratos o extensiones ........................................................... 267
2.2.- Account Picture Provider .......................................................................................... 268
2.3.- AutoPlay y File Type Association ............................................................................ 271
2.3.1.- Autoplay Content ................................................................................................ 271
2.3.2.- Autoplay Device ................................................................................................... 276
2.4.- Background Tasks ........................................................................................................ 277
2.4.1.- Limitaciones........................................................................................................... 280
2.5.- Contact Picker.............................................................................................................. 281
2.5.1.- Seleccionando contactos.................................................................................... 283
2.6.- Search ............................................................................................................................. 285
2.7.- Settings ........................................................................................................................... 288

Contenido ix

2.8.- Share ............................................................................................................................... 292
2.8.1.- Share Source ......................................................................................................... 293
2.8.2.- Share Target .......................................................................................................... 295
3.- Windows Phone 8 ................................................................................................................... 298
3.1.- Lanzadores..................................................................................................................... 298
3.1.1.- MapsTask................................................................................................................ 299
3.1.2.- MapsDirectionsTask............................................................................................ 300
3.1.3.- MapDownloaderTask.......................................................................................... 301
3.1.4.- MapUpdaterTask.................................................................................................. 302
3.1.5.- SaveAppointmentTask ........................................................................................ 302
3.1.6.- ShareMediaTask.................................................................................................... 304
3.2.- Selectores ...................................................................................................................... 305
3.2.1.- AddWalletItemTask ............................................................................................ 306
3.2.2.- PhotoChooserTask ............................................................................................. 308
3.3.- Lenses ............................................................................................................................. 309
3.4.- Cámara ........................................................................................................................... 311
3.5.- Extensibilidad de búsquedas...................................................................................... 314
3.6.- Comunicación entre aplicaciones ............................................................................ 317
3.6.1.- Asociación de archivos ....................................................................................... 318
3.6.2.- Asociación de esquemas URI ............................................................................ 321
3.7.- Voz 323
3.7.1.- Comandos de voz ................................................................................................ 323
3.7.2.- Voz a texto ............................................................................................................ 326
3.7.3.- Texto a voz............................................................................................................ 327
CAPÍTULO 8: TILES Y NOTIFICACIONES .......................................................329
1.- Tiles ............................................................................................................................................. 329
1.1.- Tiles en Windows 8 .................................................................................................... 330
1.1.1.- Cambios en los tiles de la aplicación............................................................... 332
1.1.2.- Combinación de tipos de tile............................................................................ 336
1.1.3.- Gestión de las notificaciones de tiles.............................................................. 338
1.1.4.- Programación de notificaciones de tiles ....................................................... 338
1.1.5.- Badges ..................................................................................................................... 341
1.2.- Tiles en Windows Phone 8 ....................................................................................... 343
1.2.1.- Templates de tiles Windows Phone 8 ............................................................ 344
1.2.2.- Manejo de tiles en ejecución ............................................................................. 347
1.3.- Tiles Secundarios ......................................................................................................... 349
1.3.1.- Tiles secundarios en Windows 8 ..................................................................... 350
1.3.2.- Actualización de tiles secundarios en Windows 8 ...................................... 354
1.3.3.- Tiles secundarios en Windows Phone 8 ........................................................ 355
2.- Notificaciones ........................................................................................................................... 358
2.1.- Notificaciones en Windows 8 .................................................................................. 358
2.2.- Notificaciones en Windows Phone 8 ..................................................................... 363
3.- Pantalla de bloqueo ................................................................................................................. 364
3.1.- Notificaciones en la pantalla de bloqueo en Windows 8 .................................. 365
3.2.- Notificaciones en la pantalla de bloqueo de Windows Phone 8 ..................... 368
4.- Notificaciones push ................................................................................................................. 371

x Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

4.1.- Microsoft Push Notification Services...................................................................... 372
4.2.- Notificaciones Push en Windows Store Apps ..................................................... 373
4.2.1.- Servicio de backend para el envío de notificaciones................................... 375
4.3.- Notificaciones push en Windows Phone Apps .................................................... 381
4.3.1.- Servicio de backend para el envío de notificaciones................................... 387
CAPÍTULO 9: SENSORES......................................................................................395
1.- Introducción.............................................................................................................................. 395
2.- GPS .............................................................................................................................................. 396
2.1.- Dispatcher en Windows Phone 8 ........................................................................... 402
2.2.- GPS en segundo plano en Windows Phone 8 ...................................................... 403
2.2.1.- Consideraciones de rendimiento..................................................................... 406
2.3.- Mapas .............................................................................................................................. 406
2.3.1.- Bing Maps para aplicaciones Windows Store ............................................... 407
2.3.2.- Maps para aplicaciones Windows Phone 8 ................................................... 410
3.- Microsoft.Devices vs Windows.Devices ........................................................................... 413
4.- Acelerómetro ........................................................................................................................... 414
5.- Brújula......................................................................................................................................... 418
6.- Giroscopio................................................................................................................................. 421
7.- Otros sensores ........................................................................................................................ 423
7.1.- Inclinómetro.................................................................................................................. 423
7.2.- Orientación ................................................................................................................... 423
7.3.- Luminosidad .................................................................................................................. 423
8.- Compartir código .................................................................................................................... 424
8.1.- Componentes WinRT ................................................................................................ 424
8.2.- Portable Class Libraries ............................................................................................. 424
8.3.- Enlace de archivos ....................................................................................................... 424
8.4.- ¿Qué usamos entonces? ............................................................................................ 425
8.5.- Un ejemplo práctico: GPS compartido .................................................................. 425
CAPÍTULO 10: N.F.C. Y BLUETOOTH ..............................................................433
1.- ¿Qué es NFC?........................................................................................................................... 433
1.1.- Funcionamiento. ........................................................................................................... 433
1.2.- Usos de la tecnología NFC........................................................................................ 435
1.3.- Tapping ........................................................................................................................... 436
2.- Como usar nfc.......................................................................................................................... 437
2.1.- Comunicación entre aplicaciones ............................................................................ 437
2.2.- Envío de mensajes........................................................................................................ 440
2.2.1.- Parada del envío de mensajes ........................................................................... 444
2.3.- Subscripción a mensajes ............................................................................................. 444
2.3.1.- Parada de la subscripción ................................................................................... 446
3.- ¿Que es bluetooth? ................................................................................................................. 446
3.1.- Funcionamiento ............................................................................................................ 446
3.2.- Usos de la tecnología Bluetooth .............................................................................. 447
4.- Como usar bluetooth ............................................................................................................. 447
4.1.- Comunicación aplicación con aplicación ................................................................ 448

Contenido xi

4.1.1.- Detección de conexión ...................................................................................... 449
4.2.- Comunicación aplicación a dispositivo ................................................................... 450
CAPÍTULO 11: COMUNICACIONES ..................................................................453
1.- Introducción.............................................................................................................................. 453
2.- WCF ........................................................................................................................................... 453
2.1.- EndPoints ....................................................................................................................... 454
2.2.- WCF en aplicaciones Windows Store ................................................................... 455
2.3.- WCF en aplicaciones Windows Phone 8 .............................................................. 457
3.- OData ......................................................................................................................................... 459
4.- RSS & Atom .............................................................................................................................. 462
4.1.- HttpWebRequest......................................................................................................... 462
CAPÍTULO 12: WINDOWS AZURE ....................................................................467
1.- Introducción.............................................................................................................................. 467
2.- Cloud Computing .................................................................................................................... 468
3.- Windows Azure....................................................................................................................... 471
3.1.- Beneficios de Windows Azure ................................................................................. 472
4.- Virtual Machines....................................................................................................................... 473
5.- Web Sites .................................................................................................................................. 479
6.- Cloud Services.......................................................................................................................... 486
6.1.- La configuración ........................................................................................................... 490
6.2.- Entorno de simulación ................................................................................................ 493
6.3.- Desplegar una aplicación en Windows Azure ...................................................... 494
7.- Windows Azure Storage ....................................................................................................... 498
7.1.- Windows Azure Table ............................................................................................... 498
7.2.- Windows Azure Blobs ............................................................................................... 499
7.3.- Windows Azure Queues ........................................................................................... 499
7.4.- Windows Azure Drive ............................................................................................... 499
7.5.- Crear un servicio de almacenamiento.................................................................... 500
8.- SQL Database ........................................................................................................................... 500
8.1.- Aprovisionamiento ...................................................................................................... 501
8.2.- Mi primera base de datos SQL Database .............................................................. 502
9.- Mobile Services ........................................................................................................................ 505
10.- Conclusión ............................................................................................................................. 515
APÉNDICE A: PUBLICACIÓN DE NUESTRAS APLICACIONES .................517
1.- introducción .............................................................................................................................. 517
2.- Publicación en la windows store ......................................................................................... 517
2.1.- Creación de una cuenta de desarrollador. ............................................................ 518
2.2.- Creación de la aplicación en la Store. .................................................................... 520
2.3.- Preparación de nuestras aplicaciones. .................................................................... 522
2.4.- Envío de las aplicaciones a la Store. ........................................................................ 526
2.5.- Seguimiento de nuestras aplicaciones..................................................................... 530

xii Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

3.- publicación en windows phone store ................................................................................. 531
3.1.- Creación de una cuenta de desarrollador. ............................................................ 531
3.2.- Preparación de nuestras aplicaciones para publicar............................................ 532
3.3.- Creación y envío de la aplicación en la Store....................................................... 535
ÍNDICE ANALÍTICO ...............................................................................................539

Autores
Josué Yeray Julián
Tiene más de 10 años de experiencia trabajando con
tecnologías Microsoft. Actualmente está centrado en Windows
Phone y Windows 8, enfocado en el desarrollo de aplicaciones de
movilidad. Mantiene un blog en la comunidad geeks.ms y colabora
activamente con los grupos de usuarios españoles, dando charlas
allí donde le dejan. Ha sido reconocido con los galardones Nokia
Developer Champion y Microsoft MVP en la categoría de
Windows Phone development. Trabaja en Plain Concepts.
Rafael Serna
Jefe de producto en SDM Programas, programador de
nacimiento e inquieto informáticamente hablando hasta el extremo.
Trabaja desde hace ya más de 12 años desarrollando aplicaciones
de gestión para la pequeña y mediana empresa, con tecnologías
Microsoft. Fan y evangelista aficionado de Windows Phone, junto
a Josue Yeray realiza un podcast sobre desarrollo para esta
plataforma, llamado WP Controla. Participa como speaker en
eventos de desarrollo y es habitual del grupo de usuarios Nuberos
.NET de Cantabria.
Ibón Landa:
Lleva más de 10 años dedicado al desarrollo de software, con el
que ha tenido la oportunidad de trabajar en diferentes entornos y
tecnologías. Participa de forma activa en la comunidad,
escribiendo su blog, manteniendo un portal sobre Windows Azure
y colaborando con Microsoft y grupos de usuarios en eventos de
formación, talleres y giras de producto. Ha sido reconocido con el
galardón de Microsoft MVP en la categoría de Windows Azure.
Trabaja en Plain Concepts.

Prólogo José Bonnin - Microsoft
En tan solo un mes desde la comercialización oficial de Windows 8 hemos visto
cómo se han vendido 40 millones de licencias, superando a su predecesor Windows 7
en términos de actualizaciones. Windows está viviendo un momento de expansión a
otras plataformas en las que tradicionalmente no tenía presencia, como son los
dispositivos con arquitectura ARM. Además nos encontramos ya en la segunda
generación de dispositivos con Windows Phone los cuales, gracias al OS Windows
Phone 8, comparten el mismo Kernel con Windows 8.
Todo esto hace que la llegada de Windows 8 suponga una oportunidad de negocio
excepcional para los desarrolladores, puesto que no hay que olvidar que todos los
dispositivos con esta versión de Windows incorporan la nueva Windows Store, la cual
permite distribuir y comercializar apps para más de 200 mercados y 100 idiomas.
Josue Yeray, Rafa Serna e Ibón Landa nos van a adentrar a través de este libro en el
desarrollo de apps, tanto para Windows 8 como para Windows Phone, de manera que
podamos aprender a aprovechar al máximo las capacidades de ambas plataformas. Este
libro no se limita a ser una simple referencia de funcionalidades, sino que los autores
han dedicado tiempo a compartir su experiencia personal con Windows 8 y Windows
Phone, al tiempo que nos describen cómo implementar las apps haciendo uso de
tecnologías emergentes como NFC y buenas prácticas de desarrollo. Entre ellas
encontraremos cómo implementar patrones de diseño tales como MVVM que nos
facilitará, entre otras cosas, poder compartir código entre ambas plataformas de manera
que podamos rentabilizar al máximo nuestro tiempo.
Al finalizar el libro, el lector estará en grado de poder desarrollar, publicar y
comercializar sus apps a través de la Windows Store tanto para Windows 8 como para
Windows Phone.
Jose Bonnin
Technical Evangelist Manager. Microsoft Ibérica.

Prólogo Óscar Gutiérrez - Nokia
Querido lector,
Cuando Yeray me ofreció el poder escribir un prólogo de su segundo libro, mi respuesta
fue sin dudarlo “¡por supuesto! ¡Será un placer!”. Me entusiasmó tanto la idea que las ideas
empezaron a agolparse en mi mente sin poder detenerlas, peleándose unas con otras por ser
las primeras que sean reflejadas en estas líneas que ahora lees recién impresas. Días
después me encuentro aquí sentado delante de mi ordenador, mirando fijamente una página
de Word en blanco con el reto de plasmar y sintetizar en unas pocas líneas todo aquello que
me gustaría trasmitir sobre el autor y el excelente libro que tienes entre tus manos.
Sin darme cuenta me estoy enfrentando al reto que personas como Yeray convierten en
un arte día a día, con una facilidad innata para aglutinar en unas pocas frases, en unas pocas
palabras, en unos pocos métodos, todo el conocimiento adquirido tras largos años de
experiencia de una forma clara, sencilla y entendible por los lectores, los oyentes o los
desarrolladores.
Siempre recordaré la primera vez que pude ver a Yeray en acción. Fue en un evento de
desarrolladores en el que participamos juntos en una Universidad de Madrid y en el que él
impartió una sesión magistral sobre Windows Phone 7. Lo primero que me sorprendió en su
charla fue la conexión total con la audiencia y el entusiasmo en cada uno de sus gestos, pero
su valor diferenciador fue, sin lugar a dudas, la capacidad de sintetizar conceptos complejos
y transmitirlos a los oyentes de forma que resulten tan obvios como una simple suma.
Más de un año después, y con un gran número de charlas compartidas, puedo asegurar
que Yeray, junto a su inseparable compañero de podcasts Rafa Serna, e Ibón Landa, son las
personas ideales para mostrarte a lo largo de este apasionante libro una de las mayores
revoluciones de software de los últimos tiempos, Windows Phone 8 y Windows 8.
La combinación de Windows 8 y Windows Phone 8 se ha convertido en la tecnología
software más avanzada existente para móviles, tablets y PC. Este increíble software
proporciona funcionalidades nunca vistas hasta el momento y, por primera vez en la
historia, permite a los móviles compartir el mismo corazón software (“Shared Windows
Core”) que un ordenador, ofreciendo finalmente a los desarrolladores el anhelado desarrollo
multi-dispositivo: móvil, tablet y ordenador.
Tanto si tienes experiencia en desarrollos con Windows o Windows Phone 7, como si
eres nuevo en la plataforma, te recomiendo que busques un sitio cómodo, relajes tu mente y
enciendas tu ordenador para disfrutar de la lectura de este libro y, casi sin darte cuenta,
aprendas a desarrollar aplicaciones con las tecnologías más novedosas de una forma
sencilla gracias a sus múltiples ejemplos creados para ti.
Y como diría un auténtico Yeray…¡que la fuerza te acompañe!
Oscar Gutiérrez Isiegas
Developer Relations Manager. Nokia Spain

CAPÍTULO

Windows 8 y Windows
Phone 8

1

1.- ESTRUCTURA DEL LIBRO
En ese capítulo comenzaremos por definir la estructura general del libro. A
continuación hablaremos tanto de las nuevas características de Windows 8 y de
Windows Phone 8, como de las herramientas de desarrollo que Microsoft pone a
nuestro alcance para desarrollar aplicaciones para ambas plataformas. Asimismo
daremos un repaso al nuevo paradigma Microsoft Design Style.

1.1.- Objetivos
A continuación expondremos cuáles son los objetivos de este libro.
En primer lugar, veremos las nuevas y renovadas herramientas que tenemos a
nuestra disposición para desarrollar aplicaciones Windows Store para Windows 8, y
aplicaciones Windows Phone 8. Una vez conocidas y revisadas estas herramientas se
sentarán las bases necesarias para desarrollar aplicaciones de calidad para estos dos
entornos. ¡Qué mejor manera que empezar que viendo los conocimientos necesarios
para poder implementar el patrón MVVM!, además de otras buenas prácticas para
desarrollar nuestros proyectos. Entre otras veremos el patrón Model View ViewModel,
la inyección de dependencias, qué son y para qué sirven los test unitarios, etc…
Para afianzar los conocimientos adquiridos sobre buenas prácticas en el desarrollo
de software, nos pondremos manos a la obra descubriendo y desarrollando las nuevas
características que se incorporan en el paradigma del desarrollo de las aplicaciones
Windows Store.
19

20 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

En definitiva, este libro trata de cubrir dos grandes áreas, a saber: por un lado, ver
cómo desarrollar para Windows 8 y Windows Phone 8 de forma casi simultánea; para
ello haremos uso de patrones de diseño y buenas prácticas en el desarrollo de software.
En segundo lugar repasaremos de forma concisa las nuevas características, elementos,
reglas y prácticas necesarias para desarrollar aplicaciones profesionales para ambas
plataformas.
Como el lector puede observar, este libro va dirigido a cualquier desarrollador, con
independencia de su nivel o experiencia. Por un lado, un desarrollador novel aprenderá
cuáles son las mejores prácticas en el desarrollo de software, y un desarrollador más
avanzado conocerá cuáles son las novedades que incorporan los nuevos sistemas
Windows 8 y Windows Phone 8, pudiendo además revisar sus conocimientos de
patrones y buenas prácticas.

1.2.- Estructura
Como ya hemos comentado previamente, el libro se estructura en tres bloques:

1.2.1.- Desarrollo para Windows 8 y Windows Phone 8.
En esta parte, que comprende únicamente el primer capítulo, veremos cuáles son las
nuevas herramientas para poder llevar a cabo nuestros desarrollos, cuáles han cambiado
y se han actualizado, y qué es el nuevo paradigma de las aplicaciones Windows Store.

1.2.2.- Patrones y buenas prácticas.
En los tiempos que corren y con objeto de alcanzar un nivel de calidad adecuado en
los desarrollos a realizar, se hace imperativo el uso de buenas prácticas a la hora de
desarrollar software. Asimismo, el uso de patrones de diseño es fundamental para
poder hacer desarrollos que usen una tecnología común a varias plataformas,
permitiendo así ser implementados en diferentes sistemas con un coste en la realización
asumible.
Cada vez son más los sistemas objeto de nuestros desarrollos, más las diferentes
plataformas a las que los desarrolladores nos debemos enfrentar. Y son estas
directrices, el uso de patrones y la aplicación de buenas prácticas las que nos pueden
ayudar a salir vencedores de la batalla. De lo contrario el coste, no solo económico sino
mental, puede llegar a ser inasumible. Dedicaremos a este bloque los capítulos 2 y 3 de
este libro.

Windows 8 y Windows Phone 8 21

1.2.3.- Desarrollando para Windows 8 y Windows Phone 8.
En nuestro último bloque, que ocupará la mayor parte del libro, revisaremos las
nuevas funcionalidades que nos ofrece el desarrollo para Windows 8 y Windows Phone
8. Aparte de repasar estas características, las abordaremos de manera conjunta, usando
los conocimientos previos para poder desarrollar aplicaciones que tengan una lógica
común y un desarrollo paralelo para cada una de las plataformas. Veremos temas como
el NFC, los sensores, la cámara, el geo-posicionamiento, etc…
En este bloque, que comienza con el capítulo 4, se verá en profundidad el sistema
XAML usado en WinRT y WinPRT.

2.- MICROSOFT DESIGN STYLE
Aunque este no es un libro dedicado a explicar el nuevo rumbo que ha decidido
tomar Microsoft a la hora de diseñar todo su entorno, consideramos importante explicar
al lector qué es el estilo Metro y de dónde ha surgido.
El 15 de febrero de 2010, en Barcelona, durante la celebración del “Mobile Word
Congress”, Steve Ballmer y Joe Belfiore presentaron Windows Phone 7, fue la
primera vez en la que pudimos disfrutar y descubrir el Microsoft Design Style. En
aquel momento fue presentado con el nombre de Metro en un único producto de
Microsoft.
Aunque realmente ya ha sido usado en productos como Windows Media Center o el
tristemente denostado reproductor Zune, es Windows Phone el que lo expone al 100%
y el que realmente lo lleva a la máxima expresión. (Figura 1)

Figura 1.- Síntesis del concepto metro

¿Por qué hablamos de estilo Metro?, ¿no era Microsoft Design Style?
Efectivamente, en las primeras presentaciones realizadas por Microsoft sobre el estilo
propio de su sistema Windows Phone 7, así como en mucha de la información de la
compañía hasta mediados del año 2012, se escogió Metro como nombre para

22 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

denominar a la nueva tipología global de las interfaces de usuario de todos sus
productos.
Pero tal y como ya hemos comentado, Metro ha pasado a denominarse Microsoft
Design Style, o en algunos casos Windows UI Style. Posiblemente el motivo haya sido
el intentar esquivar alguna que otra demanda a causa de la citada denominación.
Pero, ¿qué es realmente? Microsoft Design Style está basado en los principios de
diseño de la escuela Suiza y las especificaciones usadas por la escuela germana
Staatliches Bauhaus o simplemente Bauhaus.
Estos principios, junto al diseño visual de la cartelería usada comúnmente en los
lugares públicos y de tránsito de personas (Figura 2), llevan a los equipos de diseño de
Microsoft a crear un nuevo lenguaje visual o de diseño basado en tres pilares básicos:
1. Tipografía. Clara y concisa, pero también funcional usada con inteligencia
para crear una jerarquía visual basada en el peso y la posición de la misma.
2. Movmiento. Tan importante es el diseño como el movimiento. Las
animaciones sirven para crear un contexto que dota de vida a toda la
interfaz.
3. Contenido. Se convierte en el elemento principal, se elimina todo elemento
de distracción extra que pudiera tener nuestra interfaz. El contenido se
convierte en el foco.

Figura 2.- Paneles informativos de señalización

Como hemos comentado antes, Microsoft, tras la salida de Windows Phone 7 y la
buena acogida por casi todos los sectores de su nueva interfaz, convierte a Microsoft
Design Style en su guía de estilo. Dicha guía está siendo adoptada por todos los
productos y servicios de la compañía, con lo que, la siguiente revisión de su sistema
operativo principal no iba a ser una excepción.

Windows 8 y Windows Phone 8 23

3.- CONOCIENDO WINDOWS 8
El 1 de junio de 2011, durante la celebración del “Taipei Computex”, Microsoft
enseña al mundo lo que será la nueva versión del sistema operativo Windows,
concretamente la versión 8.
Mike Angiulo, encargado de realizar dicha presentación, muestra en qué consiste el
nuevo Windows, destacando sobremanera su pantalla de inicio (Figura 3), totalmente
enfocada a Microsoft Design Style. El 26 de Octubre de 2012, 1 año y 118 días
después, el sistema operativo ve la luz definitivamente dando lugar a un cambio muy
significativo en la forma de realizar aplicaciones para los entornos Windows, ya que
Windows 8 y su versión de servidores Windows Server 2012 no son sólo un cambio a
nivel de interfaz de usuario.

Figura 3.- Nueva pantalla de inicio de Windows 8

3.1.- Windows 8 y el hardware
Hasta la fecha, el sistema operativo de Microsoft era un sistema operativo dirigido
única y exclusivamente a entornos de ejecución en procesadores x86, tanto en sus
versiones de 32bits como en 64bits.
A partir de la aparición de Windows 8 esa limitación queda eliminada, pudiendo
correr el nuevo sistema operativo bajo procesadores ARM. Esta característica convierte
a Windows 8 en un sistema totalmente capaz de correr en dispositivos Tablet, con lo
que las oportunidades de desarrollo se incrementen de forma exponencial.
No debemos olvidar que la ejecución de Windows 8 en los sistemas ARM tiene una
serie de limitaciones, siendo la ejecución en exclusiva de aplicaciones Windows Store,
quizás, una de las más significativas.

24 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

Nota: Windows RT, el nombre de la versión de Windows 8 que se ejecuta en
ARM, dispone de escritorio, pero no todas las aplicaciones se pueden ejecutar en
él, y no es compatible con las aplicaciones compiladas para procesadores Intel.

3.1.1.- Sistema multitouch
Windows 7 ya comenzó a incorporar funciones para que el sistema se relacionara de
forma correcta con pantallas táctiles y gestos táctiles realizados por el usuario sobre el
dispositivo. Pero es Windows 8 el que explota definitivamente esta faceta,
principalmente debido al uso que se hará del mismo sobre tabletas.
En Windows 8 los gestos que podemos realizar en pantallas táctiles no son un
añadido que está para “cumplir”. El sistema usa estos gestos de forma totalmente
integrada para las operaciones básicas del mismo. Gestos como deslizar desde la
derecha para mostrar la barra de charms, deslizar desde la izquierda para intercambiar
la aplicación activa, deslizar desde abajo para mostrar la barra de aplicación, o deslizar
desde arriba sobre un elemento para seleccionarlo. Todos estos gestos harán que usar
Windows 8 sobre una pantalla táctil sea algo natural y muy intuitivo.

3.1.2.- Soporte para NFC
NFC, siglas de su definición en inglés (Near Field Communication), es un sistema
de comunicación inalámbrica entre dispositivos que se encuentran cerca.
Windows 8 incorpora soporte nativo para esta tecnología, convirtiéndose así en el
primer sistema operativo de escritorio que posee esta característica. Pero más allá de
simplemente soportarlo, también -como veremos en el capítulo 10- nos ofrece una API
para poder hacer uso tanto de NFC como de Bluetooth de forma sencilla desde nuestras
propias aplicaciones.

3.1.3.- Sensores
Debido principalmente a su adaptación para la ejecución en tabletas, Windows 8
integra en su sistema el soporte nativo para seis sensores:

Magnetómetro.

Giroscopio.

Acelerómetro.

Sensor de inclinación.

Windows 8 y Windows Phone 8 25

Sensor de iluminación.

Sensor de Orientación

También incorpora la gestión y la supervisión del aGPS o sistema de GPS asistido,
el cual puede geo posicionar el aparato a través de las coordenadas de las celdas o
antenas de telefonía móvil a las cuales se conecta: siempre y cuando el dispositivo se
conecte a una red.
Como en el caso de NFC y Bluetooth, dispondremos de APIs que nos permitirán
acceder a todos estos sensores.

3.1.4.- Otras características
Windows 8 incorpora soporte para otras características de hardware como son:
control de Bluetooth 4.0 + LE, control de sensores de luz de ambiente, control nativo
de dispositivos USB 3.0 o el Windows Display Driver Model (WDDM) versión 1.2,
modelo encargado de toda la gestión gráfica del sistema.

3.2.- Windows 8 y el software
Si muchas son las nuevas incorporaciones que Windows 8 añade y soporta de forma
nativa en lo que a hardware se refiere, no se queda atrás en relación al software, siendo
el nuevo modelo de programación, Windows Runtime o WinRT, el que constituye el
centro de atención.

3.2.1.- Plataforma de desarrollo
A partir de ahora dispondremos de dos plataformas de desarrollo totalmente
independientes. Por un lado, podremos seguir desarrollando aplicaciones para
escritorio como hasta ahora. Estas aplicaciones podrán estar hechas en el lenguaje y la
tecnología que deseemos, podrán ser nativas o interpretadas y, como siempre, dichas
aplicaciones manejarán de una forma u otra al kernel del sistema.
Pero ahora Windows 8 nos trae un nuevo sistema de desarrollo, WinRT. Este nuevo
sistema nos proporciona un conjunto de APIs para acceder al kernel del sistema. Sobre
estas APIs disponemos de cuatro modelos de desarrollo de aplicaciones:

Desarrollo sobre código nativo en C++, con una interfaz gráfica basada en
XAML.

Desarrollo sobre código manejado en .NET con C# o VB.Net, con una
interfaz gráfica basada en XAML.

26 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

Desarrollo sobre JavaScript, con una interfaz gráfica creada a base de
HTML5 y CSS.

Desarrollo sobre código nativo C++ o código manejado usando DirectX en
la parte visual del desarrollo.

En la figura 4 se muestra claramente la separación de estos dos paradigmas y el
detalle de cada una de las opciones y lenguajes que podemos utilizar.

Figura 4.- Esquema de la plataforma de desarrollo en Windows 8

Con respecto a estos dos caminos existen varias cosas importantes a tener en cuenta.
Las aplicaciones Windows Store podrán ser ejecutadas sin ningún tipo de
modificación, tanto en dispositivos x86 como en dispositivos ARM. Sin embargo, las
aplicaciones de escritorio no estarán disponibles en ARM, es decir, las aplicaciones
Windows Store constituyen la forma de desarrollo para tabletas con Windows 8, ya
sean ARM o Intel.
Nota: Todos los ejemplos y las explicaciones contenidas en este libro hacen
referencia al desarrollo de aplicaciones Windows Store con C# y XAML.
El atento lector ya se habrá dado cuenta de un pequeño detalle: continuamente
estamos hablando del término Microsoft Design Style, y de aplicaciones Windows
Store. Aclaremos estos conceptos: Cuando hablamos de interfaz Microsoft Design
Style nos referimos a aquellas aplicaciones que siguen un patrón de diseño definido
bajo los estándares que Microsoft ha creado a tal efecto. Cuando nos referimos a

Windows 8 y Windows Phone 8 27

aplicaciones Windows Store, aludimos a aquellas aplicaciones que están basadas en
WinRT.
Un término no tiene por qué estar junto al otro. Una aplicación de escritorio puede
seguir la guía de diseño Microsoft Design Style, aunque no esté desarrollada en
WinRT. No obstante, Microsoft quiere que consigamos ligar ambos conceptos y nos
proporcionará las herramientas necesarias para ello.

4.- CONOCIENDO WINDOWS PHONE 8
Seguimos con las fechas, y es que el 20 de Junio de 2012, Joe Belfiore en un
evento celebrado en San Francisco, presentó al mundo la nueva versión del sistema
operativo móvil de Microsoft; lo que hasta el momento se conocía como Apollo, pasó
formalmente a llamarse Windows Phone 8.
Una de las principales modificaciones que incorpora dicha actualización es la
adopción del núcleo del sistema de Windows 8. A partir de este momento Windows
Core (nombre como se le denomina actualmente) constituye las tripas de nuestro
sistema móvil, dejando así de lado al utilizado hasta ese momento, el cual era conocido
como Windows CE.
Una de las mayores ventajas que aporta el uso de un núcleo común es que la
integración entre ambos sistemas es muy extensa. La API de desarrollo, a partir de este
momento, es un subsistema de WinRT, conocido como WinPRT, compartiendo entre
ambos mundos muchas de las instrucciones. Pero Windows Phone seguirá
diferenciándose en algunos puntos, los cuales iremos explicando y desarrollando a lo
largo de los siguientes capítulos de este libro.

4.1.- Windows Phone 8 y el hardware
Si en Windows 8 hacíamos hincapié en las modificaciones incorporadas
relacionadas con hardware, no son pocas las que nos encontramos en la nueva versión
del sistema operativo móvil. La más destacada de todas quizás sea la posibilidad de
soportar procesadores multi-núcleo. Concretamente, la primera generación de
Smartphones que montan Windows Phone 8 posee un procesador Qualcomm
Snapdragon S4 Plus (Qualcomm MSM8960). Dicho procesador ha sido elegido por
Microsoft para ser el que suministre soporte de doble núcleo a los primeros
dispositivos.
Aparte del esperado soporte para multinúcleo, Windows Phone 8 incorpora soporte
para tarjetas de expansión MicroSD. Todos los dispositivos, a partir de ahora, podrán
montar una ranura de expansión en donde podremos almacenar nuestra información y
conseguir, de esta forma, una capacidad de almacenaje mayor. Una de las “pequeñas”
limitaciones del sistema es la imposibilidad de realizar la instalación de cualquier
aplicación dentro de las tarjetas de expansión. Es decir, dichas tarjetas servirán de
almacenamiento complementario a cualquier aplicación y al sistema, pero no al
almacenamiento principal de la aplicación.

28 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

4.1.1.- Multiresolución de pantalla
A partir de Windows Phone 8 el sistema podrá ser montado en dispositivos con tres
tipos diferentes de resolución de pantalla. Aparte de la resolución soportada hasta la
versión 7.5 del sistema operativo, resolución WVGA de 800x480 puntos de pantalla
con una relación de aspecto1 de 15:9, se incorporan dos más. Por un lado, una
resolución denominada 720p o HD sobre 1280x720 puntos de pantalla con una relación
de aspecto de 16:9 y otra WXGA, también conocida como 720p+, de 1280x768 puntos
de pantalla con un relación de aspecto de 15:9 y una resolución de 720p.
Windows Phone 8 rompe con la rigidez que hasta el momento ha imperado en los
sistemas móviles, en lo que a resoluciones de pantalla se refiere. Mientras que en
nuestro dispositivo de escritorio podíamos fijar una resolución u otra en función de
nuestras preferencias, esto nunca había sido posible en ningún dispositivo móvil. El
nuevo sistema no es muy prolífico en cuanto a resoluciones diferentes se refiere,
debido principalmente a la necesidad de retro compatibilidad con las aplicaciones
antiguas de Windows Phone 7 y a su utilización de gráficos con mapas de bits
estáticos. Sin embargo, gracias al uso de gráficos vectoriales se puede adaptar a
múltiples resoluciones diferentes sin pérdida de calidad en cualquiera de ellos.

4.1.2.- NFC
De la misma forma que Windows 8 incorpora soporte nativo para este sistema de
comunicación, lo hace también Windows Phone 8.
A pesar de que Windows Phone 7 ya poseía soporte para esta tecnología
inalámbrica, es ahora cuando realmente podremos utilizarla, ya que antes no había
dispositivos que la implementaran. Es con Windows Phone 8 cuando el uso de esta
tecnología realmente despega, ya que el propio sistema incorpora una aplicación
concebida para hacer uso intensivo de la misma: la aplicación Wallet Hub.
Al igual que en WinRT, WinPRT incorpora APIs específicas para el control de
NFC y Bluetooth en nuestras aplicaciones, algo imposible en Windows Phone 7.X.

4.2.- Windows Phone 8 y el software
La novedad más espectacular y sorprendente en relación al software es, quizás, la
nueva pantalla de inicio o start screen del sistema operativo (Figura 5). Una de las
características más innovadoras de Windows Phone 7 fue, sin duda, su interfaz de
usuario los Live Tiles (“bloques vivos” según su traducción literal al español) usados
para mostrar la información y las aplicaciones. Pues bien, Windows Phone 8 amplía
ese concepto de Live Tile añadiendo la posibilidad de definir tres tamaños diferentes a
1

Relación de aspecto o aspect ratio en inglés, es la proporción de una imagen (o
pantalla) existente entre su ancho y su altura. Se calcula dividiendo el ancho entre la altura
de la imagen visible en pantalla.

Windows 8 y Windows Phone 8 29

nuestros “bloques”. Partiendo del tamaño estándar visto hasta el momento, conocido
como tamaño medio o medium size, es añadido el tamaño pequeño, cuya medida es una
cuarta parte de la correspondiente al tamaño medio. El tercer tamaño es el tamaño
grande o large size, que tiene la misma altura que el tamaño medio pero mide el doble
en horizontal.

4.2.1.- Cambio en los frameworks de desarrollo
Hasta el momento, para Windows Phone solo existían dos tipos de frameworks de
desarrollo: Los desarrollos bajo Microsoft Silverlight o los desarrollos bajo la
tecnología de XNA. En ambos se podían utilizar los mismos lenguajes de
programación, C# o VB.Net. En Windows Phone 8 estos frameworks desaparecen.
Para desarrollar aplicaciones usaremos WinRT, tanto en C# con en VB.Net, en lo
referente a Silverlight. En cuanto a XNA utilizaremos C++ nativo y DirectX para el
desarrollo de aplicaciones que hagan un uso intensivo de gráficos.
Esta nueva característica, junto al soporte para nuevos procesadores gráficos, hace
de Windows Phone 8 una plataforma muy versátil a la hora de desarrollar juegos sobre
DirectX y compartir código y experiencia de usuario con su homónimo en Windows 8.

Figura 5.- Nueva Start Screen en Windows 8

30 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

4.2.2.- Otras mejoras
Windows Phone 8 dispone de un soporte para multitarea mejorado, principalmente
para aplicaciones que tienen relación con la geo-localización y con las comunicaciones,
ya que el sistema posee también la posibilidad de integrar aplicaciones de voIP de
terceros sobre el sistema general de llamadas del teléfono.
Con la incorporación de Internet Explorer 10 y un motor de renderizado de páginas
web igual al que tiene la versión de escritorio, se consigue una gran mejora en la
visualización de código JavaScript (Si quisiéramos cuantificar dicha mejora, podríamos
afirmar que se ve “4 veces mejor”). Si a esto le añadimos soporte para, al menos, el
doble de funciones de HTML5 respecto a IE9, Windows Phone 8 se convierte en el
mejor y más rápido visualizador móvil de web.

5.- HERRAMIENTAS DE DESARROLLO
Aunque disponemos del hermano mayor en cuanto a herramientas de desarrollo se
refiere, Microsoft Visual Studio 2012, en este capítulo veremos cuáles son las
herramientas de desarrollo que de forma independiente y gratuita tenemos, las llamadas
versiones Express de ambos mundos.
Nota: Los ejemplos de este libro están desarrollados bajo las versiones
Express de las herramientas de desarrollo, salvo cuando se trate de ejemplos que
comprenden ambas tecnologías. En este caso utilizaremos la versión “de pago”
de Visual Studio 2012 ya que dichas versiones express solo se pueden usar para
desarrollar en la plataforma correspondiente.

5.1.- Herramientas para Windows 8
Dentro del centro de desarrollo de aplicaciones Windows Store2 para Windows 8
podemos descargarnos las herramientas y el SDK necesario para comenzar a
desarrollar aplicaciones. (Figura 6)

2

Se puede visitar en http://msdn.microsoft.com/es-es/windows/apps

Windows 8 y Windows Phone 8 31

Figura 6.- Centro de desarrollo

Una vez descargadas las herramientas de desarrollo, el proceso de instalación es
muy sencillo, aunque algo tedioso. Hacer la instalación completa, así como la descarga
e instalación de complementos a dichas herramientas, aunque se realizará de forma
totalmente automática, lleva bastante tiempo.
Junto con Visual Studio 2012 Express para Windows 8 y el SDK de desarrollo, se
instala Blend para Visual Studio, que es la herramienta de diseño para nuestros ficheros
XAML; un simulador del sistema y el Windows App Certification Kit.

Figura 7.- Instalación de Visual Studio Express

32 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

5.1.1.- Visual Studio Express para Windows 8
Una vez instaladas todas las herramientas tendremos a nuestra disposición todo lo
necesario para desarrollar aplicaciones Windows Store para Windows 8, siendo Visual
Studio la herramienta principal. En la pantalla de inicio de Visual Studio podremos
seleccionar un proyecto de inicio tal y como se muestra en la figura 9, pero antes de
comenzar deberemos de obtener una licencia de desarrollador para crear nuestras
aplicaciones (Figura 8).

Figura 8.- Obtención de licencia de desarrollo

Dicha licencia permite desarrollar y probar aplicaciones Windows Store antes de
que la tienda de Microsoft las certifique, concepto del que hablaremos mas adelante.
Las licencias de desarrollador son gratuitas y se pueden obtener tantas como se
precisen, simplemente registrándonos con nuestro Windows Live ID. La licencia se
proporciona por equipo.

Figura 9.- Nuevo proyecto en Visual Studio Express para Windows 8

Windows 8 y Windows Phone 8 33

Dentro de los proyectos de los que disponemos para crear nuestra aplicación
destacan cuatro grupos de plantillas: aplicaciones desarrolladas con JavaScript,
aplicaciones en Visual Basic .Net, aplicaciones realizadas en C# y por último
aplicaciones en código nativo con C++.
Realmente, todas las plantillas de proyectos que se nos muestran se podrían dividir
en cuatro grupos:

Proyectos de aplicación. Desde un proyecto en blanco hasta proyectos con
lógica ya implementada los cuales pueden servirnos de ejemplo para
comenzar a desarrollar nuestras aplicaciones. Por ejemplo, los proyectos
de Grid App (varias páginas con navegación entre grupos de elementos),
Split App (dos páginas con elementos agrupados y navegación entre ellas),
Aplicación de diseño fijo (sólo disponible en plantillas JavaScript, sirve
para realizar una aplicación que escala un diseño con relación de aspecto
fija) y Aplicación de navegación (sólo disponible en plantillas JavaScript,
puede utilizarse como base para una aplicación con controles predefinidos
para la navegación)

Windows Runtime Component. Proyecto de componentes que puede
crearse en cualquier lenguaje exceptuando los proyectos JavaScript.

Class Library. Proyecto de biblioteca de clases en los lenguajes Visual
Basic .Net y C#. Para proyectos en C++, en vez de biblioteca de clases, si
creamos un proyecto Static Library podremos hacer en él una biblioteca
estática nativa.

Unit Test Library. No disponible en los proyectos de JavaScript.
Constituye un proyecto para contener pruebas unitarias. Las usaremos para
probar tanto nuestras aplicaciones como nuestras librerías de clases.

En el lenguaje nativo C++ disponemos de dos tipos de plantillas de proyectos más,
la plantilla de Direct2D que usa XAML y la plantilla de Direct3D.

5.1.2.- Microsoft Blend para Visual Studio
Dentro de la suite de aplicaciones y complementos que se instalan al descargar el
SDK para desarrollar aplicaciones para Windows 8, un complemento excepcional para
crear interfaces de usuario en leguaje XAML es Blend (Figura 10).
Cabe destacar la eliminación en el nombre del producto de la palabra Expression.
Blend ha formado parte de la suite Expression de Microsoft desde sus orígenes,
constituyendo ésta la versión 5.0 de la misma. Sin embargo, en lugar de llamarse
Microsoft Expression Blend 5.0, se denomina simplemente Blend para Visual Studio
2012. Aunque esta versión es totalmente funcional, sólo nos instala y muestra plantillas
para desarrollar aplicaciones Windows Store para Windows 8.

34 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

Figura 10.- Blend para Visual Studio 2012

5.1.3.- Simulador de Windows 8
Otra parte de las herramientas instaladas es un completo simulador en formato
Tablet con Windows 8 (Figura 11).

Figura 11.- Pantalla de inicio mostrada en el simulador

Windows 8 y Windows Phone 8 35

Como explicaremos más adelante, para probar nuestras aplicaciones las
desplegaremos directamente sobre nuestro sistema, o bien, podremos testearlas bajo
este simulador. Esta opción nos dará una experiencia y visión más completa de todas
las características que se encuentran en un dispositivo que incorpora Windows 8. Por
otro lado, sería bastante complejo, por no decir imposible, comprobar estados como el
giro de la pantalla en un ordenador de escritorio o el multitouch sin una pantalla táctil.
En la parte derecha del simulador se muestran las herramientas que son:
Emuladores gestuales.
Los primeros botones de nuestro simulador nos proporcionan la experiencia necesaria
para emular comportamientos táctiles en la pantalla.
El modo mouse es el modo normal, sin emulación alguna; es la opción en la cual
simularemos el control del dispositivo con un ratón.
Modo táctil básico. Emulamos la interacción táctil con un solo dedo, es decir,
permite realizar los eventos de tapping, dragging y swiping.
Modo de emulación táctil para zoom. Imitaremos los gestos de ampliación de
zoom y de reducción3 de zoom con dos dedos.
Emulación de gestos de rotación. Gestos realizados con dos dedos para emular la
rotación de los mismos: un dedo lo dejamos quieto mientras giramos el otro.
Simulación de rotación del dispositivo.
Estos dos botones nos permiten realizar y simular el giro del dispositivo
90º tanto en el sentido de las agujas del reloj como en sentido opuesto.
Cambio en el tamaño de pantalla y la resolución
Mediante el siguiente botón podremos ajustar el tamaño de la pantalla de
nuestro simulador, así como la resolución de pantalla del mismo. Actualmente el
simulador nos ofrece las combinaciones mostradas en la figura 12

3

Comúnmente se denomina zoom al gesto de aumentar la ampliación y pinch (pellizcar)
al gesto de reducir zoom.

36 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

Figura12.- Diferentes resoluciones posibles en el simulador

Localización
También es posible gestionar la localización del dispositivo para su posterior uso
como coordenada de posición. Para ello indicaremos los datos longitud y latitud
en grados, altitud en metros y la precisión de los datos de longitud y latitud en
metros.
Gestión de ScreenShots4
Mediante estos dos botones se maneja la captura de screenshots de la
pantalla de nuestro simulador. Mientras que el primero de ellos
simplemente toma dichos screenshots, el segundo botón nos permite configurar el
destino de los ficheros generados y acceder directamente a la carpeta que los contiene.
Nota: En todo momento estamos hablando de simulador y no de emulador, ya
que realmente el sistema genera una sesión de terminal server 5 contra nuestro
propio equipo añadiéndonos las características citadas anteriormente. En ningún
momento se emula nada, sino que es un sistema completo.

5.1.4.- Windows App Certification Kit
Toda aplicación Windows Store desarrollada para ser instalada en equipos de
terceros, antes de estar disponible en la Store, deberá ser certificada por Microsoft.
Pues bien, esta herramienta nos ayudará a tener un conocimiento previo de qué es lo
que está bien y lo qué no, en nuestra aplicación. Así, ahorraremos tiempo en el proceso
4

Captura de pantalla literal de lo que aparece en nuestro simulador.
Terminal Services o Servicios de Escritorio Remoto, es un componente que permite
acceder a la gestión remota de un equipo mediante el protocolo RDP.
5

Windows 8 y Windows Phone 8 37

de certificación y enviaremos las aplicaciones listas y dispuestas para superar dicho
requisito.
Lo primero que solicita el App Certification Kit es que indiquemos qué aplicación
queremos someter a las pruebas pertinentes. Una vez seleccionada, el Certification Kit
lanzará repetidas veces nuestra aplicación, la cerrará e interactuará con ella de forma
totalmente automatizada. Es muy importante que una vez haya empezado el proceso
nosotros no hagamos ninguna modificación en la aplicación ya que podría dar lugar a
falsos errores. Pasado un tiempo nos mostrará el resultado del test, Passed si es
correcto o Failed si es incorrecto, y nos dará la posibilidad de grabar los resultados en
un fichero XML y de visualizarlos en una página web (véase Figura 13)
El Windows App Certification Kit, no sólo valida aplicaciones Windows Store para
su envío a la Store, sino que también es útil para saber si las aplicaciones de escritorio
cumplen los requerimientos de Microsoft, aunque éstas no pueden ser enviadas a la
Store.

Figura 13.- Resultados del kit de certificación

5.2.- Herramientas para Windows Phone 8
Al igual que disponemos de un centro de desarrollo para aplicaciones Windows
Store, existe una página web 6 en donde podemos descargarnos todo el material y el
SDK necesario para desarrollar aplicaciones Windows Phone 8.

6

Se puede visitar en http://dev.windowsphone.com

38 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

Figura 14.- Página principal del Dev Center

Dicha web es la continuación en el tiempo de la usada para el desarrollo de
aplicaciones de Windows Phone 7, el App Hub de Microsoft. Ahora es conocida como
Dev Center de Windows Phone. En la Figura 14 se muestra la página principal de dicha
web.
Igual que ocurría con el SDK de Windows 8, éste no es únicamente la versión para
Windows Phone 8 de Visual Studio 2012, sino que además incorpora muchas más
herramientas para ayudarnos a hacer desarrollos en esta nueva plataforma. Entre las
herramientas complementarias se encuentra las siguientes:

Blend para Visual Studio 2012 con las plantillas de Windows Phone 8.

Emulador de Windows Phone.

Application Deployment Tool.

Windows Phone Developer Registration.

Isolated Storage Explorer.

Simulation Dashboard para Windows Phone.

Windows Phone Application Analysis.

Windows Phone Store Test Kit.

Se trata de un conjunto de aplicaciones y herramientas bastante extenso.

Windows 8 y Windows Phone 8 39

5.2.1.- Visual Studio Express para Windows Phone 8

Figura 15.- Instalación del SDK de Windows Phone 8

Igual que para la versión de Windows 8, la descarga e instalación de la herramienta
de Visual Studio Express para Windows Phone 8 y sus complementos (Figura 15), es
sencilla y transparente. Una vez instalada disponemos de una serie de nuevas plantillas,
separadas en dos grandes grupos, para crear nuestras aplicaciones para Windows Phone
8.
Por un lado las plantillas disponibles (Figura 16) para los lenguajes C# y VB.Net:

Figura 16.- Pantalla de selección de nuevo proyecto

40 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

Windows Phone App. Es la plantilla base para toda aplicación Windows
Phone e incluye: una página por defecto con los estilos de Windows Phone,
archivos de imagen para la pantalla de inicio e iconos, tanto para la
aplicación como para los tiles en sus diferentes tamaños. Todo ello dentro
de la carpeta “Assets”, pudiendo ser sustituido por los nuestros si lo
deseamos y listo para ejecutar con solo pulsar F5.

Windows Phone Databound Application. Esta plantilla es exactamente
igual a la plantilla base anterior, pero con el añadido de que en la página
creada tenemos: una listbox con una plantilla de datos simple, una carpeta
“SampleData” con datos de ejemplo y una carpeta “ViewModels” con
clases MVVM listas para ser usadas.

Windows Phone Class Library. Se trata de un proyecto para generar una
librería de clases que podamos consumir desde una aplicación Windows
Phone.

Windows Phone Panorama Application. Al igual que la plantilla base se
trata de un proyecto Windows Phone estándar, pero se ha sustituido el
contenido por defecto por un control Panorama. Este control permite tener
elementos que ocupen más que el ancho de la pantalla y poder movernos
por ellos simplemente desplazándonos de derecha a izquierda, en una rueda
sin fin. Asimismo combina también los elementos incluidos en la plantilla
Databound Application, como son los SampleDatas y las clases de
MVVM, en la carpeta “ViewModels”.

Windows Phone Pivot Application. Similar al proyecto Panorama
Application, pero en este caso sustituyendo el contenido por defecto por un
control Pivot. Este control se comporta de forma parecida a un control de
pestañas, tenemos secciones que ocupan la pantalla y podemos navegar por
ellas pulsando sobre el título superior o, simplemente, desplazándonos con
gestos de derecha a izquierda o viceversa.

Windows Phone XAML and Direct3D Application. Nuevo tipo de
proyecto que aparece en Windows Phone 8. Con él podremos crear una
aplicación de código manejado (C# o VB.Net) que interaccione con código
nativo. Nos permite hacer, de forma fácil y rápida, una interfaz de usuario
creada totalmente en WinRT (con C# o VB.Net) con gráficos en 3D de alta
calidad generados usando DirectX. Esta plantilla viene a sustituir a la
anterior que se denominaba “Silverlight and XNA Application” en donde
podríamos hacer exactamente lo mismo pero con código Silverlight y
código XNA.

Windows Phone XAML and XNA Application. Tipo de proyecto similar al
comentado anteriormente. Podremos combinar código manejado (C# o
VB.Net) junto con la renderización de gráficos utilizando el framework

Windows 8 y Windows Phone 8 41

XNA. Este tipo de proyecto en principio tiene la función de estar aquí por
compatibilidad con código anterior. El framework XNA solo está
disponible para desarrollar aplicaciones en la versión 7.1 del sistema y
Microsoft no seguirá dándole soporte.

Windows Phone HTML5 Application. Este tipo de proyecto también es
nuevo y aparece por primera vez en Windows Phone 8. Básicamente nos
otorga la facilidad de crear una aplicación que utiliza contenido HTML,
creando una página XAML con un navegador web y un archivo html de
ejemplo listo para mostrar.

Windows Phone Audio Playback Agent. Plantilla de proyecto para crear
un agente que se ejecuta en segundo plano para reproducir música.

Windows Phone Audio Streaming Agent. Plantilla de proyecto similar al
anterior, salvo que ahora reproduciremos la música por medio de streaming
sin necesidad de que aquélla se encuentre directamente en el teléfono.

Windows Phone Scheduled Task Agent. Esto tipo de proyecto nos permite
ejecutar tareas de propósito general en el teléfono en segundo plano sin
necesidad de una interfaz de usuario.

No es el cometido de este libro explicar cómo desarrollar aplicaciones para la
versión anterior de Windows Phone, Windows Phone 7.1 7. Sin embargo, sí deberíamos
saber identificar de forma rápida qué plantillas son únicas y exclusivas para hacer
desarrollos en dicha versión. Todas las plantillas explicadas hasta el momento son
aptas para ambas versiones, a excepción de la plantilla de “Windows Phone XAML
and Direct3D Application” que sólo está disponible para Windows Phone 8. A la hora
de crear un nuevo proyecto y seleccionar la plantilla adecuada, nos aparecerá un
selector (Figura 17) en donde indicaremos sobre qué versión del sistema deseamos
trabajar, Windows Phone 7.1 o Windows Phone 8.

Figura 17.- Selector de Framework de destino
7

La versión de producto 7.5 de Windows Phone es la versión 7.1 de desarrollo.

42 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

Asimismo existen plantillas que sólo permiten realizar aplicaciones para Windows
Phone 7.1. Todas ellas están contenidas en la sección de XNA Game Studio 4.0 y la
plantilla Windows Phone Silverlight and XNA Application.
A principio de este epígrafe dijimos que agrupábamos las plantillas o tipos de
aplicaciones en dos grandes grupos. El primer grupo, formado por las plantillas para
C# y VB.Net, es al que nos hemos estado refiriendo hasta ahora. El segundo grupo está
formado por las plantillas para desarrollo de aplicaciones de código nativo,
aplicaciones desarrolladas en C++. Dentro de estas aplicaciones disponemos de las
siguientes plantillas:

Windows Phone Direct3D App. Aplicación base para poder crear un
proyecto que usa DirectX desarrollado en código nativo. Al igual que el
proyecto base de aplicaciones para código manejado, se incluyen en el
mismo diferentes elementos para facilitarnos el trabajo de desarrollo, como
son los iconos de la aplicación dentro de la carpeta “Assets”, y demás
elementos comunes a una aplicación 3D.

Windows Phone Runtime Component. Este tipo de plantilla nos permite
crear componentes propios con código nativo. Podremos posteriormente
utilizar estos controles y componentes en aplicaciones tanto de código
nativo como de código manejado. Sería la plantilla análoga para C++ a una
Windows Phone Class Library en C# o VB.Net

Empty Dinamic Link Library. Con esta plantilla disponemos de la
posibilidad de crear una biblioteca de enlace dinámico, más conocida como
DLL en sus siglas en inglés. Con ella generamos archivos de código
ejecutable que podremos cargar a demanda en otra aplicación de Windows
Phone.

Empty Static Library. Al igual que podemos generar una DLL, también
podremos generar un proyecto de biblioteca estática o LIB en sus siglas en
inglés, la cual podremos usar para compilarlas junto a otra aplicación de
Windows Phone.

Nota: Debemos destacar que estas plantillas sólo están disponibles para la
versión 8 de Windows Phone.

5.2.2.- Blend para Visual Studio 2012
No nos extenderemos mucho en este punto ya que la aplicación que instala el SDK
de Windows Phone 8 es exactamente la misma que instala el SDK de Windows 8;
salvo en las plantillas que tenemos a nuestra disposición: obviamente en este caso

Windows 8 y Windows Phone 8 43

tendremos acceso a las plantillas específicas para Windows Phone 8 anteriormente
descritas.

5.2.3.- Emulador de Windows Phone 8
Junto con nuestras herramientas de desarrollo se entrega también un completo
emulador del sistema operativo Windows Phone 8. Contamos con las mismas
herramientas adicionales que ya teníamos en la versión anterior del sistema, a saber: el
emulador de GPS, la emulación del acelerómetro, la posibilidad de adaptar la
visualización a modo landscape o portrait y la posibilidad de capturar screenshots de
la pantalla.
Pero, en este caso, existen dos grandes diferencias con respecto a la anterior versión
del emulador. La primera de ellas es la disponibilidad de un sistema completo. El
emulador de la versión 7.1 disponía de una funcionalidad muy limitada en cuanto a
aplicaciones preinstaladas del sistema que podíamos encontrar en un teléfono físico.
Ahora, con Windows Phone 8, el emulador es completo, o casi (Figura 18). Ahora
disponemos de todas las aplicaciones del sistema que nos encontraremos en cualquier
terminal pudiendo así probar una experiencia mucho más real y completa.

Figura 18.- Start Screen de Windows Phone 8 vista en el emulador

44 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

La segunda característica diferenciadora a destacar es el entorno de ejecución. En
este caso, el emulador está alojado en un entorno virtualizado bajo Hyper-V, tecnología
de virtualización de Windows 8. Por ello, para ejecutar el emulador deberemos
disponer de un equipo con soporte por hardware para esta característica. Los requisitos
mínimos para la ejecución del emulador de Windows Phone 8 son Windows 8 de 64
bits y soporte para virtualización por hardware. Un punto muy importante, antes de
acometer la instalación de las herramientas, será el tener las herramientas de Hyper-V
instaladas en nuestro sistema Windows 8.
El nuevo emulador de Windows Phone 8 nos ofrece una serie de atajos de teclado
que nos permitirán realizar diferentes acciones, tales como bloquear la pantalla, iniciar
la cámara, buscar, subir y bajar volumen… podemos ver estos atajos de teclado en la
siguiente tabla 1.1
Tabla 1.- Atajos de teclado del emulador de Windows Phone 8.

Tecla
F1
F1 (presionado varios segundos)
F2
F3
F7
F9/F10
F12

Acción
Botón Atrás.
Panel de aplicaciones iniciadas.
Ir a la pantalla de inicio.
Abrir Bing search.
Cámara.
Bajar/Subir volumen.
Apagar/Encender pantalla.

5.2.4.- Application Deployment Tool
Esta herramienta nos permitirá desplegar aplicaciones en formato XAP al emulador
o a un dispositivo desbloqueado para desarrollo. De esta forma podremos probar las
aplicaciones fuera del entorno de Visual Studio.

5.2.5.- Windows Phone Developer Registration
Gracias a esta herramienta podremos registrar un dispositivo físico Windows Phone
con nuestra cuenta de desarrolladores de Windows Phone Store. De esta forma este
dispositivo quedará desbloqueado para desarrollo y podremos depurar y desplegar
aplicaciones en él.
Para el correcto funcionamiento de la herramienta deberemos tener el dispositivo
conectado al PC, sincronizado con el software Zune y la pantalla inicial de Windows
Phone; si el dispositivo está apagado o con el bloqueo de pantalla fallará.
No es necesario que la cuenta del LiveID del dispositivo sea la misma que usamos
en la Windows Phone Store, además debemos recordar que el límite de dispositivos
desbloqueados es de cinco por cada cuenta de la Store.

Windows 8 y Windows Phone 8 45

5.2.6.- Isolated Storage Explorer
El Isolated Storage Explorer es una herramienta de línea de comandos que nos
permitirá listar, copiar, y remplazar ficheros y directorios del almacenamiento aislado
de nuestras aplicaciones desplegadas, tanto en nuestro emulador, como en un
dispositivo desbloqueado y registrado para desarrollo.
La herramienta, ISETool.exe se encuentra en la ruta:
Program Files\Microsoft SDKs\Windows Phone\v8.0\Tools\IsolatedStorageExplorerTool

para sistemas de 64 bits o dentro de
Program Files (x86)\Microsoft SDKs\WindowsPhone\v8.0\Tools\IsolatedStorageExplorerTool

para sistemas de 32bits.
Como ejemplo, la sintaxis de la herramienta es la que se muestra en el código.
ISETool.exe <ts|rs|dir[:device-folder]> <xd|de> <Product GUID>
[<desktop-path>]

5.2.7.- Simulation Dashboard para Windows Phone
Una aplicación móvil es especialmente vulnerable a los comportamientos
inesperados de los usuarios, a las limitaciones de los dispositivos y redes en las que se
ejecuta, a la ubicación en donde está siendo utilizado, y a muchas posibles
interrupciones que se producen en un dispositivo móvil. El nuevo complemento
incluido en este SDK, el Simulation Dashboard (Figura 19), nos da la opción de validar
de antemano el comportamiento de nuestra aplicación en un entorno aparentemente
real. Podemos acceder al Simulation Dashboard desde Visual Studio, en el menú
Herramientas > Simulation Dashboard.
Con el Simulation Dashboard podremos emular básicamente tres aspectos muy
importantes a la hora de comprobar el funcionamiento de una aplicación en un entorno
real.

Simulación de señal de red. Podremos simular la disponibilidad de red de
datos, tanto para redes de telefonía móvil en 2G, 3G o 4G (conocido
también como LTE), como para redes WiFi, o la no disponibilidad de red
alguna. También como apreciamos en la figura, podremos simular, siempre
y cuando seleccionemos un tipo de red, qué disponibilidad de señal
tenemos (una calidad de señal buena, regular o mala). Esta característica

46 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

afectará a la velocidad de descarga y carga de datos 8, a la latencia de la red 9
y a la tasa de pérdida de datos10, dependiendo del tipo de red seleccionada
en cada momento.

Simulación de bloqueo. Con esta opción podremos simular la activación o
la desactivación de la pantalla de bloqueo de nuestro terminal. Nos servirá
para probar si nuestra aplicación responde de la forma esperada a los
estados de comportamiento de una aplicación Windows Phone. También
podemos usarla, si por ejemplo disponemos de un desarrollo que gestiona
los servicios de localización en segundo plano, para ver si éstos funcionan
con la pantalla de bloqueo activada.

Simulación de interrupción. Podremos simular la activación de un
recordatorio en el teléfono para probar cómo se comporta nuestra
aplicación cuando es interrumpida o parcialmente obscurecida 11.

Figura 19.- Simulation Dashboard

8

Velocidad de carga (upload) y descarga (download) de datos por la red.
Latencia unidireccional o retraso, mide cuánto tiempo tarda un paquete de datos en
alcanzar su destino.
10
La tasa de pérdida se expresa con un valor entre 0 y 1. Una tasa de pérdida por
ejemplo de 0,02 significa que se pierde el 2% de los paquetes enviados o recibidos.
11
Obscurecido u Obscured, en inglés, es uno de los eventos que pueden ser disparados
por el sistema.
9

Windows 8 y Windows Phone 8 47

5.2.8.- Windows Phone Application Analysis
La Windows Phone Application Analysis es una herramienta de monitorización y
generación de perfiles (monitoring and profiling) que nos permitirá evaluar, y por
consiguiente mejorar, la calidad y el rendimiento de nuestras aplicaciones.
Capturaremos las medidas y rendimientos de nuestra aplicación en el ejercicio de sus
funciones.
Cada vez que ejecutamos esta herramienta se crea un archivo en la carpeta del
proyecto que contiene la información con los resultados de cada evaluación. Cuando
seleccionamos dicho fichero el contenido del mismo se muestra dentro de Visual
Studio y los resultados se presentan en una serie de tablas y gráficos que contienen
información adicional. (Figura 20)
Windows Phone Application Analysis nos indica entre otros conceptos el uso de la
CPU, el uso de la memoria, el frame rate de nuestra aplicación, etc.
Los gráficos y datos suministrados por esta herramienta son tan extensos, y las
conclusiones que podemos sacar de ellos tan variopintas, que para su interpretación
haría falta un libro entero dedicado en exclusiva a su análisis. Por lo tanto, en esta
sección simplemente presentamos la herramienta y animamos de forma encarecida al
lector a que indague dentro de la misma.

Figura 20.- Resultados en formato gráfico obtenidos de un análisis.

48 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

5.2.9.- Windows Phone Store Test Kit
Dentro de Visual Studio 2012 Express para Windows Phone, en el menú de
Proyecto, disponemos de la opción de lanzar el Windows Phone Store Test Kit. Esta
herramienta proporciona un conjunto de pruebas automatizadas y manuales que nos
ayudarán a preparar nuestras aplicaciones para que superen la certificación pertinente
para estar disponibles en el Store de Windows Phone. (Figura 1.21)

Figura 21.- Parte del Store Test Kit

Dentro del Kit de test hay de tres secciones. En la primera de ellas indicamos qué
imágenes vamos a utilizar para su uso futuro en el Windows Phone Store, imágenes de
tiles y screenshots, e indicamos también cuál es nuestro fichero de empaquetado de
aplicación, el fichero XAP de nuestra aplicación.
En la segunda pestaña se realizarán de forma automatizada una serie de pruebas y se
nos mostrará el estado y resultado de las mismas. Por último, en la tercera pestaña, se
muestran una serie de pruebas que deberemos de ir realizando de forma manual para
comprobar que nuestra aplicación responde de forma correcta según diferentes pautas
de comportamiento. Tras realizar dichas pruebas deberemos de ir señalando en cada
una de ellas si el resultado obtenido al hacer la prueba de forma manual es el esperado
o no.

Sign up to vote on this title
UsefulNot useful