Sie sind auf Seite 1von 47

Desarrollo en Windows 8 y

Windows Phone 8 con XAML y C#


Josu Yeray Julin Ferreiro
Rafael Serna Medina
Ibn Landa Martn

DESARROLLO EN WINDOWS 8 Y WINDOWS PHONE 8 CON XAML Y C#


No est permitida la reproduccin total o parcial de este libro, ni su tratamiento informtico, ni la
transmisin de ninguna forma o por cualquier medio, ya sea electrnico, mecnico, por fotocopia,
por registro u otros mtodos, sin el permiso previo y por escrito de los titulares del Copyright.
Dirjase a CEDRO (Centro Espaol de Derechos Reprogrficos, www.cedro.org) si necesita
fotocopiar o escanear algn fragmento de esta obra.
DERECHOS RESERVADOS 2013, respecto a la primera edicin en espaol, por
Krasis Consulting, S. L.
www.Krasis.com
ISBN: 978-84-939659-6-9
CREATIVIDAD
Diseo cubierta: Pablo Iglesias Francisco
Frutas cubierta: Las cuatro frutas elegidas (Naranja, mandarina, limn y lima) son ctricos
del gnero Citrus que pertenecen a la familia de las Rutceas. Esta familia comprende ms de 1.600
especies. El gnero botnico Citrus es el ms 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 ms cultivado de todos los ctricos, siendo la especie ms importante del gnero
Citrus. Tras ella le siguen en importancia sus parientes ms prximos: 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 das ausente tras el teclado. Tambin 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 da. A todos, gracias con el corazn.
Josu Yeray Julin
Cuando hace ya unos cuantos meses, Yeray y yo decidimos escribir este libro, jams
me hubiera imaginado que fuera a ser una de las tareas ms 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 sueo y por supuesto a mi familia. Por esa razn, solo puedo
agradecer a mi mujer Susana y a mi hija Celia, su inmensa paciencia al verle un da s
y otro tambin pegado al porttil, 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
Ibn Landa

Contenido
AGRADECIMIENTOS ................................................................................................ iii
CONTENIDO .............................................................................................................. iv
AUTORES ..................................................................................................................xiii
PRLOGO JOS BONNIN - MICROSOFT ........................................................... xv
PRLOGO SCAR GUTIRREZ - NOKIA ......................................................... xvii
CAPTULO 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 prcticas. ............................................................................... 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 caractersticas ............................................................................................. 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.- Multiresolucin 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

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

CAPTULO 2: MVVM ................................................................................................49


1.2.3.4.5.6.-

7.8.-

Introduccin................................................................................................................................ 49
Enlace a datos ............................................................................................................................. 51
ViewModel................................................................................................................................... 53
Notificacin 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 organizacin................................................................................................. 76
8.1.- Nomenclatura ................................................................................................................. 77
8.2.- Organizacin ................................................................................................................... 77

CAPTULO 3: MVVM AVANZADO........................................................................79


1.- Introduccin................................................................................................................................ 79
2.- Inyeccin 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.- Cundo usar inyeccin de dependencias?.............................................................. 96
3.- Servicios ....................................................................................................................................... 96
3.1.- Principios y buenas prcticas .................................................................................... 101
3.1.1.- Principio de responsabilidad nica................................................................... 102
3.1.2.- Uso de interfaces ................................................................................................. 102
3.1.3.- Principio de segregacin de interfaces ........................................................... 103

Contenido vii

4.- Frameworks para MVVM....................................................................................................... 103


4.1.- MVVMLight .................................................................................................................... 104
4.2.- Cundo 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
CAPTULO 4: XAML ...............................................................................................123
1.- Introduccin.............................................................................................................................. 123
2.- XAML ......................................................................................................................................... 123
3.- Interfaz de usuario en Windows 8 ...................................................................................... 126
3.1.- Composicin de la pantalla ....................................................................................... 126
3.1.1.- Marco ...................................................................................................................... 126
3.1.2.- Pgina ...................................................................................................................... 127
3.1.3.- Elementos .............................................................................................................. 129
4.- Interfaz de usuario en Windows Phone 8......................................................................... 130
4.1.- Composicin de pantalla............................................................................................ 130
4.1.1.- Marco ...................................................................................................................... 130
4.1.2.- Pgina ...................................................................................................................... 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
CAPTULO 5: INTERFAZ DE USUARIO ............................................................171
1.- Introduccin.............................................................................................................................. 171
2.- Interfaz de usuario en Windows Store .............................................................................. 171
2.1.- Conceptos preliminares ............................................................................................. 172
2.1.1.- Grid System ........................................................................................................... 172
2.1.2.- Tipografa ............................................................................................................... 173

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

2.2.- Modos de Visualizacin .............................................................................................. 173


2.3.- Navegacin .................................................................................................................... 179
2.4.- GridView ........................................................................................................................ 185
2.4.1.- Zoom Semntico.................................................................................................. 193
2.5.- FlipView .......................................................................................................................... 198
2.6.- ApplicationBar .............................................................................................................. 201
2.7.- Localizacin ................................................................................................................... 206
3.- Interfaz de usuario en Windows Phone 8......................................................................... 210
3.1.- Resoluciones ................................................................................................................. 210
3.2.- Orientacin ................................................................................................................... 213
3.3.- Navegacin .................................................................................................................... 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.- Localizacin ................................................................................................................... 238
CAPTULO 6: CICLO DE VIDA DE APLICACIONES ......................................247
1.- Introduccin.............................................................................................................................. 247
2.- Ciclo de vida en Windows Store ........................................................................................ 247
2.1.- Activacin de la aplicacin......................................................................................... 249
2.2.- Suspensin de la aplicacin........................................................................................ 253
2.3.- Visibilidad de aplicacin .............................................................................................. 255
2.4.- Tareas en segundo plano ........................................................................................... 256
3.- Ciclo de vida en Windows Phone 8 ................................................................................... 256
3.1.- Deteccin de actividad ............................................................................................... 262
3.2.- Inicio, suspensin y activacin .................................................................................. 263
CAPTULO 7: ACCESO AL SISTEMA .................................................................265
1.- Introduccin.............................................................................................................................. 265
2.- Windows Store ........................................................................................................................ 266
2.1.- Configuracin 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.- Cmara ........................................................................................................................... 311
3.5.- Extensibilidad de bsquedas...................................................................................... 314
3.6.- Comunicacin entre aplicaciones ............................................................................ 317
3.6.1.- Asociacin de archivos ....................................................................................... 318
3.6.2.- Asociacin 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
CAPTULO 8: TILES Y NOTIFICACIONES .......................................................329
1.- Tiles ............................................................................................................................................. 329
1.1.- Tiles en Windows 8 .................................................................................................... 330
1.1.1.- Cambios en los tiles de la aplicacin............................................................... 332
1.1.2.- Combinacin de tipos de tile............................................................................ 336
1.1.3.- Gestin de las notificaciones de tiles.............................................................. 338
1.1.4.- Programacin 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 ejecucin ............................................................................. 347
1.3.- Tiles Secundarios ......................................................................................................... 349
1.3.1.- Tiles secundarios en Windows 8 ..................................................................... 350
1.3.2.- Actualizacin 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 envo de notificaciones................................... 375
4.3.- Notificaciones push en Windows Phone Apps .................................................... 381
4.3.1.- Servicio de backend para el envo de notificaciones................................... 387
CAPTULO 9: SENSORES......................................................................................395
1.- Introduccin.............................................................................................................................. 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.- Acelermetro ........................................................................................................................... 414
5.- Brjula......................................................................................................................................... 418
6.- Giroscopio................................................................................................................................. 421
7.- Otros sensores ........................................................................................................................ 423
7.1.- Inclinmetro.................................................................................................................. 423
7.2.- Orientacin ................................................................................................................... 423
7.3.- Luminosidad .................................................................................................................. 423
8.- Compartir cdigo .................................................................................................................... 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 prctico: GPS compartido .................................................................. 425
CAPTULO 10: N.F.C. Y BLUETOOTH ..............................................................433
1.- Qu es NFC?........................................................................................................................... 433
1.1.- Funcionamiento. ........................................................................................................... 433
1.2.- Usos de la tecnologa NFC........................................................................................ 435
1.3.- Tapping ........................................................................................................................... 436
2.- Como usar nfc.......................................................................................................................... 437
2.1.- Comunicacin entre aplicaciones ............................................................................ 437
2.2.- Envo de mensajes........................................................................................................ 440
2.2.1.- Parada del envo de mensajes ........................................................................... 444
2.3.- Subscripcin a mensajes ............................................................................................. 444
2.3.1.- Parada de la subscripcin ................................................................................... 446
3.- Que es bluetooth? ................................................................................................................. 446
3.1.- Funcionamiento ............................................................................................................ 446
3.2.- Usos de la tecnologa Bluetooth .............................................................................. 447
4.- Como usar bluetooth ............................................................................................................. 447
4.1.- Comunicacin aplicacin con aplicacin ................................................................ 448

Contenido xi

4.1.1.- Deteccin de conexin ...................................................................................... 449


4.2.- Comunicacin aplicacin a dispositivo ................................................................... 450
CAPTULO 11: COMUNICACIONES ..................................................................453
1.- Introduccin.............................................................................................................................. 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
CAPTULO 12: WINDOWS AZURE ....................................................................467
1.- Introduccin.............................................................................................................................. 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 configuracin ........................................................................................................... 490
6.2.- Entorno de simulacin ................................................................................................ 493
6.3.- Desplegar una aplicacin 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.- Conclusin ............................................................................................................................. 515
APNDICE A: PUBLICACIN DE NUESTRAS APLICACIONES .................517
1.- introduccin .............................................................................................................................. 517
2.- Publicacin en la windows store ......................................................................................... 517
2.1.- Creacin de una cuenta de desarrollador. ............................................................ 518
2.2.- Creacin de la aplicacin en la Store. .................................................................... 520
2.3.- Preparacin de nuestras aplicaciones. .................................................................... 522
2.4.- Envo 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.- publicacin en windows phone store ................................................................................. 531


3.1.- Creacin de una cuenta de desarrollador. ............................................................ 531
3.2.- Preparacin de nuestras aplicaciones para publicar............................................ 532
3.3.- Creacin y envo de la aplicacin en la Store....................................................... 535
NDICE ANALTICO ...............................................................................................539

Autores
Josu Yeray Julin
Tiene ms de 10 aos de experiencia trabajando con
tecnologas 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 espaoles, dando charlas
all donde le dejan. Ha sido reconocido con los galardones Nokia
Developer Champion y Microsoft MVP en la categora de
Windows Phone development. Trabaja en Plain Concepts.
Rafael Serna
Jefe de producto en SDM Programas, programador de
nacimiento e inquieto informticamente hablando hasta el extremo.
Trabaja desde hace ya ms de 12 aos desarrollando aplicaciones
de gestin para la pequea y mediana empresa, con tecnologas
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.
Ibn Landa:
Lleva ms de 10 aos dedicado al desarrollo de software, con el
que ha tenido la oportunidad de trabajar en diferentes entornos y
tecnologas. 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
formacin, talleres y giras de producto. Ha sido reconocido con el
galardn de Microsoft MVP en la categora de Windows Azure.
Trabaja en Plain Concepts.

Prlogo Jos Bonnin - Microsoft


En tan solo un mes desde la comercializacin oficial de Windows 8 hemos visto
cmo se han vendido 40 millones de licencias, superando a su predecesor Windows 7
en trminos de actualizaciones. Windows est viviendo un momento de expansin a
otras plataformas en las que tradicionalmente no tena presencia, como son los
dispositivos con arquitectura ARM. Adems nos encontramos ya en la segunda
generacin 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 versin de Windows incorporan la nueva Windows Store, la cual
permite distribuir y comercializar apps para ms de 200 mercados y 100 idiomas.
Josue Yeray, Rafa Serna e Ibn Landa nos van a adentrar a travs de este libro en el
desarrollo de apps, tanto para Windows 8 como para Windows Phone, de manera que
podamos aprender a aprovechar al mximo 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 cmo implementar las apps haciendo uso de
tecnologas emergentes como NFC y buenas prcticas de desarrollo. Entre ellas
encontraremos cmo implementar patrones de diseo tales como MVVM que nos
facilitar, entre otras cosas, poder compartir cdigo entre ambas plataformas de manera
que podamos rentabilizar al mximo nuestro tiempo.
Al finalizar el libro, el lector estar en grado de poder desarrollar, publicar y
comercializar sus apps a travs de la Windows Store tanto para Windows 8 como para
Windows Phone.
Jose Bonnin
Technical Evangelist Manager. Microsoft Ibrica.

Prlogo scar Gutirrez - Nokia


Querido lector,
Cuando Yeray me ofreci el poder escribir un prlogo 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, pelendose unas con otras por ser
las primeras que sean reflejadas en estas lneas que ahora lees recin impresas. Das
despus me encuentro aqu sentado delante de mi ordenador, mirando fijamente una pgina
de Word en blanco con el reto de plasmar y sintetizar en unas pocas lneas todo aquello que
me gustara 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 da a da, con una facilidad innata para aglutinar en unas pocas frases, en unas pocas
palabras, en unos pocos mtodos, todo el conocimiento adquirido tras largos aos 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 accin. Fue en un evento de
desarrolladores en el que participamos juntos en una Universidad de Madrid y en el que l
imparti una sesin magistral sobre Windows Phone 7. Lo primero que me sorprendi en su
charla fue la conexin 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.
Ms de un ao despus, y con un gran nmero de charlas compartidas, puedo asegurar
que Yeray, junto a su inseparable compaero de podcasts Rafa Serna, e Ibn 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 combinacin de Windows 8 y Windows Phone 8 se ha convertido en la tecnologa
software ms avanzada existente para mviles, tablets y PC. Este increble software
proporciona funcionalidades nunca vistas hasta el momento y, por primera vez en la
historia, permite a los mviles compartir el mismo corazn software (Shared Windows
Core) que un ordenador, ofreciendo finalmente a los desarrolladores el anhelado desarrollo
multi-dispositivo: mvil, 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 cmodo, 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 tecnologas ms novedosas de una forma
sencilla gracias a sus mltiples ejemplos creados para ti.
Y como dira un autntico Yerayque la fuerza te acompae!
Oscar Gutirrez Isiegas
Developer Relations Manager. Nokia Spain

CAPTULO

Windows 8 y Windows
Phone 8

1.- ESTRUCTURA DEL LIBRO


En ese captulo comenzaremos por definir la estructura general del libro. A
continuacin hablaremos tanto de las nuevas caractersticas 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 continuacin expondremos cules son los objetivos de este libro.
En primer lugar, veremos las nuevas y renovadas herramientas que tenemos a
nuestra disposicin para desarrollar aplicaciones Windows Store para Windows 8, y
aplicaciones Windows Phone 8. Una vez conocidas y revisadas estas herramientas se
sentarn 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 patrn MVVM!, adems de otras buenas prcticas para
desarrollar nuestros proyectos. Entre otras veremos el patrn Model View ViewModel,
la inyeccin de dependencias, qu son y para qu sirven los test unitarios, etc
Para afianzar los conocimientos adquiridos sobre buenas prcticas en el desarrollo
de software, nos pondremos manos a la obra descubriendo y desarrollando las nuevas
caractersticas 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
cmo desarrollar para Windows 8 y Windows Phone 8 de forma casi simultnea; para
ello haremos uso de patrones de diseo y buenas prcticas en el desarrollo de software.
En segundo lugar repasaremos de forma concisa las nuevas caractersticas, elementos,
reglas y prcticas 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
cules son las mejores prcticas en el desarrollo de software, y un desarrollador ms
avanzado conocer cules son las novedades que incorporan los nuevos sistemas
Windows 8 y Windows Phone 8, pudiendo adems revisar sus conocimientos de
patrones y buenas prcticas.

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 captulo, veremos cules son las
nuevas herramientas para poder llevar a cabo nuestros desarrollos, cules han cambiado
y se han actualizado, y qu es el nuevo paradigma de las aplicaciones Windows Store.

1.2.2.- Patrones y buenas prcticas.


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 prcticas a la hora de
desarrollar software. Asimismo, el uso de patrones de diseo es fundamental para
poder hacer desarrollos que usen una tecnologa comn a varias plataformas,
permitiendo as ser implementados en diferentes sistemas con un coste en la realizacin
asumible.
Cada vez son ms los sistemas objeto de nuestros desarrollos, ms las diferentes
plataformas a las que los desarrolladores nos debemos enfrentar. Y son estas
directrices, el uso de patrones y la aplicacin de buenas prcticas las que nos pueden
ayudar a salir vencedores de la batalla. De lo contrario el coste, no solo econmico sino
mental, puede llegar a ser inasumible. Dedicaremos a este bloque los captulos 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 caractersticas, las abordaremos de manera conjunta, usando
los conocimientos previos para poder desarrollar aplicaciones que tengan una lgica
comn y un desarrollo paralelo para cada una de las plataformas. Veremos temas como
el NFC, los sensores, la cmara, el geo-posicionamiento, etc
En este bloque, que comienza con el captulo 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 disear todo su entorno, consideramos importante explicar
al lector qu es el estilo Metro y de dnde ha surgido.
El 15 de febrero de 2010, en Barcelona, durante la celebracin 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 mxima expresin. (Figura 1)

Figura 1.- Sntesis 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 informacin de la
compaa hasta mediados del ao 2012, se escogi Metro como nombre para

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

denominar a la nueva tipologa 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 denominacin.
Pero, qu es realmente? Microsoft Design Style est basado en los principios de
diseo de la escuela Suiza y las especificaciones usadas por la escuela germana
Staatliches Bauhaus o simplemente Bauhaus.
Estos principios, junto al diseo visual de la cartelera usada comnmente en los
lugares pblicos y de trnsito de personas (Figura 2), llevan a los equipos de diseo de
Microsoft a crear un nuevo lenguaje visual o de diseo basado en tres pilares bsicos:
1. Tipografa. Clara y concisa, pero tambin funcional usada con inteligencia
para crear una jerarqua visual basada en el peso y la posicin de la misma.
2. Movmiento. Tan importante es el diseo 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 distraccin extra que pudiera tener nuestra interfaz. El contenido se
convierte en el foco.

Figura 2.- Paneles informativos de sealizacin

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 gua de estilo. Dicha gua est siendo adoptada por todos los
productos y servicios de la compaa, con lo que, la siguiente revisin de su sistema
operativo principal no iba a ser una excepcin.

Windows 8 y Windows Phone 8 23

3.- CONOCIENDO WINDOWS 8


El 1 de junio de 2011, durante la celebracin del Taipei Computex, Microsoft
ensea al mundo lo que ser la nueva versin del sistema operativo Windows,
concretamente la versin 8.
Mike Angiulo, encargado de realizar dicha presentacin, 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 ao y 118 das
despus, 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 versin de servidores Windows Server 2012 no son slo 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 ejecucin en procesadores x86, tanto en sus
versiones de 32bits como en 64bits.
A partir de la aparicin de Windows 8 esa limitacin queda eliminada, pudiendo
correr el nuevo sistema operativo bajo procesadores ARM. Esta caracterstica 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 ejecucin de Windows 8 en los sistemas ARM tiene una
serie de limitaciones, siendo la ejecucin en exclusiva de aplicaciones Windows Store,
quizs, una de las ms significativas.

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

Nota: Windows RT, el nombre de la versin 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 tctiles y gestos tctiles 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 tctiles no son un
aadido que est para cumplir. El sistema usa estos gestos de forma totalmente
integrada para las operaciones bsicas del mismo. Gestos como deslizar desde la
derecha para mostrar la barra de charms, deslizar desde la izquierda para intercambiar
la aplicacin activa, deslizar desde abajo para mostrar la barra de aplicacin, o deslizar
desde arriba sobre un elemento para seleccionarlo. Todos estos gestos harn que usar
Windows 8 sobre una pantalla tctil sea algo natural y muy intuitivo.

3.1.2.- Soporte para NFC


NFC, siglas de su definicin en ingls (Near Field Communication), es un sistema
de comunicacin inalmbrica entre dispositivos que se encuentran cerca.
Windows 8 incorpora soporte nativo para esta tecnologa, convirtindose as en el
primer sistema operativo de escritorio que posee esta caracterstica. Pero ms all de
simplemente soportarlo, tambin -como veremos en el captulo 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 adaptacin para la ejecucin en tabletas, Windows 8
integra en su sistema el soporte nativo para seis sensores:

Magnetmetro.

Giroscopio.

Acelermetro.

Sensor de inclinacin.

Windows 8 y Windows Phone 8 25

Sensor de iluminacin.

Sensor de Orientacin

Tambin incorpora la gestin y la supervisin del aGPS o sistema de GPS asistido,


el cual puede geo posicionar el aparato a travs de las coordenadas de las celdas o
antenas de telefona mvil 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 permitirn
acceder a todos estos sensores.

3.1.4.- Otras caractersticas


Windows 8 incorpora soporte para otras caractersticas 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) versin 1.2,
modelo encargado de toda la gestin grfica del sistema.

3.2.- Windows 8 y el software


Si muchas son las nuevas incorporaciones que Windows 8 aade y soporta de forma
nativa en lo que a hardware se refiere, no se queda atrs en relacin al software, siendo
el nuevo modelo de programacin, Windows Runtime o WinRT, el que constituye el
centro de atencin.

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 podrn estar hechas en el lenguaje y la
tecnologa que deseemos, podrn ser nativas o interpretadas y, como siempre, dichas
aplicaciones manejarn 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 cdigo nativo en C++, con una interfaz grfica basada en
XAML.

Desarrollo sobre cdigo manejado en .NET con C# o VB.Net, con una


interfaz grfica basada en XAML.

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

Desarrollo sobre JavaScript, con una interfaz grfica creada a base de


HTML5 y CSS.

Desarrollo sobre cdigo nativo C++ o cdigo manejado usando DirectX en


la parte visual del desarrollo.

En la figura 4 se muestra claramente la separacin 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 podrn ser ejecutadas sin ningn tipo de
modificacin, tanto en dispositivos x86 como en dispositivos ARM. Sin embargo, las
aplicaciones de escritorio no estarn 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 pequeo detalle: continuamente
estamos hablando del trmino 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 patrn de diseo definido
bajo los estndares 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 estn basadas en


WinRT.
Un trmino no tiene por qu estar junto al otro. Una aplicacin de escritorio puede
seguir la gua de diseo 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 versin del sistema
operativo mvil de Microsoft; lo que hasta el momento se conoca como Apollo, pas
formalmente a llamarse Windows Phone 8.
Una de las principales modificaciones que incorpora dicha actualizacin es la
adopcin del ncleo del sistema de Windows 8. A partir de este momento Windows
Core (nombre como se le denomina actualmente) constituye las tripas de nuestro
sistema mvil, 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 ncleo comn es que la
integracin 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
diferencindose en algunos puntos, los cuales iremos explicando y desarrollando a lo
largo de los siguientes captulos de este libro.

4.1.- Windows Phone 8 y el hardware


Si en Windows 8 hacamos hincapi en las modificaciones incorporadas
relacionadas con hardware, no son pocas las que nos encontramos en la nueva versin
del sistema operativo mvil. La ms destacada de todas quizs sea la posibilidad de
soportar procesadores multi-ncleo. Concretamente, la primera generacin 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 ncleo a los primeros
dispositivos.
Aparte del esperado soporte para multincleo, Windows Phone 8 incorpora soporte
para tarjetas de expansin MicroSD. Todos los dispositivos, a partir de ahora, podrn
montar una ranura de expansin en donde podremos almacenar nuestra informacin y
conseguir, de esta forma, una capacidad de almacenaje mayor. Una de las pequeas
limitaciones del sistema es la imposibilidad de realizar la instalacin de cualquier
aplicacin dentro de las tarjetas de expansin. Es decir, dichas tarjetas servirn de
almacenamiento complementario a cualquier aplicacin y al sistema, pero no al
almacenamiento principal de la aplicacin.

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

4.1.1.- Multiresolucin de pantalla


A partir de Windows Phone 8 el sistema podr ser montado en dispositivos con tres
tipos diferentes de resolucin de pantalla. Aparte de la resolucin soportada hasta la
versin 7.5 del sistema operativo, resolucin WVGA de 800x480 puntos de pantalla
con una relacin de aspecto1 de 15:9, se incorporan dos ms. Por un lado, una
resolucin denominada 720p o HD sobre 1280x720 puntos de pantalla con una relacin
de aspecto de 16:9 y otra WXGA, tambin conocida como 720p+, de 1280x768 puntos
de pantalla con un relacin de aspecto de 15:9 y una resolucin de 720p.
Windows Phone 8 rompe con la rigidez que hasta el momento ha imperado en los
sistemas mviles, en lo que a resoluciones de pantalla se refiere. Mientras que en
nuestro dispositivo de escritorio podamos fijar una resolucin u otra en funcin de
nuestras preferencias, esto nunca haba sido posible en ningn dispositivo mvil. El
nuevo sistema no es muy prolfico 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 utilizacin de grficos con mapas de bits
estticos. Sin embargo, gracias al uso de grficos vectoriales se puede adaptar a
mltiples resoluciones diferentes sin prdida de calidad en cualquiera de ellos.

4.1.2.- NFC
De la misma forma que Windows 8 incorpora soporte nativo para este sistema de
comunicacin, lo hace tambin Windows Phone 8.
A pesar de que Windows Phone 7 ya posea soporte para esta tecnologa
inalmbrica, es ahora cuando realmente podremos utilizarla, ya que antes no haba
dispositivos que la implementaran. Es con Windows Phone 8 cuando el uso de esta
tecnologa realmente despega, ya que el propio sistema incorpora una aplicacin
concebida para hacer uso intensivo de la misma: la aplicacin Wallet Hub.
Al igual que en WinRT, WinPRT incorpora APIs especficas 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 ms espectacular y sorprendente en relacin al software es, quizs, la
nueva pantalla de inicio o start screen del sistema operativo (Figura 5). Una de las
caractersticas ms innovadoras de Windows Phone 7 fue, sin duda, su interfaz de
usuario los Live Tiles (bloques vivos segn su traduccin literal al espaol) usados
para mostrar la informacin y las aplicaciones. Pues bien, Windows Phone 8 ampla
ese concepto de Live Tile aadiendo la posibilidad de definir tres tamaos diferentes a
1

Relacin de aspecto o aspect ratio en ingls, es la proporcin 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 tamao estndar visto hasta el momento, conocido
como tamao medio o medium size, es aadido el tamao pequeo, cuya medida es una
cuarta parte de la correspondiente al tamao medio. El tercer tamao es el tamao
grande o large size, que tiene la misma altura que el tamao medio pero mide el doble
en horizontal.

4.2.1.- Cambio en los frameworks de desarrollo


Hasta el momento, para Windows Phone solo existan dos tipos de frameworks de
desarrollo: Los desarrollos bajo Microsoft Silverlight o los desarrollos bajo la
tecnologa de XNA. En ambos se podan utilizar los mismos lenguajes de
programacin, 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 grficos.
Esta nueva caracterstica, junto al soporte para nuevos procesadores grficos, hace
de Windows Phone 8 una plataforma muy verstil a la hora de desarrollar juegos sobre
DirectX y compartir cdigo y experiencia de usuario con su homnimo 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 relacin con la geo-localizacin y con las comunicaciones,
ya que el sistema posee tambin la posibilidad de integrar aplicaciones de voIP de
terceros sobre el sistema general de llamadas del telfono.
Con la incorporacin de Internet Explorer 10 y un motor de renderizado de pginas
web igual al que tiene la versin de escritorio, se consigue una gran mejora en la
visualizacin de cdigo JavaScript (Si quisiramos cuantificar dicha mejora, podramos
afirmar que se ve 4 veces mejor). Si a esto le aadimos soporte para, al menos, el
doble de funciones de HTML5 respecto a IE9, Windows Phone 8 se convierte en el
mejor y ms rpido visualizador mvil 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 captulo veremos cules 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 estn desarrollados bajo las versiones
Express de las herramientas de desarrollo, salvo cuando se trate de ejemplos que
comprenden ambas tecnologas. En este caso utilizaremos la versin 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)

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 instalacin es


muy sencillo, aunque algo tedioso. Hacer la instalacin completa, as como la descarga
e instalacin de complementos a dichas herramientas, aunque se realizar de forma
totalmente automtica, 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 diseo para nuestros ficheros
XAML; un simulador del sistema y el Windows App Certification Kit.

Figura 7.- Instalacin 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 disposicin 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.- Obtencin 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 registrndonos 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 aplicacin
destacan cuatro grupos de plantillas: aplicaciones desarrolladas con JavaScript,
aplicaciones en Visual Basic .Net, aplicaciones realizadas en C# y por ltimo
aplicaciones en cdigo nativo con C++.
Realmente, todas las plantillas de proyectos que se nos muestran se podran dividir
en cuatro grupos:

Proyectos de aplicacin. Desde un proyecto en blanco hasta proyectos con


lgica ya implementada los cuales pueden servirnos de ejemplo para
comenzar a desarrollar nuestras aplicaciones. Por ejemplo, los proyectos
de Grid App (varias pginas con navegacin entre grupos de elementos),
Split App (dos pginas con elementos agrupados y navegacin entre ellas),
Aplicacin de diseo fijo (slo disponible en plantillas JavaScript, sirve
para realizar una aplicacin que escala un diseo con relacin de aspecto
fija) y Aplicacin de navegacin (slo disponible en plantillas JavaScript,
puede utilizarse como base para una aplicacin con controles predefinidos
para la navegacin)

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
esttica 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 libreras de clases.

En el lenguaje nativo C++ disponemos de dos tipos de plantillas de proyectos ms,


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 eliminacin en el nombre del producto de la palabra Expression.
Blend ha formado parte de la suite Expression de Microsoft desde sus orgenes,
constituyendo sta la versin 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 versin es totalmente funcional, slo 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 ms adelante, para probar nuestras aplicaciones las


desplegaremos directamente sobre nuestro sistema, o bien, podremos testearlas bajo
este simulador. Esta opcin nos dar una experiencia y visin ms completa de todas
las caractersticas que se encuentran en un dispositivo que incorpora Windows 8. Por
otro lado, sera 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 tctil.
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 tctiles en la pantalla.
El modo mouse es el modo normal, sin emulacin alguna; es la opcin en la cual
simularemos el control del dispositivo con un ratn.
Modo tctil bsico. Emulamos la interaccin tctil con un solo dedo, es decir,
permite realizar los eventos de tapping, dragging y swiping.
Modo de emulacin tctil para zoom. Imitaremos los gestos de ampliacin de
zoom y de reduccin3 de zoom con dos dedos.
Emulacin de gestos de rotacin. Gestos realizados con dos dedos para emular la
rotacin de los mismos: un dedo lo dejamos quieto mientras giramos el otro.
Simulacin de rotacin 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 tamao de pantalla y la resolucin
Mediante el siguiente botn podremos ajustar el tamao de la pantalla de
nuestro simulador, as como la resolucin de pantalla del mismo. Actualmente el
simulador nos ofrece las combinaciones mostradas en la figura 12

Comnmente se denomina zoom al gesto de aumentar la ampliacin 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

Localizacin
Tambin es posible gestionar la localizacin del dispositivo para su posterior uso
como coordenada de posicin. Para ello indicaremos los datos longitud y latitud
en grados, altitud en metros y la precisin de los datos de longitud y latitud en
metros.
Gestin 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 botn 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 sesin de terminal server 5 contra nuestro
propio equipo aadindonos las caractersticas citadas anteriormente. En ningn
momento se emula nada, sino que es un sistema completo.

5.1.4.- Windows App Certification Kit


Toda aplicacin 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 aplicacin. 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 gestin remota de un equipo mediante el protocolo RDP.
5

Windows 8 y Windows Phone 8 37

de certificacin y enviaremos las aplicaciones listas y dispuestas para superar dicho


requisito.
Lo primero que solicita el App Certification Kit es que indiquemos qu aplicacin
queremos someter a las pruebas pertinentes. Una vez seleccionada, el Certification Kit
lanzar repetidas veces nuestra aplicacin, la cerrar e interactuar con ella de forma
totalmente automatizada. Es muy importante que una vez haya empezado el proceso
nosotros no hagamos ninguna modificacin en la aplicacin ya que podra 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 pgina web (vase Figura 13)
El Windows App Certification Kit, no slo valida aplicaciones Windows Store para
su envo a la Store, sino que tambin 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 certificacin

5.2.- Herramientas para Windows Phone 8


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

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

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

Figura 14.- Pgina principal del Dev Center

Dicha web es la continuacin 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 pgina principal de dicha
web.
Igual que ocurra con el SDK de Windows 8, ste no es nicamente la versin para
Windows Phone 8 de Visual Studio 2012, sino que adems incorpora muchas ms
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.- Instalacin del SDK de Windows Phone 8

Igual que para la versin de Windows 8, la descarga e instalacin 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 seleccin 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 aplicacin Windows


Phone e incluye: una pgina por defecto con los estilos de Windows Phone,
archivos de imagen para la pantalla de inicio e iconos, tanto para la
aplicacin como para los tiles en sus diferentes tamaos. 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 aadido de que en la pgina
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


librera de clases que podamos consumir desde una aplicacin Windows
Phone.

Windows Phone Panorama Application. Al igual que la plantilla base se


trata de un proyecto Windows Phone estndar, pero se ha sustituido el
contenido por defecto por un control Panorama. Este control permite tener
elementos que ocupen ms que el ancho de la pantalla y poder movernos
por ellos simplemente desplazndonos de derecha a izquierda, en una rueda
sin fin. Asimismo combina tambin 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
pestaas, tenemos secciones que ocupan la pantalla y podemos navegar por
ellas pulsando sobre el ttulo superior o, simplemente, desplazndonos 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
aplicacin de cdigo manejado (C# o VB.Net) que interaccione con cdigo
nativo. Nos permite hacer, de forma fcil y rpida, una interfaz de usuario
creada totalmente en WinRT (con C# o VB.Net) con grficos 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
podramos hacer exactamente lo mismo pero con cdigo Silverlight y
cdigo XNA.

Windows Phone XAML and XNA Application. Tipo de proyecto similar al


comentado anteriormente. Podremos combinar cdigo manejado (C# o
VB.Net) junto con la renderizacin de grficos utilizando el framework

Windows 8 y Windows Phone 8 41

XNA. Este tipo de proyecto en principio tiene la funcin de estar aqu por
compatibilidad con cdigo anterior. El framework XNA solo est
disponible para desarrollar aplicaciones en la versin 7.1 del sistema y
Microsoft no seguir dndole soporte.

Windows Phone HTML5 Application. Este tipo de proyecto tambin es


nuevo y aparece por primera vez en Windows Phone 8. Bsicamente nos
otorga la facilidad de crear una aplicacin que utiliza contenido HTML,
creando una pgina 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 msica.

Windows Phone Audio Streaming Agent. Plantilla de proyecto similar al


anterior, salvo que ahora reproduciremos la msica por medio de streaming
sin necesidad de que aqulla se encuentre directamente en el telfono.

Windows Phone Scheduled Task Agent. Esto tipo de proyecto nos permite
ejecutar tareas de propsito general en el telfono en segundo plano sin
necesidad de una interfaz de usuario.

No es el cometido de este libro explicar cmo desarrollar aplicaciones para la


versin anterior de Windows Phone, Windows Phone 7.1 7. Sin embargo, s deberamos
saber identificar de forma rpida qu plantillas son nicas y exclusivas para hacer
desarrollos en dicha versin. Todas las plantillas explicadas hasta el momento son
aptas para ambas versiones, a excepcin de la plantilla de Windows Phone XAML
and Direct3D Application que slo 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 versin del sistema deseamos
trabajar, Windows Phone 7.1 o Windows Phone 8.

Figura 17.- Selector de Framework de destino


7

La versin de producto 7.5 de Windows Phone es la versin 7.1 de desarrollo.

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

Asimismo existen plantillas que slo permiten realizar aplicaciones para Windows
Phone 7.1. Todas ellas estn contenidas en la seccin de XNA Game Studio 4.0 y la
plantilla Windows Phone Silverlight and XNA Application.
A principio de este epgrafe dijimos que agrupbamos 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 cdigo nativo,
aplicaciones desarrolladas en C++. Dentro de estas aplicaciones disponemos de las
siguientes plantillas:

Windows Phone Direct3D App. Aplicacin base para poder crear un


proyecto que usa DirectX desarrollado en cdigo nativo. Al igual que el
proyecto base de aplicaciones para cdigo manejado, se incluyen en el
mismo diferentes elementos para facilitarnos el trabajo de desarrollo, como
son los iconos de la aplicacin dentro de la carpeta Assets, y dems
elementos comunes a una aplicacin 3D.

Windows Phone Runtime Component. Este tipo de plantilla nos permite


crear componentes propios con cdigo nativo. Podremos posteriormente
utilizar estos controles y componentes en aplicaciones tanto de cdigo
nativo como de cdigo manejado. Sera la plantilla anloga 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 dinmico, ms conocida como
DLL en sus siglas en ingls. Con ella generamos archivos de cdigo
ejecutable que podremos cargar a demanda en otra aplicacin de Windows
Phone.

Empty Static Library. Al igual que podemos generar una DLL, tambin
podremos generar un proyecto de biblioteca esttica o LIB en sus siglas en
ingls, la cual podremos usar para compilarlas junto a otra aplicacin de
Windows Phone.

Nota: Debemos destacar que estas plantillas slo estn disponibles para la
versin 8 de Windows Phone.

5.2.2.- Blend para Visual Studio 2012


No nos extenderemos mucho en este punto ya que la aplicacin 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 disposicin: obviamente en este caso

Windows 8 y Windows Phone 8 43

tendremos acceso a las plantillas especficas para Windows Phone 8 anteriormente


descritas.

5.2.3.- Emulador de Windows Phone 8


Junto con nuestras herramientas de desarrollo se entrega tambin un completo
emulador del sistema operativo Windows Phone 8. Contamos con las mismas
herramientas adicionales que ya tenamos en la versin anterior del sistema, a saber: el
emulador de GPS, la emulacin del acelermetro, la posibilidad de adaptar la
visualizacin 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 versin
del emulador. La primera de ellas es la disponibilidad de un sistema completo. El
emulador de la versin 7.1 dispona de una funcionalidad muy limitada en cuanto a
aplicaciones preinstaladas del sistema que podamos encontrar en un telfono fsico.
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 ms 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 caracterstica diferenciadora a destacar es el entorno de ejecucin. En


este caso, el emulador est alojado en un entorno virtualizado bajo Hyper-V, tecnologa
de virtualizacin de Windows 8. Por ello, para ejecutar el emulador deberemos
disponer de un equipo con soporte por hardware para esta caracterstica. Los requisitos
mnimos para la ejecucin del emulador de Windows Phone 8 son Windows 8 de 64
bits y soporte para virtualizacin por hardware. Un punto muy importante, antes de
acometer la instalacin 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 permitirn realizar diferentes acciones, tales como bloquear la pantalla, iniciar
la cmara, 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

Accin
Botn Atrs.
Panel de aplicaciones iniciadas.
Ir a la pantalla de inicio.
Abrir Bing search.
Cmara.
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 fsico 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, adems debemos recordar que el lmite 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 lnea 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 cdigo.
ISETool.exe <ts|rs|dir[:device-folder]> <xd|de> <Product GUID>
[<desktop-path>]

5.2.7.- Simulation Dashboard para Windows Phone


Una aplicacin mvil 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 ubicacin en donde est siendo utilizado, y a muchas posibles
interrupciones que se producen en un dispositivo mvil. El nuevo complemento
incluido en este SDK, el Simulation Dashboard (Figura 19), nos da la opcin de validar
de antemano el comportamiento de nuestra aplicacin 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 bsicamente tres aspectos muy
importantes a la hora de comprobar el funcionamiento de una aplicacin en un entorno
real.

Simulacin de seal de red. Podremos simular la disponibilidad de red de


datos, tanto para redes de telefona mvil en 2G, 3G o 4G (conocido
tambin como LTE), como para redes WiFi, o la no disponibilidad de red
alguna. Tambin como apreciamos en la figura, podremos simular, siempre
y cuando seleccionemos un tipo de red, qu disponibilidad de seal
tenemos (una calidad de seal buena, regular o mala). Esta caracterstica

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 prdida de datos10, dependiendo del tipo de red seleccionada
en cada momento.

Simulacin de bloqueo. Con esta opcin podremos simular la activacin o


la desactivacin de la pantalla de bloqueo de nuestro terminal. Nos servir
para probar si nuestra aplicacin responde de la forma esperada a los
estados de comportamiento de una aplicacin Windows Phone. Tambin
podemos usarla, si por ejemplo disponemos de un desarrollo que gestiona
los servicios de localizacin en segundo plano, para ver si stos funcionan
con la pantalla de bloqueo activada.

Simulacin de interrupcin. Podremos simular la activacin de un


recordatorio en el telfono para probar cmo se comporta nuestra
aplicacin cuando es interrumpida o parcialmente obscurecida 11.

Figura 19.- Simulation Dashboard

Velocidad de carga (upload) y descarga (download) de datos por la red.


Latencia unidireccional o retraso, mide cunto tiempo tarda un paquete de datos en
alcanzar su destino.
10
La tasa de prdida se expresa con un valor entre 0 y 1. Una tasa de prdida por
ejemplo de 0,02 significa que se pierde el 2% de los paquetes enviados o recibidos.
11
Obscurecido u Obscured, en ingls, 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 monitorizacin y
generacin 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 aplicacin en el ejercicio de sus
funciones.
Cada vez que ejecutamos esta herramienta se crea un archivo en la carpeta del
proyecto que contiene la informacin con los resultados de cada evaluacin. 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 grficos que contienen
informacin 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 aplicacin, etc.
Los grficos y datos suministrados por esta herramienta son tan extensos, y las
conclusiones que podemos sacar de ellos tan variopintas, que para su interpretacin
hara falta un libro entero dedicado en exclusiva a su anlisis. Por lo tanto, en esta
seccin simplemente presentamos la herramienta y animamos de forma encarecida al
lector a que indague dentro de la misma.

Figura 20.- Resultados en formato grfico obtenidos de un anlisis.

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 opcin de lanzar el Windows Phone Store Test Kit. Esta
herramienta proporciona un conjunto de pruebas automatizadas y manuales que nos
ayudarn a preparar nuestras aplicaciones para que superen la certificacin 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
imgenes vamos a utilizar para su uso futuro en el Windows Phone Store, imgenes de
tiles y screenshots, e indicamos tambin cul es nuestro fichero de empaquetado de
aplicacin, el fichero XAP de nuestra aplicacin.
En la segunda pestaa se realizarn de forma automatizada una serie de pruebas y se
nos mostrar el estado y resultado de las mismas. Por ltimo, en la tercera pestaa, se
muestran una serie de pruebas que deberemos de ir realizando de forma manual para
comprobar que nuestra aplicacin responde de forma correcta segn diferentes pautas
de comportamiento. Tras realizar dichas pruebas deberemos de ir sealando en cada
una de ellas si el resultado obtenido al hacer la prueba de forma manual es el esperado
o no.