Hola a todos!
Cada vez está más cerca la nueva versión de Windows Phone y muestra de ello es que ya tenemos las herramientas en su versión RC (Release Candidate) disponibles para descarga aquí:
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27153
Si ya estamos en RC, ¿Por que sigue conservando la versión 7.1? Bueno, La versión de sistema operativo real de Mango será la 7.1 y las herramientas son, del mismo modo, la versión 7.1, pero de cara al nombre de producto, es más pegadizo Windows Phone 7.5 que Windows Phone 7.1, indica un salto mayor y más significativo, lo que significa que Windows Phone 7.5 es solo un nombre de producto, la versión real del S.O. y herramientas será la 7.1.
Además, desde ayer día 22 de Agosto de 2011 ya podemos enviar al Marketplace de Windows Phone aplicaciones compiladas para Windows Phone 7.5, pero… ¡Solo un 4% de los usuarios de Windows Phone cuentan con la nueva versión!
Tranquilidad, en Microsoft han pensado en el coste de transición y han ideado lo siguiente:
Cuando enviemos al Marketplace una nueva versión de nuestra aplicación compilada para Windows Phone 7.5, se guardará la última versión compilada para 7.0. De forma transparente, si accedemos al marketplace con un terminal 7.0 descargaremos la versión 7.0 de nuestra aplicación, si por el contrario accedemos con un terminal 7.5, descargaremos la versión 7.5 de la aplicación, sin tener que seleccionar ni preocuparnos, será el marketplace el encargado de darnos la versión adecuada.
Pero… ¿Vale la pena actualizar?
En principio, mi estrategia sería corregir bugs y estabilizar rápidamente una última versión 7.0, porque una vez que enviemos la primera versión 7.5, no podremos enviar más versiones 7.0. Una vez que hayamos enviado esta versión estable y con corrección de Bugs (O si ya lo habíamos hecho anteriormente) Simplemente convertiría el proyecto a Windows Phone 7.5, esto es muy sencillo, abrimos el proyecto 7.0 en una maquina con las herramientas 7.1 instaladas, nos vamos a las propiedades del proyecto y en la pestaña de Application podremos seleccionar el sistema operativo deseado:
Es importante hacer un backup de nuestro proyecto antes de convertirlo.
Simplemente seleccionamos Windows Phone OS 7.1, nos avisará de que el cambio es irreversible, aceptamos y recompilamos… voila! Ya tenemos nuestro proyecto convertido a Windows Phone 7.5. Si usáis el Windows Phone Silverlight Toolkit, podéis obtener una versión actualizada para Windows Phone 7.5 en CodePlex, en el sitio del proyecto: http://silverlight.codeplex.com, solo necesitáis descargar e instalar el nuevo Toolkit y actualizar las referencias a las correctas de Agosto 2011.
Pero… No he cambiado nada de mi aplicación ¿Para que demonios hago todo esto entonces?
Es importante hacer esto por una gran razón: FAST APP SWITCHING o en la lengua de cervantes: CAMBIO DE APLICACIÓN RÁPIDO. Solo con compilar nuestra aplicación para Windows Phone OS 7.1 tendremos acceso a esta característica pero, ¿Qué significa?
Se ha modificado el ciclo de vida de las aplicaciones para incluir un estado durmiente:
En Windows Phone 7.5 cuando nuestra aplicación se desactiva, no se cierra directamente, se queda en un estado durmiente, el sistema conservará la aplicación en memoria mientras no necesite memoria para abrir nuevas aplicaciones y operar con normalidad, esto significa que debemos seguir realizando el Tombstoning, pero ahora, al recuperarnos y recibir el evento Application_Activated deberemos comprobar si la aplicación viene del estado durmiente, de ser así, no tendremos que recuperar el estado, pues la aplicación se restaurará completamente al estado anterior, para comprobar esto usaremos la propiedad IsApplicationInstancePreserved de la clase ActivatedEventArgs:
// Code to execute when the application is activated (brought to foreground) // This code will not execute when the application is first launched private void Application_Activated(object sender, ActivatedEventArgs e) { if (e.IsApplicationInstancePreserved) return; if (PhoneApplicationService.Current.State.ContainsKey("data")) { SampleData.Personas = (List<Persona>)PhoneApplicationService.Current.State["data"]; PhoneApplicationService.Current.State.Remove("data"); } }
Con esta simple comprobación ya tendremos nuestra aplicación preparada para Windows Phone 7.5 y todos los usuarios que tengan esta versión de Windows Phone agradecerán mucho el poder beneficiarse de esta característica del sistema en nuestras aplicaciones.
Un saludo y Happy Coding!!