3. INSTRUCTOR
SOREY GARCÍA
(@SOREYGARCIA)
El material de apoyo usado fue aportado por el
MVP Cesar Fong y es material del MIX 2011
4. INFORMACIÓN GENERAL (Nivel
1)
Nivel: 100
Público: Aplica solo para estudiantes del SENA e invitados
de AVANET
Personas: 20 SENA – 10 AVANET
Costo: Ninguno
Requisitos: SDK para Windows Phone 7 Mango. Si ya se
tiene VS 2010 es necesario instalarle el Service Pack 1.
Meta: Lograr publicar aplicaciones en el Market Place
5. TEMAS (Nivel 1)
SEMANA 2 (Nivelación)
Introducción básica a C# con
WP7
Introducción básica a Silverlight
para WP7
6. Recordando…
Application Runtime Definición estricta de la
arquitectura
Application UI Cloud Modelo de aplicaciones bien
Model Model Integration definido y acotado
O.S. Evitar Fragmentación del
sistema
Simplificación del desarrollo
HARDWARE
de aplicaciones
7. Recordando… BSP = Board Support Package
Applications Your App UI and logic
Frameworks
Silverlight XNA HTML/JavaScript
CLR
App Model UI Model Cloud Integration
Xbox LIVE
App management Shell frame Bing
Licensing Session manager Location
Chamber isolation Direct3D Push notifications
Software updates Compositor Windows Live ID
Kernel
Security Hardware BSP
Networking A-GPS Accelerometer Compass Light Proximity
Storage Media Wi-Fi Radio Graphics
Hardware Foundation
8. Windows Phone 7 Frameworks Details
Windows Phone Frameworks
Launchers & Windows Phone
Camera Device Integration
Choosers Controls
PhoneApplicationFrame PhoneApplicationPage PushNotification WebBrowserControl Sensors
Silverlight Presentation and Media XNA Frameworks for Games
Controls Drawing IsolatedStorage Drawing GamerServices
Shapes Markup Media Navigation Media Input Graphics Audio Content
Application Object
Common Base Class Library
Runtime Resources Globalization Reflection Location Text IO Net Diagnostics
Security Threading Collections ComponentModel Configuration ServiceModel Linq
11. Secciones básicas
Frames
Un frame o marco se integra con el aspecto de Windows Phone y sentir de
modo que aparezca como cualquier otra aplicación. Sólo un único
fotograma está disponible para la aplicación sin excepciones. Un marco
incluye las siguientes características:
Expone las propiedades de una página alojada como orientación de la
pantalla
Expone un área de cliente donde se representan las páginas
Expone un NavigationService que facilita la navegación entre páginas
Se reserva espacio para la barra de estado y barra de aplicaciones
Páginas
Una página llena de la región de todo el contenido del marco.
12. Secciones básicas
La barra de estado
La barra de estado del sistema a nivel de información sobre el estado
de una manera simple y limpia, reservada en el espacio de trabajo de
la aplicación. El usuario puede interactuar con la barra de estado, ya
que las actualizaciones para proporcionar diferentes notificaciones y
mantener al usuario al tanto de las cosas que son importantes.
Una barra de estado incluye las siguientes características:
La visibilidad de la barra de estado puede ser cambiado por su aplicación.
La opacidad de la barra de estado se puede cambiar en su aplicación.
El color de la barra de estado se puede cambiar en su aplicación.
El indicador de progreso en la barra de estado se puede utilizar en su
aplicación para mostrar el progreso.
13. Secciones básicas
La barra de aplicaciones
La barra de aplicaciones ofrece un lugar para promover las tareas más
comunes. Para las tareas menos comunes, las aplicaciones pueden
incluir un solo menú lanzado desde la barra de aplicaciones. Para más
información, consulte la barra de aplicaciones para Windows Phone .
Una barra de aplicaciones incluye las siguientes características:
La visibilidad de la barra de aplicaciones se puede cambiar por su
aplicación.
La opacidad de la barra de aplicaciones se puede cambiar en su aplicación.
El color de la barra de aplicaciones se puede cambiar en su aplicación.
16. Terminología
Estado de la aplicación (Application State)
De datos que es utilizado por varias páginas en una aplicación. Un ejemplo son
los datos estructurados obtenidos a partir de un servicio web. Es posible que
desee proporcionar vistas diferentes de estos datos en diferentes páginas, pero
los datos pueden ser considerados como pertenecientes a la aplicación en su
conjunto.
Estado de la página (Page State)
El estado actual visual de una página sola aplicación. Si usted tiene una página
que contiene los controles para que el usuario los datos de entrada, y el usuario
se desplaza fuera de su aplicación y luego vuelve a ella, el usuario espera que
todos los controles en la forma tengan los mismos valores que cuando se fueron.
Una aplicación que administra el estado de página a veces se establecen los
valores de los controles en una página cuando se carga de manera que la
experiencia del usuario de una aplicación persistente.
Eventos de la aplicaciones (Application Events)
Hay cuatro eventos primarios utilizados para la gestión de las aplicaciones del
Estado: Lanzamiento , Desactivado , Activado y de cierre . Los controladores de
estos eventos se incluyen en el objeto Application, que forma parte de las
plantillas de proyecto de Visual Studio para las aplicaciones de Windows Phone.
Usted tendrá que escribir código en estos controladores de eventos para
gestionar su estado de aplicación.
17. Terminología
Eventos de Página (Page Events)
El PhoneApplicationPage es eñ objeto de que todas las páginas de Windows
Phone yexpone dos métodos, OnNavigatedTo (NavigationEventArgs) y
OnNavigatedFrom (NavigationEventArgs) los cuales sirven para administrar el
estado de la página.
Tombstoning
El proceso en el que una aplicación se termina, pero algunos datos sobre el
estado de la aplicación y las páginas individuales dentro de la aplicación se
mantiene. Los datos que se guardan incluye la página de la aplicación que se
muestra actualmente y la pila de nuevo de las páginas que habían visitado antes
de la aplicación. Si el usuario navega a una aplicación desechados, la aplicación
se vuelve a crear, y la página actual y el historial de la página se restauran
automáticamente.
Diccionarios Estado (State Dictionaries)
Cada aplicación Windows Phone y página de la aplicación proporciona un objeto
de diccionario en el que puede almacenar pares clave / valor. Estos diccionarios
se conservan cuando una solicitud es desechada. Cuando una aplicación se
activa después de ser desechados, estos diccionarios se utilizan para restaurar el
estado de aplicación. Tenga en cuenta que todos los datos de estos diccionarios
deben ser serializables.
18. Ciclo de Vida de la Aplicación
Launch Closed
App() PhoneApplicationService.Closi
App.InitializePhoneApplication() ng
PhoneApplicationService.Launching App.Application_Closing
App.Application_Launching
App.CompleteInitializePhoneApplicati
on
RUNNING
Deactivated Reactivated
App()
PhoneApplicationService.Deactivat
App.InitializePhoneApplication()
ed
PhoneApplicationService.Activate
App.Application_Deactivated
d
App.Application_Activated
19. Ciclo de Vida de la Aplicación (Mango)
Fast App Resume
Resuming .. .
Restore state!
State preserved! running
IsAppInstancePreserved
IsAppInstancePreserved == Save State!
== false
true
activated deactivated
Tombstone
the oldest
app
Tombstoned dormant
Phone resources detached
Threads & timers suspended
20. Desactivando la aplicación
MediaPlayer.Pause
MediaElement.Pause
SoundEffectInstance.Pause
VibrateController.Stop
PhotoCamera.Dispose
Save page/global state
XNA Audio Paused
Sensors Notifications suppressed
Networking Cancelled
Sockets Disconnected
MediaElement Disconnected
Camera Disposed
21. Activando la aplicación
MediaElement.Source/Position/Play
Socket.ConnectAsync
new PhotoCamera/VideoCamera
Restore app state if tombstoned
XNA Audio Resumed
Sensors Notifications resumed
Networking Completed with Cancellation
Sockets -
MediaElement -
Camera -
22. Estructura de un proyecto .NET
Solución
Proyectos (Assemblies -
Componentes)
Namespaces (Agrupación lógica)
Clases
Archivos de configuración
Recursos adicionales
23. Ficheros de un proyecto
App.xaml
Recursos comunes de la aplicación
App.xml.cs
Namespace con el mismo nombre que la aplicación
Clase parcial App, derivada de Applications
MainPage.xaml
Definición parcial de MainPage
Elementos del root
MainPage.xaml.cs
Definición parcial de la clase derivada de
PhoneApplicationClass
24. Navegación en páginas y
parámetros
Abrir otra página
NavigationService.Navigate(new
Uri("/persona.xaml", UriKind.Relative));
Volver atrás
NavigationService.GoBack();
Montar cadena con parámetros
String direccion = "/persona.xaml?nombre=" +
this.txtNombre.Text + "&apellido=" +
this.txtApellido.Text;
25. Navegación en páginas y
parámetros
Obtención de parámetros
this.nombre.Text =
NavigationContext.QueryString["nombre"];
this.apellido.Text =
NavigationContext.QueryString["apellido"];
this.textBlock1.Text = "Usted ha pasado
datos de " + this.apellido + "," + this.nombre;
27. ¿Adivinen que?
TAREA
Planificar una aplicación y crearle un diseño
Montar la navegación básica
Recurso: www.thenounproject.com
Notas del editor
App.InitializePhoneApplication() crea un rootframe para la aplicaciónNo cargar datos de IsolatedStorage en App_LaunchingDeactivated tiene 10 segundos para llegar a este punto