SlideShare a Scribd company logo
1 of 4
Download to read offline
11/07/2011




                                                                                 Modelo de ejecución

                                                                            Mango introduce un nuevo estado: Dormant
                                                                            Reanudación de aplicaciones rápida (sin Resuming…)
                                                                            Se busca experiencia de usuario rápida y receptiva
                                                                            Una sola aplicación en primer plano
                                                                            Experiencia de navegación entre aplicaciones
                                                                             consistente
                                                                          Novedad en Mango: Mantener pulsado back button para
                                                                           cambiar a la aplicación anterior




         Conceptos clave                                                         Ciclo de vida de una aplicación

 Estado de aplicación (Application State)  datos utilizados en
  varias páginas de una aplicación
 Estado de página (Page State)  estado visual de una página
  (checkbox activado, textbox con texto…)
 Eventos de aplicación (Event State) eventos para gestionar el
  estado de la aplicación (Launching, Deactivated, Activated, Closing)
 Eventos de página (Page Events) eventos que una aplicación
  puede sobreescribir para gestionar el estado de página
 Tombstoning  proceso de finalización de una aplicación,
  guardando previamente el estado de la aplicación y de las páginas
 Diccionarios de estado (States Dictionaries) almacenan pares
  clave/valor utilizados para restaurar el estado de la aplicación




                                                                                                                                    1
11/07/2011




             Ciclo de vida de una aplicación                                                         Eventos y acciones del modelo de
                                                    Rápida reanudación
                                                    Reanudando .. .
                                                    de App
                                                                                                     ejecución
                                                                                Evento o Método          Acción de la Aplicación
Restaurar estado!
Estado conservado!               running
IsAppInstancePreserved
IsAppInstancePreserved ==                                     Guardar Estado!   Evento Launching         Ejecutar muy poco código. No realizar operaciones intensivas en recursos como acceso al
== false
true                                                                                                     almacenamiento aislado.
                                                                                Método OnNavigatedFrom   Si no es una navegación hacia atrás salvar el estado del interfaz en el diccionario de estado.

                                                                                Evento Deactivated       Salvar el estado de la aplicación en caso de tombstoning. Además debe almacenarse un estado
                                                                                                         persistente en el almacenamiento aislado en caso de que la aplicación se haya terminado. No
                     activated                deactivated                                                debe destruirse el estado de la aplicación en memoria en caso de que la aplicación pase a
                                                                                                         inactiva.

                                                                                Evento Activated         Comprobar el valor de IsApplicacionInstancePreserved. Si es cierto, no realizar nada, si es falso
                                                                                                         utilizar los datos en el objeto State para restaurar el estado de la aplicación.
                                                                                Método OnNavigatedTo     Comprobar si a página es una nueva instancia. Si no lo es, el estado es automáticamente intacto,
                                                                                                         en otro caso si hay datos en el objeto State, debe utilizarse para restaurar el interfaz.
 Tombstone
                                 dormant   Desasociar recursos del teléfono     Evento Closing           Salvar datos de la aplicación persistentes en el almacenamiento aislado.
 App más     Tombstoned
                                           Threads & timers suspendidos
 antigua




              Modelo de aplicación                                                                   Desactivar gestión de recursos

     OnNavigatedFrom/Deactivated
                                                                                                                                                 MediaPlayer.Pause
       Salvar estado de página/ aplicación                                                                                                     MediaElement.Pause
                                                                                                                                             SoundEffectInstance.Pause
                                                                                                                                              VibrateController.Stop
     OnNavigatedTo/Activated                                                                                                                   PhotoCamera.Dispose
                                                                                                                                              Guardar estado de página/global
       Resaturar estado de página/aplicación si tombstoning

                                                                                                                                    XNA Audio                 Pausado
     WP7: la mayoría de las veces Apps Tombstoned
                                                                                                                                    Sensors                   Notificationes suprimidas
     Mango: Apps Tombstoned a veces                                                                                                Networking                Cancelado
                                                                                                                                    Sockets                   Desconectado
                                                                                                                                    MediaElement              Desconectado
                                                                                                                                    Camera                    Disposed




                                                                                                                                                                                                             2
11/07/2011




       Activar gestión de recursos                                                Check List para cambiar rápido de app


                           MediaElement.Source/Position/Play             En evento Deactivated: guardar estado (como en WP7)
                           Socket.ConnectAsync
                           new PhotoCamera/VideoCamera                    En evento Activated: restaurar estado si tombstoning y
                           Restaurar estado de la aplicación si estaba
                                                                         asociar recursos cuando se necesiten
                           en tombstoning                                 Las aplicaciones no pueden ejecurar código tras lanzar
                                                                         Launchers/Choosers
                           XNA Audio      Reanudado                       Las aplicationes pueden continuar su ejecución con la
                           Sensors        Notifications resumed          pantalla bloqueada
                           Networking     Completado con
                                          Cancelación                     Depurar la aplicación con tombstoning
                           Sockets        -
                           MediaElement   -
                           Camera         -




       Buenas prácticas I                                                         Buenas prácticas II

 Lanzamiento de aplicación consistente para el usuario: debe               La aplicación debe completar todos los eventos de
  ser evidente que se trata de una nueva instancia de la                     aplicación y métodos de navegación en 10 sg
  aplicación                                                                Guardar datos progresivamente durante la ejecución
 Usar propiedad State en OnNavigatedFrom para guardar                      Comprobar que no se destruye el estado en memoria
  estado
                                                                             de la aplicación cuando es desactivada
 Usar propiedad State en OnNavigatedTo para recuperar
                                                                            Launchers y Choosers objetos globales
  estado
                                                                            Notificaciones Push: siempre que se lanza la
 Guardar datos persistentes en los manejadores de
  Deactivated y Closing
                                                                             aplicación debe recrearse el canal de notificación
 No recuperar datos de almacenamiento aislado durante
  Launching o Activated  carga asíncrona




                                                                                                                                     3
11/07/2011




         Recursos

 Centro de desarrollo de WP7 en MSDN
http://msdn.microsoft.com/es-es/windowsphone/default.aspx

 AppHub
http://create.msdn.com/

 Windows Phone Developer Blog
http://windowsteamblog.com/windows_phone/b/wpdev
 MobileNUG
http://www.mobilenug.es

 Forums
http://forums.create.msdn.com/forums/




                                                                    4

More Related Content

More from Eduardo

Modulo19 Localización
Modulo19 LocalizaciónModulo19 Localización
Modulo19 LocalizaciónEduardo
 
Modulo18 Giroscopo
Modulo18 GiroscopoModulo18 Giroscopo
Modulo18 GiroscopoEduardo
 
Modulo17 Brujula
Modulo17 BrujulaModulo17 Brujula
Modulo17 BrujulaEduardo
 
Modulo14 Notificaciones
Modulo14 NotificacionesModulo14 Notificaciones
Modulo14 NotificacionesEduardo
 
Modulo13 Web Services
Modulo13 Web ServicesModulo13 Web Services
Modulo13 Web ServicesEduardo
 
Modulo12 Network Information
Modulo12 Network InformationModulo12 Network Information
Modulo12 Network InformationEduardo
 
Modulo11 Pim
Modulo11 PimModulo11 Pim
Modulo11 PimEduardo
 
Modulo10 Background Audio
Modulo10 Background AudioModulo10 Background Audio
Modulo10 Background AudioEduardo
 
Modulo9 Background Agents
Modulo9 Background AgentsModulo9 Background Agents
Modulo9 Background AgentsEduardo
 
Modulo8 Servicio De Notificaciones
Modulo8 Servicio De NotificacionesModulo8 Servicio De Notificaciones
Modulo8 Servicio De NotificacionesEduardo
 
Modulo7 Bases de Datos
Modulo7 Bases de DatosModulo7 Bases de Datos
Modulo7 Bases de DatosEduardo
 
Modulo5 Trucos Web Browser
Modulo5 Trucos Web BrowserModulo5 Trucos Web Browser
Modulo5 Trucos Web BrowserEduardo
 
Modulo4 Indicadores De Progreso
Modulo4 Indicadores De ProgresoModulo4 Indicadores De Progreso
Modulo4 Indicadores De ProgresoEduardo
 
Modulo3 Launchers&Choosers
Modulo3 Launchers&ChoosersModulo3 Launchers&Choosers
Modulo3 Launchers&ChoosersEduardo
 
Modulo1 Herramientas De Desarrollo Wp7 1
Modulo1 Herramientas De Desarrollo Wp7 1Modulo1 Herramientas De Desarrollo Wp7 1
Modulo1 Herramientas De Desarrollo Wp7 1Eduardo
 

More from Eduardo (15)

Modulo19 Localización
Modulo19 LocalizaciónModulo19 Localización
Modulo19 Localización
 
Modulo18 Giroscopo
Modulo18 GiroscopoModulo18 Giroscopo
Modulo18 Giroscopo
 
Modulo17 Brujula
Modulo17 BrujulaModulo17 Brujula
Modulo17 Brujula
 
Modulo14 Notificaciones
Modulo14 NotificacionesModulo14 Notificaciones
Modulo14 Notificaciones
 
Modulo13 Web Services
Modulo13 Web ServicesModulo13 Web Services
Modulo13 Web Services
 
Modulo12 Network Information
Modulo12 Network InformationModulo12 Network Information
Modulo12 Network Information
 
Modulo11 Pim
Modulo11 PimModulo11 Pim
Modulo11 Pim
 
Modulo10 Background Audio
Modulo10 Background AudioModulo10 Background Audio
Modulo10 Background Audio
 
Modulo9 Background Agents
Modulo9 Background AgentsModulo9 Background Agents
Modulo9 Background Agents
 
Modulo8 Servicio De Notificaciones
Modulo8 Servicio De NotificacionesModulo8 Servicio De Notificaciones
Modulo8 Servicio De Notificaciones
 
Modulo7 Bases de Datos
Modulo7 Bases de DatosModulo7 Bases de Datos
Modulo7 Bases de Datos
 
Modulo5 Trucos Web Browser
Modulo5 Trucos Web BrowserModulo5 Trucos Web Browser
Modulo5 Trucos Web Browser
 
Modulo4 Indicadores De Progreso
Modulo4 Indicadores De ProgresoModulo4 Indicadores De Progreso
Modulo4 Indicadores De Progreso
 
Modulo3 Launchers&Choosers
Modulo3 Launchers&ChoosersModulo3 Launchers&Choosers
Modulo3 Launchers&Choosers
 
Modulo1 Herramientas De Desarrollo Wp7 1
Modulo1 Herramientas De Desarrollo Wp7 1Modulo1 Herramientas De Desarrollo Wp7 1
Modulo1 Herramientas De Desarrollo Wp7 1
 

Modulo 2 Modelo Ejecucion

  • 1. 11/07/2011 Modelo de ejecución  Mango introduce un nuevo estado: Dormant  Reanudación de aplicaciones rápida (sin Resuming…)  Se busca experiencia de usuario rápida y receptiva  Una sola aplicación en primer plano  Experiencia de navegación entre aplicaciones consistente  Novedad en Mango: Mantener pulsado back button para cambiar a la aplicación anterior Conceptos clave Ciclo de vida de una aplicación  Estado de aplicación (Application State)  datos utilizados en varias páginas de una aplicación  Estado de página (Page State)  estado visual de una página (checkbox activado, textbox con texto…)  Eventos de aplicación (Event State) eventos para gestionar el estado de la aplicación (Launching, Deactivated, Activated, Closing)  Eventos de página (Page Events) eventos que una aplicación puede sobreescribir para gestionar el estado de página  Tombstoning  proceso de finalización de una aplicación, guardando previamente el estado de la aplicación y de las páginas  Diccionarios de estado (States Dictionaries) almacenan pares clave/valor utilizados para restaurar el estado de la aplicación 1
  • 2. 11/07/2011 Ciclo de vida de una aplicación Eventos y acciones del modelo de Rápida reanudación Reanudando .. . de App ejecución Evento o Método Acción de la Aplicación Restaurar estado! Estado conservado! running IsAppInstancePreserved IsAppInstancePreserved == Guardar Estado! Evento Launching Ejecutar muy poco código. No realizar operaciones intensivas en recursos como acceso al == false true almacenamiento aislado. Método OnNavigatedFrom Si no es una navegación hacia atrás salvar el estado del interfaz en el diccionario de estado. Evento Deactivated Salvar el estado de la aplicación en caso de tombstoning. Además debe almacenarse un estado persistente en el almacenamiento aislado en caso de que la aplicación se haya terminado. No activated deactivated debe destruirse el estado de la aplicación en memoria en caso de que la aplicación pase a inactiva. Evento Activated Comprobar el valor de IsApplicacionInstancePreserved. Si es cierto, no realizar nada, si es falso utilizar los datos en el objeto State para restaurar el estado de la aplicación. Método OnNavigatedTo Comprobar si a página es una nueva instancia. Si no lo es, el estado es automáticamente intacto, en otro caso si hay datos en el objeto State, debe utilizarse para restaurar el interfaz. Tombstone dormant Desasociar recursos del teléfono Evento Closing Salvar datos de la aplicación persistentes en el almacenamiento aislado. App más Tombstoned Threads & timers suspendidos antigua Modelo de aplicación Desactivar gestión de recursos  OnNavigatedFrom/Deactivated MediaPlayer.Pause  Salvar estado de página/ aplicación MediaElement.Pause SoundEffectInstance.Pause VibrateController.Stop  OnNavigatedTo/Activated PhotoCamera.Dispose Guardar estado de página/global  Resaturar estado de página/aplicación si tombstoning XNA Audio Pausado  WP7: la mayoría de las veces Apps Tombstoned Sensors Notificationes suprimidas  Mango: Apps Tombstoned a veces Networking Cancelado Sockets Desconectado MediaElement Desconectado Camera Disposed 2
  • 3. 11/07/2011 Activar gestión de recursos Check List para cambiar rápido de app MediaElement.Source/Position/Play En evento Deactivated: guardar estado (como en WP7) Socket.ConnectAsync new PhotoCamera/VideoCamera En evento Activated: restaurar estado si tombstoning y Restaurar estado de la aplicación si estaba asociar recursos cuando se necesiten en tombstoning Las aplicaciones no pueden ejecurar código tras lanzar Launchers/Choosers XNA Audio Reanudado Las aplicationes pueden continuar su ejecución con la Sensors Notifications resumed pantalla bloqueada Networking Completado con Cancelación Depurar la aplicación con tombstoning Sockets - MediaElement - Camera - Buenas prácticas I Buenas prácticas II  Lanzamiento de aplicación consistente para el usuario: debe  La aplicación debe completar todos los eventos de ser evidente que se trata de una nueva instancia de la aplicación y métodos de navegación en 10 sg aplicación  Guardar datos progresivamente durante la ejecución  Usar propiedad State en OnNavigatedFrom para guardar  Comprobar que no se destruye el estado en memoria estado de la aplicación cuando es desactivada  Usar propiedad State en OnNavigatedTo para recuperar  Launchers y Choosers objetos globales estado  Notificaciones Push: siempre que se lanza la  Guardar datos persistentes en los manejadores de Deactivated y Closing aplicación debe recrearse el canal de notificación  No recuperar datos de almacenamiento aislado durante Launching o Activated  carga asíncrona 3
  • 4. 11/07/2011 Recursos  Centro de desarrollo de WP7 en MSDN http://msdn.microsoft.com/es-es/windowsphone/default.aspx  AppHub http://create.msdn.com/  Windows Phone Developer Blog http://windowsteamblog.com/windows_phone/b/wpdev  MobileNUG http://www.mobilenug.es  Forums http://forums.create.msdn.com/forums/ 4