Manual 2011-II 06 Desarrollo de Aplicaciones Moviles II (0558)

216
Desarrollo de Aplicaciones Móviles II

Transcript of Manual 2011-II 06 Desarrollo de Aplicaciones Moviles II (0558)

  • Desarrollo de Aplicaciones Mviles II

  • 2

    CARRERAS PROFESIONALES CIBERTEC

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 3

    CIBERTEC CARRERAS PROFESIONALES

    NDICE

    Pgina

    Presentacin 5

    Red de contenidos 7

    Unidad de aprendizaje 1

    CONSTRUYENDO UNA APLICACIN WINDOWS PHONE

    1.1 Tema 1 : Introduccin a Windows Phone 11

    1.1.1. : Plataforma del Windows Phone 11

    1.1.2. : Ciclo de vida de una Aplicacin Windows Phone 15

    1.1.3. : Requerimientos de Windows Phone 17

    1.1.4. : Laboratorio 19

    1.2 Tema 2 : Trabajando con SilverLight en Windows Phone 32

    1.2.1. : Introduccin a Silverlight 32

    1.2.2. : Controles en SilverLight 32

    1.2.3. : Laboratorio 38

    1.3 Tema 3 : Navegando entre pginas, manejo de estados 55

    1.3.1. : Navegando entre pginas 55

    1.3.2. : Manejo de estados 60

    1.3.3. : Laboratorio 66

    Unidad de aprendizaje 2

    ACCESO A DATOS POR WINDOWS PHONE 7

    2.1 Tema 3 : Almacenamiento de datos en WP7 77

    2.1.1. : Almacenamiento Local: IsolatedStoraged 77

    2.1.2. : Laboratorio 85

    2.2 Tema 4 : Acceso a datos en Archivos XML 96

    2.2.1. : Acerca de XML 96

    2.2.2. : Manejo de datos en XML en aplicacin Phone 97

    2.2.3. : Controles enlazados a los datos 102

    2.2.4. : Laboratorio 103

    2.2 Tema 5 : Windows Communication Foundation 121

    2.3.1. : WCF, Arquitectura 121

    2.3.2. : Caractersticas del WCF 125

    2.3.3. : Windows Phone y WCF 127

    2.3.4. : Laboratorio 132

  • 4

    CARRERAS PROFESIONALES CIBERTEC

    Unidad de aprendizaje 3

    DESARROLLANDO UNA APLICACIN XNA EN WINDOWS PHONE

    3.1 Tema 6 : XNA 147

    3.1.1. : XNA, caractersticas y requerimientos 147

    3.1.2. : Plantilla del Proyecto 148

    3.1.3. : Objetos Sprites 153

    3.1.4. : Laboratorio 158

    3.2 Tema 7 : Animacin en XNA 175

    3.2.1. : Animacin: movimiento de imgenes, rotacin, tintes,

    acelermetro

    175

    3.2.2. : Animacin por dispositivos de entrada 179

    3.2.3. : Manejo de colisiones 182

    3.2.4. : Laboratorio 183

    3.3 Tema 8 : Creando un Game FrameWork 197

    3.3.1. : Diseo de un Game FrameWork 197

    3.3.2. : Clases de un Game FrameWork 198

    3.3.3. : Laboratorio 206

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 5

    CIBERTEC CARRERAS PROFESIONALES

    PRESENTACIN

    Desarrollo de Aplicaciones Moviles II pertenece a la lnea formativa y se dicta

    en las carreras de tecnologas de la institucin. El curso brinda un conjunto de

    herramientas de programacin para trabajar con una aplicacin mvil que

    permita al alumno desarrollar aplicaciones para el manejo de datos y consulta de

    datos remotas, as como el desarrollo de juegos para una aplicacin mvil en

    forma eficiente.

    El manual para el curso ha sido diseado bajo la modalidad de unidades de

    aprendizaje, las que se desarrollan durante semanas determinadas. En cada una

    de ellas, hallar los logros, que debe alcanzar al final de la unidad; el tema

    tratado, el cual ser ampliamente desarrollado; y los contenidos, que debe

    desarrollar, es decir, los subtemas. Por ltimo, encontrar las actividades y

    trabajos prcticos que deber desarrollar en cada sesin, que le permitirn

    reforzar lo aprendido en la clase.

    El curso es eminentemente prctico: consiste en programacin C# implementado

    en una aplicacin Windows Phone. La primera parte del manual nos ensea a

    implementar las herramientas de SilverLight en una aplicacin Windows Phone

    para el manejo de datos locales y remotos. En primer lugar, se inicia con el

    reconocimiento de las caractersticas de SilverLight. Contina con el manejo de

    las herramientas de SilverLight. Luego, vamos a realizar operaciones para el

    manejo de datos locales y consulta de datos remotos utilizando Windows

    Communication Foundation. La segunda parte del curso es la implementacin de

    juegos utilizando XNA. En primer lugar, reconoceremos los objetos que trabajan

    en una aplicacin de juegos; luego implementamos una aplicacin de juegos con

    animacin. Se concluye con la realizacin de una aplicacin de juegos con

    animacin con los formatos efectuados en el curso.

  • 6

    CARRERAS PROFESIONALES CIBERTEC

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 7

    CIBERTEC CARRERAS PROFESIONALES

    RED DE CONTENIDOS

    Desarrollo de Aplicaciones Mviles II

    Construyendo una

    aplicacin Windows

    Phone

    Introduccion

    WP7

    Controles

    SilverLight

    Acceso a datos por Windows

    Phone

    Datos

    locales

    Datos remoto y

    WCF

    Desarrollando

    aplicaciones XNA en

    Windows

    Phone

    Objetos

    Sprites Animacin

  • 8

    CARRERAS PROFESIONALES CIBERTEC

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 9

    CIBERTEC CARRERAS PROFESIONALES

    CONSTRUYENDO UNA APLICACIN WINDOWS PHONE

    LOGRO DE LA UNIDAD DE APRENDIZAJE

    Al trmino de la unidad, el alumno desarrolla procesos de diseo en una aplicacin Windows Phone utilizando los controles estndares de la aplicacin SilverLight, navegando entre las pginas, definiendo la textura y diseo del layout de una pgina.

    TEMARIO

    Unidad de aprendizaje 1: Construyendo una Aplicacin Windows Phone 1.1 Tema 1 : Introduccin a Windows Phone

    1.1.1. : Plataforma del Windows Phone 1.1.2. : Ciclo de vida de una Aplicacin Windows Phone 1.1.3. : Requerimientos de Windows Phone

    1.2 Tema 2 : Trabajando con SilverLight en Windows Phone 1.2.1. : Introduccin a Silverlight 1.2.2. : Controles en SilverLight 1.2.3. : Laboratorio

    1.3 Tema 3 : Navegando entre pginas, manejo de estados 1.3.1. : Navegando entre pginas 1.3.2. : Manejo de estados 1.3.3. : Laboratorio

    ACTIVIDADES PROPUESTAS

    Los alumnos implementarn una aplicacin Mobile para el manejo de imgenes, videos y archivos de audio.

    Los alumnos aprendern a navegar entre pginas, enviando datos entre ellas.

    UNIDAD DE

    APRENDIZAJE

    1

  • 10

    CARRERAS PROFESIONALES CIBERTEC

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 1 1

    CIBERTEC CARRERAS PROFESIONALES

    1.1 INTRODUCCION A WINDOWS PHONE

    Microsoft Windows Phone es un gran consumidor de aplicaciones mviles, porque

    tiene todas las caractersticas a las que los usuarios se han acostumbrado con el

    iPhone de Apple y los telfonos inteligentes que utilizan tecnologa Android, tales

    como el Motorola Droid y HTC.

    Estas caractersticas incluyen multi-touch. Una interfaz que implementa un nuevo

    diseo moderno llamado METRO, los servicios de redes sociales como Facebook, y

    soporta cuentas de correo electrnico tales como Yahoo, Hotmail, Google y AOL.

    Incluso, si usted es un usuario corporativo, brinda soporte para Microsoft Exchange.

    Excepcionalmente, el telfono cuenta con una versin de Microsoft Office que puede

    utilizar para leer, editar, guardar y sincronizar los archivos de Word, hojas de clculo

    Excel y otros formatos de Office, por lo que es un gran sistema operativo para el

    telfono de aquellos que utilizan Office en casa o en la oficina. Windows Phone

    tambin se puede integrar con Xbox Live, lo que lo convierte en una gran opcin para

    los jugadores.

    Microsoft Windows Phone utiliza el software de Zune para sincronizar las

    aplicaciones instaladas, imgenes, msica, las copias de seguridad y actualizaciones

    flash del sistema operativo.

    Microsoft tambin introduce el concepto de CENTRO: un centro de personas donde

    los usuarios puede almacenar todos sus contactos y conexiones de redes sociales. Un

    centro musical donde los consumidores pueden escuchar, descargar y comprar

    msica. Este centro tambin es conocido como el MARKET PLACE.

    Una de las ventajas de Windows Phone es que Microsoft impone las especificaciones

    de hardware en el fabricante del telfono, lo que le facilita al programador desarrollar

    una aplicacin sin tener que preocuparse de las especificaciones de los cdigos

    dispositivos especficos. Para cualquier versin futura del telfono, se garantiza que la

    aplicacin que se escribi hoy funcionar maana independientemente de la marca del

    telfono.

  • 12

    CARRERAS PROFESIONALES CIBERTEC

    Para Windows Phone, el lenguaje elegido es C#. Los desarrolladores de Visual Basic

    (VB) tendrn que esperar. En cuanto a un marco de desarrollo de aplicaciones, tiene

    dos opciones: Silverlight o XNA. Silverlight y XNA utilizan la misma plataforma:

    Framework .NET.

    1.1.1 PLATAFORMA DEL WINDOWS PHONE

    Microsoft no invent nuevos lenguajes de programacin o Frameworks para la

    plataforma de aplicaciones de Windows Phone. Simplemente ha adaptado los

    Framework existentes. Esto significa que ser capaz de programar utilizando C# con el

    Framework .NET.

    .NET Framework proporciona una base comn de biblioteca de clases que todos los

    programadores .NET conocen, incluyendo soporte para multithreading, XML, LINQ,

    colecciones, eventos, datos, excepciones, IO, modelo de servicio, manejo de redes,

    manejo de texto, reflexin, internacionalizacin, recursos, manejo de hilos o threads, y

    seguridad.

    La plataforma Windows Phone aplicacin consta de dos grandes marcos:

    Silverlight

    XNA

    El uso de Silverlight se har principalmente para el desarrollo de aplicaciones de

    negocios y juegos sencillos en 2D. Silverlight utiliza el XAML: Extensible Application

    Markup Language, que es un lenguaje de marcas declarativo, para crear una interfaz

    de usuario atractiva. Los diseadores tienen una gran flexibilidad en la creacin de

    interfaces de usuario para Windows Phone usando herramientas conocidas como

    Adobe Illustrator, Photoshop y Microsoft Expression Design pues pueden crear la

    interfaz de usuario basndose en vectores para luego exportarlas a XAML.

    Por otro lado, XNA se utiliza principalmente para la creacin de juegos ya que viene

    con motores especializados que permiten crear tanto juegos basados en bucles como

    en 3D.

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 1 3

    CIBERTEC CARRERAS PROFESIONALES

    1.1.1.1 SILVERLIGHT EN WINDOWS PHONE

    Silverlight utiliza la tecnologa web que permite ver el contenido de las aplicaciones de

    Internet as como la tecnologa Flash.

    Desde de una aplicacin de Silverlight no se puede acceder a cualquier sistema

    operativo a menos que sea a travs de las funciones API proporcionadas

    especficamente. La arquitectura de Silverlight lo provee de una seguridad inteligente

    que lo hace muy adecuado para ser utilizado en Windows Phone, ya que Windows

    Phone slo proporciona las funciones API para desarrolladores y limita el acceso al

    sistema operativo nativo.

    Tambin se utiliza Silverlight XAML, para crear grficos basados en vectores y crear

    animaciones. Cualquier diseador familiarizado con las aplicaciones basadas en

    vectores, como Adobe Illustrator y Microsoft Expression Design, puede crear

    fcilmente elementos muy visuales exportarlos a XAML. Esto significa que los

    diseadores tienen un control total sobre el diseo y la apariencia, lo que hace a

    Silverlight una opcin muy potente para crear aplicaciones orientadas al consumidor.

    XAML tambin proporciona una funcin de enlace de datos de gran alcance, por lo

    que es ideal para crear aplicaciones orientadas a empresas.

    1.1.1.2 XNA EN WINDOWS PHONE

    XNA no es una tecnologa nueva. Se utiliza en la creacin de juegos para la consola

    XBOX utilizando cdigo administrado. Trabajar con XNA para juegos es una eleccin

    natural, ya que Windows Phone tiene XBOX LIVE integrado.

    Los juegos de XBOX son fcilmente instalados en una aplicacin Windows Phone. Lo

    nico en lo que los desarrolladores de juegos de XBOX tienen que preocuparse es en

    la resolucin de pantalla, la misma que se puede ajustar fcilmente. En tal sentido,

    XNA proporciona un marco perfecto para el desarrollo de juegos en formato 2D y 3D.

    Asimismo, tiene la capacidad de administrar de manera solvente los objetos del juego

    tales como modelos, mallas, sprites, texturas, efectos, terrenos y animaciones.

  • 14

    CARRERAS PROFESIONALES CIBERTEC

    1.1.1.3 WINDOWS PHONE EMULATOR

    El emulador del Windows Phone se integra a Visual Studio .NET y se asemeja

    bastante a un dispositivo verdadero. Sin embargo, hay cosas que no se puede hacer

    en el emulador, como probar del acelermetro, el GPS, el uso del comps, la radio

    FM, los SMS, el correo electrnico, las llamadas de telfono, la lista de contactos, la

    cmara, y otras caractersticas que requieren un dispositivo fsico.

    Sin embargo, existe una tcnica denominada Extensiones Reactivas, donde el

    emulador es capaz de utilizar los recursos del dispositivo para simular la fuente de

    datos que puede esperar en un telfono real. Por ejemplo, con extensiones reactivas,

    puede simular el acelermetro y las lecturas del GPS para que el emulador pueda

    trabajar sin la necesidad del dispositivo.

    1.1.1.4 DISEO METRO

    Microsoft dirige Windows Phone hacia los profesionales y para ello proporciona una

    interfaz de usuario adecuada. En ese sentido, Microsoft desarroll un estilo de diseo

    denominado METRO. Este estilo de diseo deriva de la industria del transporte, pues

    se basa en los carteles informativos de los aeropuertos y, sobre todo, de las

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 1 5

    CIBERTEC CARRERAS PROFESIONALES

    estaciones de tren. Comprende una tipografa y organizacin grfica que facilita el

    acceso a los recursos del dispositivo as como la simpleza y claridad de la informacin.

    Diseo Metro sigue estos principios:

    Preocupacin por limpieza, la luz y la tipografa, ya que los consumidores van a utilizar

    el mvil durante sus desplazamientos para leer el correo electrnico, los SMS, revisar

    su Facebook y publicaciones en Twitter.

    Perfecta integracin de hardware y software.

    Soporte a gestos para permitir una experiencia de usuario multitctil de clase mundial.

    Centrado en la informacin de modo que la misma sea fcilmente accesible para el

    usuario.

    Puede encontrar ms informacin sobre el diseo Metro en la siguiente direccin

    electrnica: http://go.microsoft.com/fwlink/?LinkID=183218.

    1.1.2 CICLO DE VIDA DE UNA APLICACIN WINDOWS PHONE

    La siguiente figura ilustra un alto nivel de observacin del ciclo de vida de una

    aplicacin.

    Developer

    Registration

    Download SDK

    Guidelines

    Content

    Publish Windows

    Phone

    Application

    AppHub

    http://developer.windowsphone.com

    Manage Account

    Manage

    Application

    Cetification

    Signing Submission

    Reports Analytics

    Application Storefront

    Deploy Update Reject

    Consumer Rating

    Comments

    Windows Phone Marketplace

    Purc

    hase

    Insta

    l

    Unin

    sta

    ll

    Fee

    dback

    Application Category

  • 16

    CARRERAS PROFESIONALES CIBERTEC

    Como desarrollador, usted comenzar en el Hub de Aplicaciones con el registro de su

    Windows Live ID (puede crearlo si usted no tiene uno). Una vez registrado en el Hub

    de Aplicaciones, puede registrar su dispositivo fsico. Recuerde que puede agregar

    hasta tres dispositivos. El entorno de desarrollo ser Visual Studio y/o Expression

    Blend, tanto para la construccin como para la depuracin, junto con el emulador o el

    dispositivo que se registr. Una vez que la aplicacin es creada, es necesario

    presentar la solicitud para la certificacin de la aplicacin.

    A fin de garantizar que su solicitud pasar el proceso de certificacin, sera

    conveniente que lea y entienda el documento de certificacin de aplicaciones que se

    encuentran en la siguiente direccin electrnica:

    http://msdn.microsoft.com/en-us/library/hh184843(v=VS.92).aspx.

    Como parte del proceso de certificacin, su aplicacin pasa a travs de una serie de

    validaciones sobre la aplicacin misma y las polticas de contenido, tales como:

    cdigo, idioma del telfono y requisitos de las imgenes. Tambin se hacen pruebas

    de fiabilidad, rendimiento, gestin de recursos, uso de la funcionalidad de telfono y la

    seguridad. La certificacin de la aplicacin es importante pues ayuda a promover las

    aplicaciones de calidad, proteger a los consumidores de malwares y proteger los

    servicios de Microsoft.

    Una vez que la aplicacin pasa el proceso de certificacin, ser desplegada en el

    MARKET PLACE, de all el usuario consumidor podr descargarla y utilizarla.

    El usuario de la aplicacin deber proporcionar evaluaciones y comentarios sobre su

    apreciacin de la aplicacin. Los informes pueden ser generados por usted desde el

    Hub de Aplicaciones. Basndose en la informacin que recibe, puede optar por

    desplegar una actualizacin que comprenda las correcciones de los errores de la

    aplicacin y/o nuevas caractersticas. El objetivo final es crear una aplicacin

    adecuada para que los consumidores la descarguen y utilicen.

    La participacin en el Marketplace tiene un costo determinado por Microsoft. Dicho

    pago otorga una serie de derechos de publicacin. Finalmente, a partir de la venta de

    sus aplicaciones, usted recibir el dinero correspondiente a las ganancias respectivas

    a travs de un depsito en banco bajo ciertas condiciones especficas de Microsoft.

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 1 7

    CIBERTEC CARRERAS PROFESIONALES

    1.1.3 REQUERIMIENTOS DE WINDOWS PHONE

    1.1.3.1 PANTALLA

    Para empezar, todos los dispositivos Windows Phone tendrn una pantalla con un

    ancho VGA (WVGA) y resolucin de 480 pxeles de ancho por 800 pxeles de alto, lo

    que simplificar la tarea de asegurar que los juegos y aplicaciones se ajusten

    correctamente en la pantalla sin tener que estirar, encoger o dejar grandes reas de la

    pantalla sin utilizar.

    1.1.3.2 BOTONES

    Este es uno de los detalles en los que Microsoft ha sido muy estricto en los

    dispositivos que ejecutan el sistema operativo. Todos los dispositivos deben tener

    exactamente tres botones en el frontal del dispositivo: un botn de retroceso, un botn

    de Windows y un botn de bsqueda. Tener la certeza de la disponibilidad de estos

    botones es particularmente bueno para los desarrolladores, ya que significa que no

    tiene que preocuparse por un montn de combinaciones de mecanismos de control.

    Sin embargo, al mismo tiempo, esta resulta una limitacin pues significa que no habr

    control de direccin disponible, lo cual es muy til en algunas aplicaciones o juegos.

    En su lugar, podemos utilizar la pantalla tctil para la entrada de datos o comandos.

    Existen muchas maneras ingeniosas y creativas en las que esto se puede hacer,

    desde el diseo de juegos en los que el usuario interacta al tocar objetos en la

    pantalla, hasta la presentacin de botones de movimiento en la parte inferior de la

    pantalla.

    1.1.3.3 PROCESADOR

    La especificacin de la plataforma Windows afirma que todos los dispositivos deben

    estar equipados con, al menos, un procesador de 1GHz. Esto se traduce en un

    rendimiento excelente en todos los dispositivos. Es de esperar que la velocidad del

    procesador aumente a medida que evoluciona la plataforma, lo que ser importante

    para soportar a los dispositivos que ejecutan a velocidades ms rpidas, pero, como

    mnimo, significa que una cantidad significativa de potencia de procesamiento estar

    disponible en todos los dispositivos.

    1.1.3.4 HARDWARE GRAFICO

    La API de grficos para juegos de alto rendimiento es XNA, una biblioteca de gran

    alcance basada en la tecnologa DirectX que ha sido la base de los juegos de PC de

    escritorio de la ltima dcada. La implementacin de Windows Phone no es tan

  • 18

    CARRERAS PROFESIONALES CIBERTEC

    poderosa como la del escritorio, pero an as tiene capacidades muy impresionantes

    para un dispositivo mvil. Junto a la API est la aceleracin de hardware de grficos

    que el telfono tiene que manejar para dar soporte a movimientos rpidos y escenas

    complejas en 2D y 3D.

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 1 9

    CIBERTEC CARRERAS PROFESIONALES

    LABORATORIO 1.1

    Creacin de un Proyecto Windows Phone

    Implementa una aplicacin Windows Phone donde al ejecutarse nos muestre un

    Saludo

    1. Inicio del Proyecto

    Para iniciar un proyecto Windows Phone:

    Seleccione la opcin Create New Project.

    Desde el IDE New Project, seleccione la plantilla (Template) Visual C#, el cual

    listara un conjunto de proyectos

    Seleccione la aplicacin Windows Phone Applicatioin, tal como se muestra.

    Asigne un nombre al proyecto, luego presione el botn OK para grabar el

    proyecto

    Seleccione la opcin New Project para crear un nuevo proyecto

  • 20

    CARRERAS PROFESIONALES CIBERTEC

    2. Estructura del Proyecto Windows Phone

    Creada la nueva solucin en forma predeterminada, Visual Studio muestra el archivo

    MainPage.xaml en el editor. La pantalla por defecto para Archivos XAML es una vista

    dividida, donde se exhibe el panel de marcado XAML (texto XML) y el otro presenta

    una vista de diseo que muestra la interfaz de usuario generada como se describe en

    el XAML.

    Seleccione la plantilla Windows Phone en Visual C#

    Asigne nombre al proyecto

    GUI del Windows Phone

    Estructura del Main formato XML

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 2 1

    CIBERTEC CARRERAS PROFESIONALES

    Observe el archivo MainPage.xaml y ver que incluye algunos objetos predefinidos

    como las Grillas y bloques de texto. A continuacin, detallamos la estructura del

    archivo Main.

    Donde:

    1. Es el contenedor XAML objeto, es del tipo PhoneApplicationPage, que a su vez es

    parte de la librera o NameSpace Microsoft.Phone.Controls.

    2. El NameSpace o librera Microsoft.Phone.Controls es mapeado a la librera

    PhoneNavigation XAML. Esta librera tambin se declara en el archivo App.xaml.

    Microsoft.Phone.Controls es clave para las aplicaciones Windows Phone en general

    y aplicaciones Silverlight en particular.

    3. Las aplicaciones Silverlight para Windows Phone, por defecto, generan un objeto

    Grid o cuadricula, denominado LayoutRoot (con la x: sintaxis de la propiedad

    nombre). El Grid es, quiz, el elemento de diseo ms verstil que Silverlight

    ofrece y, probablemente, el que va a utilizar ms a menudo. Le permite ordenar sus

    objetos en varias filas y columnas.

    4. El LayoutRoot define dos filas con el Grid.RowDefinition propiedades. Fijamos la

    primera fila al tamao de Auto, que automticamente cambia la altura de la primera

    fila (fila define la altura, mientras que la columna define la anchura). A continuacin,

    establecemos el segundo fila que bsicamente le dice al motor de diseo, todo el

    resto de la espacio disponible ser utilizada por la segunda fila.

    1

    2

    3

    4

    5

    6

  • 22

    CARRERAS PROFESIONALES CIBERTEC

    5. Esta cuadricula (TitleGrid) tiene dos objetos TextBlock que muestran el nombre de

    la aplicacin y de la pgina. Tenga en cuenta que la TitleGrid se est asignando a

    la primera fila con Grid.Row = "0". El objeto TextBlock slo muestra la cadena que

    se asigna a su propiedad Text.

    6. Aqu es donde se colocar el contenido de su aplicacin. El XAML predeterminado

    que genera SilverLight para Windows Phone, es slo un punto de partida. Usted

    puede modificarlo, actualizarlo o reemplazarlo por completo.

    3. Agregando controles al Page

    Toda aplicacin Windows utiliza una barra de herramientas para agregar controles a la

    Pgina (Page). Agregue los controles al Page, tal como se muestra en la figura.

    A continuacin, trabajamos con las propiedades del control TextBox:

    Arrastre los controles dentro de la Grilla

    Declarativas de los controles en XAML

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 2 3

    CIBERTEC CARRERAS PROFESIONALES

    Luego, asigne las propiedades al control Button, tal como se muestra:

    Propiedad Text: Mensaje

    Propiedad Name: txtMensaje

    Propiedad Content: Ok

    Propiedad Name: btnHello

  • 24

    CARRERAS PROFESIONALES CIBERTEC

    Para programar el control Button del Page, nos ubicaremos en la ventana de

    propiedades (presione la tecla F4) y seleccionamos el botn Eventos.

    A continuacin, programe el evento Clic del botn de la consulta, tal como se muestra

    Seleccione la pestaa Events del control btnHello

    Para programar el evento Click, seleccione el evento y hacer doble Click.

    En el evento Click del button, programe la siguiente sintaxis: toda sintaxis debe terminar en punto y coma

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 2 5

    CIBERTEC CARRERAS PROFESIONALES

    Antes de ejecutar el proceso debemos cambiar el estado de la ejecucin a tipo

    Emulator

    Para ejecutar el emulador del proyecto, presione la tecla F5. Presione el botn OK, el

    cual le dar la bienvenida.

    Antes de ejecutar, seleccione el Target del Projecto a tipo Emulator

  • 26

    CARRERAS PROFESIONALES CIBERTEC

    Diseando la Pgina

    Cuando implementamos una aplicacin y deseamos brindar ciertas caractersticas al

    Layout: color de fondo, color de letra, mrgenes, etc. Estas ediciones se realizan en

    Microsoft Expression.

    Al cargar por primera vez el software,

    seleccione desde la ventana Customer

    Experience, la opcin I dont want to

    join luego presione la opcin OK.

    Cerrar esta ventana presionando el botn

    Close.

    Para disear una o ms pginas de un proyecto, seleccione desde el Menu Inicio, Microsoft Expression Blend 4, tal como se muestra.

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 2 7

    CIBERTEC CARRERAS PROFESIONALES

    Para trabajar con Microsoft Expression, debemos

    abrir el proyecto que estamos trabajando, tal como

    se muestra, seleccione la opcin Open

    Project/Solution.

    Selecciona el proyecto, el cual

    tiene la extensin .sln. A

    continuacin presione el botn

    Abrir.

    1. Seleccione desde objetos: LayoutRoot

    2. Seleccione la opcin Brush: Background

    3. Editar el color, tal como se muestra

    Seleccione el archivo appPhone.sln

  • 28

    CARRERAS PROFESIONALES CIBERTEC

    Diseando el control TxtMensaje.

    1. Seleccione desde objetos: txtMensaje

    2. Seleccione la opcin Brush: BorderBrush

    3. Editar el color, tal como se muestra

    1. Seleccione la opcin Brush: BackGround

    2. Editar el color, tal como se muestra

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 2 9

    CIBERTEC CARRERAS PROFESIONALES

    Para guardar el proyecto, seleccione desde la opcin

    de Menu File, la opcin Save All, tal como se muestra.

    Al activar la pantalla del

    proyecto, debe actualizar el

    archivo editado, donde se

    visualiza el siguiente

    mensaje: seleccione la

    opcin Yes to All.

    Archivo editado actualizado en el proyecto Windows Phone.

  • 30

    CARRERAS PROFESIONALES CIBERTEC

    Cambio de Orientacin de la pantalla

    Al ejecutar el proyecto, el emulador levanta la aplicacin, si cambia de orientacin,

    debera cambiar el sentido de la pantalla, para ello qu debo hacer?

    En el constructor de la Pgina MainPage(), defina el comportamiento de la pgina

    cuando esta realice la rotacin a travs de la siguiente sentencia de programacin:

    Cambio de orientacin de la pantalla

    Sentencia para controlar la rotacin de la pgina

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 3 1

    CIBERTEC CARRERAS PROFESIONALES

    Resumen

    Microsoft Windows Phone es un gran consumidor de telfono, porque tiene todas

    las caractersticas a las que los usuarios se han acostumbrado con los

    smartphones.

    .NET proporciona es una base comn de biblioteca de clases que todos los

    programadores .NET conocen, incluyendo soporte para multithreading, XML, LINQ,

    colecciones, eventos, datos, excepciones, IO, modelo de servicio,

    la creacin de redes, el texto, la ubicacin, la reflexin, la globalizacin, recursos,

    tiempo de ejecucin, la seguridad y el diagnstico.

    Silverlight utiliza la tecnologa web y se usa bsicamente para aplicaciones

    emprsariales y juegos sencillos en 2D.

    XNA se utiliza en la creacin de juegos de Xbox, utilizando cdigo administrado.

    Windows Phone integra Xbox LIVE.

    El emulador del Windows Phone se integra a Visual Studio que simula un

    verdadero dispositivo. Sin embargo, hay cosas que no se pueden hacer en el

    emulador, como prueba el acelermetro, el GPS, comps, radio FM, SMS, correo

    electrnico, llamadas de telfono, lista de contactos, la cmara y otras

    caractersticas que requieren un dispositivo fsico.

    Si desea saber ms acerca de estos temas, puede consultar las siguientes

    pginas:

    http://www.lavilladigital.com

    Aqu hallar un tutorial de aplicaciones de Windows Phone.

    http://libreyextremo.blogspot.com

    En esta pgina, hallar algunos ejercicios sobre aplicaciones en Windows

    Phone.

  • 32

    CARRERAS PROFESIONALES CIBERTEC

    1.2 TRABAJANDO CON SILVERLIGHT N WINDOWS PHONE

    1.2.1 INTRODUCCION A SILVERLIGHT

    En MIX 2010, Microsoft anunci que la plataforma de desarrollo para Windows

    PHONE 7 se basa en XNA y Silverlight. Windows Phone est basado en Silverlight 3.

    Sin embargo, hay algunas optimizaciones en el telfono, as como nuevos controles.

    En este captulo, usted aprender acerca de estas optimizaciones.

    1.2.2 CONTROLES EN SILVERLIGHT

    Windows Phone incluye la mayora de los controles bsicos de Silverlight 3. La

    compatibilidad con Desktop es muy alta, pero la mayora de los controles de

    Windows Phone tienen pequeas optimizaciones o retoques. Antes de llegar a los

    cambios detallados en cada control, debemos entender los motivos y objetivos de

    estos cambios:

    A. Windows Phone no tiene el concepto del Mouse. El Mouse es un concepto en el

    escritorio (y, como tal, en la plataforma Silverlight). Para maximizar la

    compatibilidad entre ambas plataformas, Windows Phone escucha los eventos

    Touch y traduce estos eventos.

    B. Windows Phone es capaz de Multitouch. Algunos controles de Windows Phone

    incluyen soporte de gestos individuales y multitouch, los cuales incluyen tocar,

    rozar y una pizca de zoom (multitoque).

    C. Windows Phone es compatible con temas y tiene un nuevo aspecto y estilo.

    Todos los controles principales de Windows Phone han sido optimizados para

    apoyar la apariencia del diseo METRO.

    A continuacin, se detallan los controles principales en Windows Phone:

    Controles SilverLight 3 Optimizacion en Windows Phone

    Button Temas. Gestor de toque Click

    CheckBox Temas. Gestor de toque Click

    ContentControl

    HyperlinkButton Temas

    Configurado para iniciar el navegador en el dispositivo.

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 3 3

    CIBERTEC CARRERAS PROFESIONALES

    Image JPGs son decodificados en el hardware, PNG es

    decodificado

    ListBox Toque, gestor Flick. Desplazamiento del pixeles basado

    en los puntos fijos de los tems

    MediaElement Hardware de reproduccin con el dispositivo Media Stack

    MultiScaleImage Hardware de procesamiento acelerado

    Password Soporta SIP. Retraso visual del carcter escrito antes de

    convertirse en carcter contrasea

    ProgressBar Temas

    RadioButton Gestor Tap antes del Click, Temas

    ScrollViewer Barras de desplazamiento no son recurribles, son

    indicadores de posicin.

    Slider Gestor Tap. Temas

    TextBox Soporte SIP

    Soporte para Entrada

    TextBlock Temas

    1.2.2.1 Nuevos Controles en Windows Phone

    Windows Phone extiende el ncleo de Silverlight con un conjunto de controles

    optimizados para la forma del telfono, para el soporte del modelo de navegacin de

    Windows Phone y controles que admiten la apariencia Metro.

    A. Control WebBrowser

    Las aplicaciones Windows Phone estn alojados fuera del explorador en un proceso

    de host llamado taskhost.exe. Este proceso de alojamiento es similar a la salida del

    explorador modelo disponible en Silverlight 4. Tanto en Windows Phone y Silverlight 4,

    cuando se encuentre fuera de navegador que puede albergar y interactuar con el

    contenido HTML y Javascript con el control WebBrowser.

    El WebBrowser permite cargar el contenido en tres maneras diferentes:

    La propiedad Source apunta un URI donde el HTML que es donde el control

    descarga el HTML que ser reproducido.

    El mtodo Navegate () permite desplazarse a cualquier Uri.

  • 34

    CARRERAS PROFESIONALES CIBERTEC

    NavigateToString () le permite cargar una cadena de formato HTML directamente en

    el control. Dado que el cdigo HTML se pasa como una cadena, puede ser el

    contenido dinmico, que proviene de la Internet, pero es ledo como un Stream, o

    puede ser un archivo local, ya sea en el almacenamiento aislado o su aplicacin.

    Para controlar la navegacin, el control expone los eventos Navigating y Navigated:

    El evento Navigating se desencadena antes que la navegacin suceda, donde se

    puede asignar la propiedad Cancel en el NavigationEventArgs pasado en el evento

    para evitar que el usuario de navegacin de distancia.

    El evento Navigated se activa cuando el nuevo objetivo de Uri se abre y se descarga.

    B. PhoneApplicationFrame

    Dentro de una aplicacin, la navegacin desde un Page a otro Page es implementada

    por la clase PhoneApplicationFrame y la clase NavegationService.

    Usando PhoneApplicationFrame no se puede ejecutar el mtodo GoForward(); la

    propiedad CanGoForward siempre ser falsa.

    CacheSize es siempre 0; dicho ajuste produce una excepcin.

    No hay integracin con las aplicaciones Windows Phone que se encuentran fuera

    del navegador.

    Las plantillas para el control son diferentes. En particular, las plantillas de

    Windows Phone fijan los mrgenes para el cromo del telfono - el cromo es un

    rea reservada para la bandeja del sistema y la barra de aplicaciones-. Usted

    debe respetar estas reas si desea reemplazar la plantilla.

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 3 5

    CIBERTEC CARRERAS PROFESIONALES

    C. PhoneApplicationPage

    PhoneApplicationPage tiene la funcionalidad de navegacin para ir junto con Marco,

    pero tambin incluye tres otras caractersticas crticas para cualquier aplicacin

    Windows Phone: Orientacin, De mens (a travs de la ApplicationBar) e integracin

    de tareas (Selectores y Lanzadores).

    Por navegacin, PhoneApplicationPage tiene mtodos virtuales para NavigatedTo,

    NavigatingFrom y NavigatingTo.

    PhoneApplicationPage tiene una referencia hacia NavigationService que el Frame

    utiliza y el NavigationContext pasado hacia la pgina. El NavigationContext contiene

    una cadena de consulta que es utilizada en el URI de la pgina.

    Ejemplo.- Uso NavigationContext para leer un QueryString pasado al

    PhoneApplicationPage.

    D. Orientation

    Tambin desencadenado de manera similar como Navigation, va mtodo virtual,

    puedes sobrescribirse:

    OrientationChanging() se dispara antes de los cambios de orientacin y puede

    cancelar el cambio

    OrientationChanged() permite conocer que la orientacin ha sido cambiada.

    Una PhoneApplicationPage puede controlar la orientacin asignndolo en la propiedad

    SupportedOrientations. Una pgina puede elegir ser Portrait o Landscape or

    PortraitOrLandscape. Por defecto es Portrait.

    private void OnNextClick(object sender, RoutedEventArgs e){

    NavigationService.Navigate(new

    Uri("/LWP.Navigation;component/GenericPortraitPage.xaml?step=" + NextStep,

    UriKind.Relative));

    }

    void GenericPortraitPage_Loaded(object sender, RoutedEventArgs e){

    // Acceso a QueryString desde propiedad NavigationContext en Page

    if (this.NavigationContext != null &&

    this.NavigationContext.QueryString != null){

    var step=this.NavigationContext.QueryString["step"] as string;

    }

    }

  • 36

    CARRERAS PROFESIONALES CIBERTEC

    E. ApplicationBar

    El ApplicationBar es una barra de men para la aplicacin. La meta para el

    ApplicationBar es proporcionar un men o barra de herramientas que proporciona fcil

    acceso a las tareas comunes en la aplicacin. Cada PhoneApplicationPage puede

    tener su propia ApplicationBar, aunque se recomienda que no cambie demasiado las

    opciones en cada pgina. Tambin puede ocultar o mostrar la barra de men. Un

    ApplicationBar puede contener un botn de una hilera (instancias de

    ApplicationBarIconButton) o cualquier nmero de tems de men (los casos de

    ApplicationBarMenuItem). El lmite para el nmero de botones en la ApplicationBar es

    de cuatro. No hay lmite en el nmero de elementos de men, pero cinco es el lmite

    recomendado para evitar el desplazamiento.

    F. Date and Time Pickers

    Los controles Date and Time Picker son utilizados para seleccionar fecha y horas del

    telfono. Estos controles son optimizados para touch; se puede usar un simple touch o

    roleando en cualquier campo de la pantalla.

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 3 7

    CIBERTEC CARRERAS PROFESIONALES

    G. Choosers y Launchers

    Choosers y Launchers son diferentes tipos de componentes. Son anlogamente los

    cuadros de dilogos en Windows o SilverLight, Chooser y Launchers. Son utilizados

    para comunicar dentro de una aplicacin SilverLight al Shell o a otras aplicaciones

    Choosers permite al usuario seleccionar un elemento de un conjunto de elementos. Un

    Chooser devuelve algunos contenidos o datos en el retorno. Un ejemplo de un

    Chooser es el PhotoChooserTask, que se utiliza para seleccionar una foto de la

    biblioteca de fotos del dispositivo. Cuando el API se invoca, el usuario elige una foto y

    la informacin sobre ella es regresada de nuevo a la aplicacin de llamada.

    Launchers son diferentes de los Choosers, porque no devuelven datos. Ellos ms bien

    desencadenan la accin. Un ejemplo de un Launcher es la API utilizada para colocar

    una llamada telefnica. En este caso, el desarrollador invoca el API y el usuario

    vuelve, de nuevo, a la aplicacin de llamada una vez que la llamada ha terminado.

    Las tareas estn bajo el nameSpace o librera Microsoft.Phone.Tasks, donde se

    pueden encontrar los siguientes selectores:

    CameraCaptureTask

    EmailAddressChooserTask

    PhoneNumberChooserTask

    PhotoChooserTask

    SaveEmailAddressTask

    SavePhoneNumberTask.

    En los launchers, encontraremos un MarketplaceLauncher, y MediaPlayerLauncher.

  • 38

    CARRERAS PROFESIONALES CIBERTEC

    LABORATORIO 2.1

    Creacin de un Proyecto Windows Phone

    Implementa una aplicacin Windows Phone para navegar por la Web

    1. Inicio del Proyecto

    Para iniciar un proyecto Windows Phone:

    Seleccione la opcin Create New Project.

    Desde el IDE New Project, seleccione la plantilla (Template) Visual C#, el cual

    listara un conjunto de proyectos

    Seleccione la aplicacin Windows Phone Applicatioin, tal como se muestra.

    Asigne un nombre al proyecto, luego presione el botn OK para grabar el proyecto

    2. Diseo

    Seleccione la plantilla Windows Phone en Visual C#

    Asigne nombre al proyecto

    Seleccione la opcin New Project para crear un nuevo proyecto

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 3 9

    CIBERTEC CARRERAS PROFESIONALES

    A continuacin vamos a disear el Page que permitir realizar el proceso de

    navegacin

    3. Programacin

    En este proceso, codificamos el proceso de la navegacin, el cual se realiza sin la

    debida validacin, la idea es Cmo validamos el proceso?

    Programando con validacin, donde evaluamos varios aspectos del proceso:

    textBox, Name=txtDireccion

    button, Name= Button1

    WebBrowser, Name= webBrowser1

  • 40

    CARRERAS PROFESIONALES CIBERTEC

    Si la URL est vaca.

    Si la URL contiene about.

    Si la URL no inicia con http://

    Si est correcto, entonces procedemos a Navegar

    Presiona F5, para ejecutar la aplicacin.

    Si la cadena est vaca o es about:blank

    Si la cadena no inicia con http:// o https://, lo agrega

    Ejecutar el proceso de navegar, si no existe, ejecuta la excepcin

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 4 1

    CIBERTEC CARRERAS PROFESIONALES

    LABORATORIO 2.2

    Creacin de un Reproductor de Sonido

    Implementa una aplicacin Windows Phone para reproducir un archivo de formato

    MP3, es decir, archivo de msica.

    1. Diseo del Formulario

    2. Programacin

    En el evento Loaded del Page, definimos el origen del control MediaElement, tal como

    se muestra:

    Control MediaElement, name: mediaElement1

    Control Button, name: btnStop

    Control Slider, name: slider1

    Control Button, name: btnPlay

    Definir el Source del control con la ubicacin del archivo mp3

  • 42

    CARRERAS PROFESIONALES CIBERTEC

    A continuacin, programa el botn Stop y Play para ejecutar el control Media Element,

    tal como se muestra.

    Para controlar el avance del reproductor del Media, programa el evento

    ValueChanged del control slider1, el cual medir el tiempo transcurrido del

    reproductor.

    Presione F5 para ejecutar la aplicacin.

    Al presionar el botn Play, iniciar el mtodo Play del control MediaElement1

    Al presionar el botn Stop, detiene el proceso del control MediaElement1

    Programa el evento ValueChanged del control slider1 para aumentar o disminuir el volumen del mediaElement1

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 4 3

    CIBERTEC CARRERAS PROFESIONALES

    LABORATORIO 2.3

    Creacin de una Calculadora

    Implementa una aplicacin Windows Phone para crear una calculadora e implementar

    sus operaciones bsicas: suma, resta, producto y divisin.

    1. Inicio del Proyecto

    Seleccione la opcin Create New Project

    Desde el IDE New Project, seleccione la plantilla (Template) Visual C#.

    Seleccione la aplicacin Windows Phone Applicatioin, tal como se muestra.

    Asigne un nombre al proyecto, luego presione el botn OK.

    2. Diseo

    A continuacin, vamos a disear el Page que permitir crear la calculadora.

    Seleccione el tipo de Page

    Asigne el nombre a la Pgina, presione el botn Add

    Control Image

  • 44

    CARRERAS PROFESIONALES CIBERTEC

    Agregue un control IMAGE para insertar una imagen.

    Para seleccionar una imagen, en el control Image, configure la propiedad Source, seleccione la

    imagen a visualizar, tal como se muestra.

    Para cambiar el formato al TextBlock, en otros proyectos lo conocemos como Label:

    Color de letra: ForeGround. Tamao, tipo y estilo de letra: Text.

    Propiedad Source del control Image

    ForeGround permite dar color de letra

    Propiedad Text, asigna el tamao y tipo de letra

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 4 5

    CIBERTEC CARRERAS PROFESIONALES

    Como siguiente paso, diseamos la pgina para realizar el proceso de la calculadora,

    tal como se muestra.

    3. Programacin

    Declare e inicialice las variables

    del proceso a nivel Class

    PageCalculator.

  • 46

    CARRERAS PROFESIONALES CIBERTEC

    Defina la funcin Calcula, donde definimos tres parmetros, los cuales realizan el

    clculo aritmtico segn el signo.

    Definir los eventos: numero_Click y el evento signo_Click.

    El primer evento trabaja con los button numrico y el segundo evento trabaja con los

    button signo (+, - *).

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 4 7

    CIBERTEC CARRERAS PROFESIONALES

    Para enlazar los eventos a cada button, seleccione el control Button, tal como se

    muestra. En la ventana de propiedades, seleccione la pestaa Event; en el evento

    Click seleccione el evento que va a desencadenar: para el button 1, el evento Click a

    seleccionar seria numero_Click, tal como se muestra

    El mismo proceso para los button signo, en este caso debe seleccionar en el evento

    Click: signo_Click, tal como se muestra

  • 48

    CARRERAS PROFESIONALES CIBERTEC

    En el button = programe el

    evento respectivo, hacer doble

    click al evento Click.

    Presione la tecla F5 para ejecutar.

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 4 9

    CIBERTEC CARRERAS PROFESIONALES

    LABORATORIO 2.4

    Creacin de una Barra de Aplicaciones

    Implemente una aplicacin Windows Phone para crear una barra de aplicaciones en

    nuestra Pgina Principal.

    1. Inicio del Proyecto

    Seleccione la opcin Create New Project

    Desde el IDE New Project, seleccione la plantilla (Template) Visual C#.

    Seleccione la aplicacin Windows Phone Applicatioin, tal como se muestra.

    Asigne un nombre al proyecto, luego presione el botn OK.

    2. Diseo

    Antes de iniciar el proceso, agregue algunos archivos

    de imgenes de extensin .png: calculador.png,

    internet.png, reproductor.png.

    Seleccione el tipo de Page

    Asigne el nombre a la Pgina, presione el botn Add

  • 50

    CARRERAS PROFESIONALES CIBERTEC

    Agregue un control Image a la pgina, tal como se muestra. En la ventana de

    propiedades del control, asigne en la propiedad Source el archivo Cibertec.jpg, tal

    como se muestra.

    3. Programacin

    Defina el nameSpace Microsoft.Phone.Shell, asi como el objeto ApplicationBar

    llamado Bar, tal como se muestra.

    Propiedad Source del control Image

    NameSpace Microsoft.Phone.Shell

    Definir a Bar de tipo ApplicationBar

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 5 1

    CIBERTEC CARRERAS PROFESIONALES

    En el constructor, definiremos las propiedades del Bar (ApplicationBar), adems

    agregamos tres button, definiendo la propiedad image, as como la propiedad text, tal

    como se muestra:

    Ejecute el proyecto, al cargar la pgina Principal, se visualiza

    la lista de botones de la barra de aplicaciones.

    Instanciar el objeto Bar y asignarle algunas propiedades

    Agregar los buttons b1, b2 y b3 a Bar

    Asignar al Application bar del Page el objeto Bar

    Definir 3 buttons de tipo ApplicationBar

  • 52

    CARRERAS PROFESIONALES CIBERTEC

    Definiendo el mtodo a los botones llamado botn_Click

    Para enlazar el evento de cada botn, este proceso se realiza en el constructor.

    Presione F5 para ejecutar y verifique que cada botn muestre su mensaje.

    El mtodo botn_Click, ejecuta el proceso de los botones de la barra de aplicaciones

    Enlazar el evento de cada botn al mtodo botn_Click tal como se muestra

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 5 3

    CIBERTEC CARRERAS PROFESIONALES

    Resumen

    Windows Phone incluye la mayora de los controles bsicos de Silverlight 3. La

    compatibilidad con DeskTop es muy alto, pero la mayora de los controles de

    Windows Phone tienen pequeas optimizaciones o retoques.

    Windows Phone es capaz de Multitouch. Algunos controles de Windows Phone

    incluyen soporte a gestos individuales y multitouch. El soporte para nicos y

    multitouch gestos, en la plataforma, incluye tocar, rozar y una pizca de zoom

    (multitoque).

    Windows Phone extiende el ncleo de Silverlight con un conjunto de controles

    optimizados para el factor de forma del Phone, nuevos controles que soportan el

    Modelo de Navegacion de Windows Phone y controles que admiten la apariencia

    Metro.

    El WebBrowser permite cargar el contenido, a travs de la propiedad Source,

    utilizando el mtodo Navegate () permite desplazarse a cualquier Uri y la propiedad

    NavigateToString () le permite cargar una cadena de formato HTML directamente

    en el control.

    Dentro de la una aplicacin, la navegacin desde un Page a otro Page son

    implementadas por la clase PhoneApplicationFrame y la clase NavegationService

    El emulador del Windows Phone se integra a Visual Studio que simula un

    PhoneApplicationPage tiene la funcionalidad de navegacin para ir junto con

    Marco, pero tambin incluye tres otras caractersticas crticas para cualquier

    aplicacin Windows Phone: Orientacin, De mens (a travs de la ApplicationBar),

    e integracin de tareas (Selectores y Lanzadores). Por navegacin,

    PhoneApplicationPage tiene mtodos virtuales para NavigatedTo, NavigatingFrom

    y NavigatingTo.

    El ApplicationBar es una barra de men para tu aplicacin. La meta para el

    ApplicationBar es proporcionar una respuesta coherente, de fcil acceso, men o

    barra de herramientas que proporcione fcil acceso a las tareas comunes en la

    aplicacin. Cada PhoneApplicationPage puede tener su propia ApplicationBar.

    Los controles Date and Time picker son utilizados para seleccionar fecha y horas

    donde del Phone. Estos controles son optimizados para touch

    Choosers y Launchers son diferentes tipos de componentes; ellos son

    anlogamente los cuadros de dilogos en Windows o SilverLight, Chooser y

  • 54

    CARRERAS PROFESIONALES CIBERTEC

    Launchers. Son utilizados para comunicar dentro de una aplicacin SilverLight al

    Shell o a otras aplicaciones

    Si desea saber ms acerca de estos temas, puede consultar las siguientes

    pginas:

    http://www.lavilladigital.com

    Aqu hallar un tutorial de aplicaciones de Windows Phone.

    http://libreyextremo.blogspot.com

    En esta pgina, hallar ejercicios sobre aplicaciones en Windows Phone.

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 5 5

    CIBERTEC CARRERAS PROFESIONALES

    1.3 NAVEGACION ENTRE PGINAS, MANEJO DE ESTADOS

    1.3.1 NAVEGANDO ENTRE PGINAS

    En este captulo, vamos a hablar acerca de cmo navegar entre pginas en Silverlight

    para Windows Phone. Hay dos razones por las que sta es una leccin importante.

    Primero, porque no se debe crear toda la aplicacin en un nico archivo XAML.

    Segundo, porque al seguir las reglas la aplicacin podr automticamente tomar

    ventaja del botn de retroceso (Back) incorporado en el dispositivo. Esto permitir a

    los usuarios volver desde la aplicacin a lo que estaban haciendo anteriormente. Hay

    varias formas de navegar entre pginas, pero vamos a enfocarnos en una a la que

    vamos a llamar Navegacin Simple de Web. Navegaremos entre pginas de igual

    manera como si fuesen pginas de HTML.

    1.3.1.1 Navegando utilizando control Hyperlink

    Tenemos varias pginas y queremos darle al usuario una forma de moverse entre

    ellas. Construyamos una interface grfica simple de navegacin que nos permita hacer

    eso. Si queremos ir de la primera a la segunda, podemos hacer uso de un control

    HyperlinkButton. Este control permite realizar la navegacin entre dos pginas.

    Para establecer el vnculo entre pginas a travs del control HyperlinkButton, se puede

    hacer usando slo XAML:

  • 56

    CARRERAS PROFESIONALES CIBERTEC

    Al ejecutar el proyecto, debe ser posible hacer clic en cualquiera de estos botones de

    vnculos e ir a la pgina. Al usar el botn de retroceso () podrn ir a la pantalla

    previa. Si se retrocede lo suficiente, se sale de la aplicacin al pasar ms all de su

    primera pantalla.

    1.3.1.2 Navegando utilizando comandos de navegacin

    Se puede navegar entre pginas utilizando cdigo en vez de usar slo XAML, pueden

    usar cualquier elemento XAML que prefieran. En este ejemplo, vamos a crear tres

    botones y cada uno apunta al mismo controlador de eventos. En el cdigo C#

    siguiente, vern que se averigua cul botn ha sido pulsado y luego se va a la pgina

    apropiada. La funcin original del botn de retroceso todava est disponible en su

    totalidad.

    En XAML

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 5 7

    CIBERTEC CARRERAS PROFESIONALES

    En C#

    private void Botn_Click(object sender, RoutedEventArgs e){

    Button botnPulsado = sender as Button;

    switch (botnPulsado.Name) {

    case "BotnPasta":

    NavigationService.Navigate(new Uri("/Pasta.xaml",

    UriKind.Relative));

    break;

    case "BotnQueso":

    NavigationService.Navigate(new

    Uri("/Cheese.xaml",UriKind.Relative));

    break;

    case "BotnSalsa":

    NavigationService.Navigate(new Uri("/Sauce.xaml",

    UriKind.Relative));

    break;

    }

    }

    Como se puede ver, todas las acciones del usuario son registradas, permitindole

    retroceder por el camino tomado con tan slo usar el NavigationService

    1.3.1.3 Clase NavigationService

    Las pginas necesitan a menudo integrarse con la navegacin de su host para

    proporcionar compatibilidad de navegacin en las pginas. Sin embargo, como es

    posible que una pgina no sepa cul ser su host en tiempo de ejecucin, no puede

    integrarse directamente con los miembros de navegacin de su host.

    En su lugar, puede intentar utilizar un servicio de navegacin, que es un servicio que

    admite navegacin basada en el explorador y est encapsulado por la clase

    NavigationService. No obstante, no puede crear su propia instancia de

    NavigationService.

    El servicio de navegacin, que se devuelve de la propiedad NavigationService, es la

    instancia de la clase NavigationService la cual est administrada por el primer

    navegador en el rbol visual. Si no se encuentra ninguna, se devuelve null, lo que

    indica que el host de una pgina no admite la navegacin.

  • 58

    CARRERAS PROFESIONALES CIBERTEC

    Se puede navegar al contenido mediante una instancia de un objeto y llamando a una

    sobrecarga del mtodo Navigate que acepte un objeto:

    NavigationService.Navigate(Object)

    NavigationService.Navigate(Object, Object)

    Cuando se navega al contenido mediante el URI, NavigationService devolver un

    objeto que incluye el contenido. Se puede realizar el seguimiento de la duracin de

    una navegacin a travs de los eventos siguientes:

    Navigating

    Navigated

    NavigationProgress

    NavigationFailed

    NavigationStopped

    LoadCompleted

    FragmentNavigation.

    No todos los eventos se provocan cada vez que se produce una navegacin; el tipo de

    navegacin que se produce (contenido o fragmento del contenido) determina el

    conjunto de eventos que se provocan y el modo en el que se completa la navegacin

    (cancelada, detenida o con errores).

    La figura siguiente muestra la secuencia en la que se provocan estos eventos:

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 5 9

    CIBERTEC CARRERAS PROFESIONALES

    De forma predeterminada, NavigationService no almacena ninguna instancia de un

    objeto de contenido en el historial de navegacin. En su lugar, NavigationService crea

    una nueva instancia del objeto de contenido cada vez que se navega en l mediante el

    historial de navegacin. Este comportamiento est diseado para evitar un consumo

    de memoria excesivo cuando se navegue a muchas partes del contenido y a grandes

    partes del mismo. Por consiguiente, el estado del contenido no se recuerda de una

    navegacin a la siguiente.

    A. Mtodos del NavigationService.

    A continuacin listaremos algunos de los mtodos de navegacin:

    Mtodo Descripcin

    GoBack Navega hasta la entrada ms reciente del historial de

    retroceso de navegacin, si lo hay.

    GoForward Navegue hasta la entrada ms reciente del historial de

    avance de navegacin, si lo hay.

    Navigate(Uri) Navegue asincrnicamente a un contenido especificado por

    un uniform resource identifier (URI).

    Navigate(Uri,

    Object, Boolean)

    Navegue asincrnicamente al contenido de origen situado

    en un uniform resource identifier (URI), pase un objeto que

    contenga el estado de navegacin de procesamiento

    durante la navegacin e incluya el contenido en el recinto.

    RemoveBackEntry Quita la entrada ms reciente del diario del historial de

    retroceso de navegacin.

    B. 1.3.2 Propiedades del NavigationService.

    A continuacin, listaremos las propiedades de navegacin:

    Mtodo Descripcin

    CanGoBack Obtiene un valor que indica si hay al menos una entrada en el

    historial de retroceso de navegacin.

    CanGoForward Obtiene un valor que indica si hay al menos una entrada en el

    historial de avance de navegacin.

    CurrentSource Obtiene o establece una referencia al objeto que contiene el

  • 60

    CARRERAS PROFESIONALES CIBERTEC

    contenido actual.

    Source Obtiene o establece el uniform resource identifier (URI) del

    contenido actual o el URI del nuevo contenido al que se navega

    actualmente.

    1.3.2 MANEJO DE ESTADOS

    Para pasar datos entre dos pginas, debemos especificar los parmetros y sus valores

    en la URI (QueryString). Esta es, probablemente, la forma ms fcil de pasar datos de

    una pgina a otra durante la navegacin.

    Para pasar los parmetros y valores de una pgina a otra que necesita iniciar debe

    aadir el signo de interrogacin (?) y luego especificar el parmetro junto con su valor.

    Utilice Uri.EscapeUriString para evitar excepciones formato durante la

    navegacin.

    Para especificar mltiples parmetros utilice el carcter &.

    NavigationService.Navigate(

    new Uri("/DestinationPage.xaml?parameter1=v1", UriKind.Relative) );

    // O tambin

    NavigationService.Navigate(

    new Uri(string.Format("/DestinationPage.xaml?parameter1={0}",

    Uri.EscapeUriString(stringParameterValue), UriKind.Relative)));

    NavigationService.Navigate(

    new Uri("/DestinPage.xaml?param1=v1&param2=v2",UriKind.Relative));

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 6 1

    CIBERTEC CARRERAS PROFESIONALES

    1.3.2.1 Recuperar el paso de valores

    Despus de pasar los valores a la pgina de destino, se puede obtener dichos valores

    utilizando NavigationContext y la cadena de consulta. Por lo general, puedo

    implementar este proceso dentro del mtodo OnNavigatedTo. Se puede obtener slo

    los objetos de cadena de consulta, lo que significa que si ha pasado un nmero entero

    como valor, tiene que convertir el valor, la cual se enva como cadena de caracteres, a

    tipo entero.

    Tenga en cuenta que la clase Page define una propiedad NavigationContext de

    tipo NavigationContext, que contiene una propiedad QueryString de tipo

    IDictionary . Utilizando la propiedad QueryString podemos

    recuperar los datos pasados de la pgina 1.

    En este caso, tan pronto como nos aseguramos que recuperamos los datos

    necesarios, le asignamos los valores recuperados a la propiedad Text del control

    TexBox. Por ltimo, activar la clase base OnNavigatedTo mtodo para asegurar el

    funcionamiento normal de la clase base.

    protected override void OnNavigatedTo(NavigationEventArgs e){

    string myParameterValue =

    NavigationContext.QueryString["parameter1"];

    base.OnNavigatedTo(e);

    }

    protected override void OnNavigatedTo(NavigationEventArgs e) {

    string value = string.Empty;

    IDictionary querySt = NavigationContext.QueryString;

    querySt.TryGetValue("InputText", out value);

    if (value != null) {

    txtPage2.Text = value;

    }

    base.OnNavigatedTo(e);

    }

  • 62

    CARRERAS PROFESIONALES CIBERTEC

    LABORATORIO 3.1

    Proyecto Windows Phone para Navegar entre Pginas

    Implemente una aplicacin Windows Phone para crear una barra de aplicaciones en

    nuestra Pgina Principal para navegar entre diversas pginas.

    1. Inicio del Proyecto

    Seleccione la opcin Create New Project

    Desde el IDE New Project, seleccione la plantilla (Template) Visual C#.

    Seleccione la aplicacin Windows Phone Applicatioin, tal como se muestra.

    Asigne un nombre al proyecto, luego presione el botn OK.

    Seleccione el tipo de Page

    Asigne el nombre a la Pgina, presione el botn Add

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 6 3

    CIBERTEC CARRERAS PROFESIONALES

    2. Diseo

    Antes de iniciar el proceso, agregue algunos

    archivos de imgenes de extensin .png:

    calculador.png, internet.png, reproductor.png.

    Agregue un control Image a la pgina, tal como se muestra, en la ventana de

    propiedades del control. Asigne, en la propiedad Source, el archivo Cibertec.jpg, tal

    como se muestra.

    Propiedad Source del control Image

  • 64

    CARRERAS PROFESIONALES CIBERTEC

    3. Programacin

    Defina el nameSpace Microsoft.Phone.Shell, as como el objeto ApplicationBar

    llamado Bar, tal como se muestra.

    Definiendo el mtodo a los botones, llamados botn_Click, donde al clickear un botn

    de la barra de aplicaciones, navegamos al Page indicado.

    NameSpace Microsoft.Phone.Shell

    Definir a Bar de tipo ApplicationBar

    El mtodo botn_Click, ejecuta el proceso de los botones de la barra de aplicaciones

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 6 5

    CIBERTEC CARRERAS PROFESIONALES

    En el constructor, definiremos las propiedades del Bar (ApplicationBar), adems

    agregamos tres button, definiendo la propiedad image, as como la propiedad text, tal

    como se muestra:

    Presione F5 para ejecutar y verifique que cada botn muestre su mensaje.

    Enlazar el evento de cada botn al mtodo botn_Click tal como se muestra

    Instanciar el objeto Bar y asignarle algunas propiedades

    Agregar los buttons b1, b2 y b3 a Bar

    Asignar al Application bar del Page el objeto Bar

    Definir 3 buttons de tipo ApplicationBar

  • 66

    CARRERAS PROFESIONALES CIBERTEC

    LABORATORIO 3.2

    Pasando valores entre Pginas de una Aplicacin Phone

    Implementa una aplicacin Windows Phone para navegar entre las pginas de una

    aplicacin Phone

    1. Inicio del Proyecto

    Para iniciar un proyecto Windows Phone:

    Seleccione la opcin Create New Project.

    Desde el IDE New Project, seleccione la plantilla (Template) Visual C#, el cual

    listara un conjunto de proyectos

    Seleccione la aplicacin Windows Phone Applicatioin, tal como se muestra.

    Asigne un nombre al proyecto, luego presione el botn OK para grabar el proyecto

    Seleccione la opcin New Project para crear un nuevo proyecto

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 6 7

    CIBERTEC CARRERAS PROFESIONALES

    Diseo.

    Disea la pgina MainPage para dar la bienvenida al usuario, dibuje la pgina tal como

    se muestra:

    Seleccione la plantilla Windows Phone en Visual C#

    Asigne nombre al proyecto

    Control TextBlock, propiedad Text: Bienvenido

    Control Image, propiedad Name: imgPrincipal

    Control HyperLinkButton, propiedad Content: Continuar

  • 68

    CARRERAS PROFESIONALES CIBERTEC

    Programacin

    Selecciona el evento Click del control HyperlinkButton, tal como se detalla:

    Selecciona una imagen en la propiedad Source, la imagen asignada al control

    Seleccione el evento Click, hacer doble click sobre el evento

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 6 9

    CIBERTEC CARRERAS PROFESIONALES

    Programe el evento Click del control HyperLinkButton. Seleccione desde la ficha

    Eventos, el evento llamado Click, hacer doble click al evento.

    Diseo de Acceso.xaml

    A continuacin, disee la pgina Acceso.xaml que permita el ingreso de un usuario a

    la aplicacin. Dibuje la pgina tal como se muestra:

    En el constructor definir la orientacin de la pgina.

    Definir el servicio de navegacin, hacia la pagina Acceso.xaml, definiendo la ruta Relativa

    Cambiar la propiedad a PortraitorLandscape

  • 70

    CARRERAS PROFESIONALES CIBERTEC

    Aadiendo Controles: A continuacin, disea los controles de la pgina,

    configurando las propiedades de cada control.

    En la propiedad Items, agregue los Items del ListBox:

    Microsoft

    Cibertec

    UPC

    Luego, presione el botn OK.

    Control TextBox: Name=txtUsuario

    Control PasswordBox: Name=pbClave

    Control ListBox: Name=lbEmpresa

    Control HyperLink: Content=Retornar

    Control HyperLink: Content=Aceptar

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 7 1

    CIBERTEC CARRERAS PROFESIONALES

    Programacin: Programe los eventos Click del HyperLinkButton1 e

    HyperLinkButton2

    Diseo de Seleccion.xaml

    A continuacin, disee la pgina Seleccion.xaml que permita el ingreso de un usuario

    a la aplicacin. Dibuje la pgina tal como se muestra:

    Direccionando hacia la pgina Seleccin.xaml enviando parmetros nombre y empresa

    Direccionando hacia la pgina anterior

    Control TextBlock: name=lblUsuario

    Control TextBlock: name=lblEmpresa

    Control Image: name=imgEmpresa

    Control HyperLink: content=Retornar

  • 72

    CARRERAS PROFESIONALES CIBERTEC

    Programando el evento Loaded del PhoneApplication, seleccione desde la lista de

    eventos de la ventana de propiedades, el evento Loaded, tal como se muestra.

    Programacin

    Al cargar la pgina, recuperamos los valores del QueryString, tal como se muestra, y

    visualizamos los datos.

    Presione la tecla F5 para ejecutar.

    Recupero los valores enviados por la cadena de consulta

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 7 3

    CIBERTEC CARRERAS PROFESIONALES

    Resumen

    Hay varias formas de navegar entre pginas, pero vamos a enfocarnos en una a la

    que se va a llamar Navegacin Simple de Web. Navegaremos entre pginas de

    igual manera como si fuesen pginas de HTML.

    Si queremos ir de la primera a la segunda, podemos hacer uso de un control

    HyperlinkButton. Este permite realizar la navegacin entre dos pginas. Para

    establecer el vnculo entre pginas a travs del control HyperlinkButton, se puede

    hacer usando slo XAML

    Se puede navegar entre pginas utilizando cdigo en vez de usar slo XAML,

    pueden usar cualquier elemento XAML que se prefiera. En este ejemplo, vamos a

    crear tres botones y cada uno apunta al mismo controlador de eventos. En el

    cdigo C# siguiente, vern que se averigua cul botn ha sido pulsado y luego se

    va a la pgina apropiada.

    El servicio de navegacin que se devuelve de la propiedad NavigationService es la

    instancia de la clase NavigationService administrada por el primer navegador en el

    rbol visual. Si no se encuentra ninguna, se devuelve null, lo que indica que el host

    de una pgina no admite la navegacin

    De forma predeterminada, NavigationService no almacena ninguna instancia de un

    objeto de contenido en el historial de navegacin. En su lugar, NavigationService

    crea una nueva instancia del objeto de contenido cada vez que se navega a l

    mediante el historial de navegacin. Este comportamiento est diseado para

    evitar un consumo de memoria excesivo cuando se navegue a muchas partes del

    contenido y a grandes partes del mismo.

    Para pasar datos entre dos pginas, debemos especificar los parmetros y sus

    valores en la URI (QueryString) es probablemente la forma ms fcil de pasar

    datos de una pgina a otra durante la navegacin.

    Para ello aadir ("?") signo de interrogacin para el final y luego especifique el

    parmetro par = valor (Cdigo de verificacin abajo). Utilice Uri.EscapeUriString

    para evitar excepciones formato durante la navegacin.

    Despus de pasar los valores a la pgina de destino que se puede obtener

    utilizando NavigationContext y la cadena de consulta. Por lo general, se puede

    implementar este proceso dentro del mtodo OnNavigatedTo

  • 74

    CARRERAS PROFESIONALES CIBERTEC

    Si desea saber ms acerca de estos temas, puede consultar las siguientes

    pginas:

    Navegacin entre pginas

    http://maromasdigitales.net/2010/12/31-dias-de-windows-phone-dia-2-

    avegacion-entre-pginas/

    Clase NavigateService

    http://msdn.microsoft.com/es-

    es/library/system.windows.controls.page.navigationservice.aspx

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 7 5

    CIBERTEC CARRERAS PROFESIONALES

    ACCESO A DATOS POR WINDOWS PHONE 7

    LOGRO DE LA UNIDAD DE APRENDIZAJE

    Al trmino de la unidad, el alumno desarrolla procesos que permitan acceder a los datos desde un servidor remoto consumiendo servicios para consultar los datos y almacenarlos en un equipo del usuario.

    TEMARIO

    2.1 Tema 3 : Almacenamiento Local: IsolatedStoraged 2.1.1. : Almacenamiento de datos en WP7 2.1.2. : Laboratorio

    2.2 Tema 4 : Acceso a datos en Archivos XML 2.2.1. : Acerca de XML 2.2.2. : Manejo de datos en XML en aplicacin Phone 2.2.3. : Controles enlazados a los datos

    2.2 Tema 5 : Windows Communication Foundation 2.3.1. : WCF, Arquitectura 2.3.2. : Caractersticas del WCF 2.3.3. : Windows Phone y WCF

    ACTIVIDADES PROPUESTAS

    Los alumnos implementarn una aplicacin Mobile para el manejo archivos en el equipo local

    Los alumnos aprendern a definir y consumir servicios implementos por WCF y ejecutados en una aplicacin mobile.

    Los alumnos aprendern a consultar datos consumiendo servicios, desarrollados en WCF y ejecutados en una aplicacin mobile.

    UNIDAD DE

    APRENDIZAJE

    2

  • 76

    CARRERAS PROFESIONALES CIBERTEC

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 7 7

    CIBERTEC CARRERAS PROFESIONALES

    2.1 ALMACENAMIENTO DE DATOS EN WP7

    La programacin de aplicaciones para Windows Phone tiene un defecto importante en

    lo que se refiere a almacenamiento de datos. En esta plataforma, no existe una Base

    de Datos interna del telfono donde podamos guardar y acceder a los datos de

    nuestra aplicacin. No se sabe si en un futuro esto cambiar, pero de momento

    Microsoft sigue con la idea de almacenamiento en la nube. Es decir, la filosofa de

    Windows Phone es utilizar Internet para guardar todos los datos. No es una mala

    teora, porque los datos estaran a salvo de problemas con el dispositivo y seran

    accesibles siempre.

    Existen diferentes opciones para almacenar datos. Bsicamente son dos: Isolated

    Storage o almacenamiento en local y almacenamiento en Base de Datos en la nube.

    En este captulo, nos centraremos en el almacenamiento con Isolated Storage.

    2.1.1 ALMACENAMIENTO LOCAL: ISOLATEDSTORAGE

    Windows Phone 7 dispone de un almacenamiento, denominado Isolated Storage por

    aplicacin, que tiene las siguientes caractersticas:

    Isolated Storage es un almacenamiento totalmente aislado de cualquier otra

    aplicacin. Los programas son ejecutados en una especie de SandBox, en la cual

    no disponen de acceso a ningn recurso de cualquier otra aplicacin.

    Se dispone de un almacenamiento especial, el cual si puede ser compartido y

    accesible por cualquier aplicativo, es el MediaLibrary.

    Cada aplicacin dispone de todo el espacio disponible para para almacenamiento

    del dispositivo en cada momento. Es decir, no tenemos un espacio reservado. Hay

    que tener en cuenta que no sabremos nunca donde se guarda la informacin,

    pues en dispositivos con tarjetas MicroSD de memoria externa, no es posible

    determinar si la informacin est guardada en la memoria interna del propio

    telfono o en la tarjeta MicroSD. Esto se debe a que el sistema junta ambos

    espacios formando una especie de Raid 0, sin distinguir, para el usuario, uno de

    otro.

  • 78

    CARRERAS PROFESIONALES CIBERTEC

    Con todas esas consideraciones iniciales, vamos a explicar cmo funciona, cmo se

    almacena y cmo se lee este espacio.

    El almacenamiento de datos con Isolated Storage, o almacenamiento local, es una

    forma de guardar los datos en archivos locales que se usa desde Silverlight 2. Se

    llama almacenamiento aislado porque solo nuestra aplicacin tiene acceso a sus

    archivos. No es posible compartir datos entre dos aplicaciones con este sistema.

    2.1.1.1 Utilizando IsolatedStorageSettings

    La clase IsolatedStorageSettings se utiliza principalmente cuando guardamos los

    datos de la configuracin de nuestra aplicacin.

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 7 9

    CIBERTEC CARRERAS PROFESIONALES

    Por qu guardar la configuracin? Esta clase est preparada y diseada para

    guardar esta informacin debido a que nos proporciona un IDictionary de tipo clave-

    valor, Dictionary(Of TKey, TValue), llamado Application Settings el cual

    automticamente busca el espacio de almacenamiento e interacciona con l. Eso nos

    facilita mucho la labor de guardar y leer datos simples.

    Por ejemplo, vamos a crear una clase con dos mtodos para leer y grabar la

    configuracin de nuestra aplicacin.

    De esta manera tan sencilla estamos grabando y leyendo cadenas de texto en nuestro

    almacn local. Obviamente, esto es ejemplo simple para que se entienda el

    funcionamiento. Para realizar algo ms eficaz deberamos de poder guardar cualquier

    cosa como un valor dentro de nuestro diccionario, para ello modificamos la clase para

    dejarla de la siguiente forma:

    public class Configuracion{

    public static string Leer(string k){

    string rs = "";

    if IsolatedStorageSettings.ApplicationSettings.Contains(k))

    {

    rs=IsolatedStorageSettings.ApplicationSettings[k].ToString();

    }

    return rs;

    }

    public static void Grabar(string clave, string valor){

    IsolatedStorageSettings.ApplicationSettings[k] = valor;

    }

    }

    public class Configuracion{

    public static T Leer(string k){

    T rs = default(T);

    if (IsolatedStorageSettings.ApplicationSettings.Contains(k)){

    rs = (T)IsolatedStorageSettings.ApplicationSettings[k];

    }

    return rs;

    }

    public static void Grabar(string k, T valor){

    if (IsolatedStorageSettings.ApplicationSettings.Contains(k)){

    IsolatedStorageSettings.ApplicationSettings[k] = valor;

    }

    else{

    IsolatedStorageSettings.ApplicationSettings.Add(k, valor);

    }

    IsolatedStorageSettings.ApplicationSettings.Save();

    }

    }

  • 80

    CARRERAS PROFESIONALES CIBERTEC

    En algunas ocasiones, en el mtodo de grabacin se debe de indicar el mtodo Save

    del IDictionary. Esto puede resultar un tanto extrao ya que la clase

    IsolatedStorageSettings implcitamente ya guarda la informacin del diccionario en el

    momento de asignar un valor, pero debemos de remarcar la grabacin ya que es el

    nico momento en donde nos puede sorprender con una excepcin de la clase

    IsolatedStorageException, normalmente por espacio insuficiente.

    La clase IsolatedStorageSettings no es ms que una clase especial que deriva de

    IsolatedStorageFile. Si nos vamos un poco ms all, podemos decir que la estructura

    del almacenamiento de nuestro WP7 es \Aplications\Data\(ID

    Aplicacin)\Data\IsolatedStore en donde Id Aplicacin es el SandBox de

    nuestra propio programa, siendo en este caso C4EFD08D-D2A8-4595-966F-

    435E7722E9DF.

    2.1.1.2 Clase IsolatedStorage

    El espacio de nombres System.IO.IsolatedStorage contiene tipos para crear y

    utilizar un sistema de archivos virtual. El almacenamiento aislado proporciona un

    almacenamiento seguro en el cliente para las aplicaciones de confianza parcial. En

    Silverlight, todas las operaciones de E/S estn restringidas al almacenamiento aislado

    y no usan el sistema de archivos del sistema operativo.

  • DE S ARR O L L O DE AP L IC AC I ONE S M V I LE S I I 8 1

    CIBERTEC CARRERAS PROFESIONALES

    Clase Descripcin

    IsolatedStorageException Excepcin que se produce cuando una operacin del

    almacenamiento aislado produce un error.

    IsolatedStorageFile Representa un rea de almacenamiento aislado que

    contiene archivos y directorios.

    IsolatedStorageFileStream Expone un archivo dentro del almacenamiento

    aislado.

    IsolatedStorageSettings Proporciona un objeto Dictionary

    que almacena los pares clave-valor en

    almacenamiento aislado.

    2.1.1.3 Clase IsolatedStorageFile

    Esta clase abstrae el sistema de archivos virtual para el almacenamiento aislado. Un

    objeto IsolatedStorageFile se corresponde con un mbito de almacenamiento aislado

    especfico, donde se encuentran los archivos representados por los objetos

    IsolatedStorageFileStream. Las aplicaciones pueden utilizar el almacenamiento

    aislado para guardar datos en su propia parte aislada del sistema de archivos, sin

    tener que especificar una ruta de acceso concreta dentro del sistema de archivos.

    La raz del sistema de archivos virtual se encuentra en una carpeta de usuario en el

    sistema de archivos fsico. Cada identificador nico es proporcionado por el host y se

    asigna a una raz distinta, por lo que cada aplicacin dispone de su propio sistema de

    archivos virtual. Una aplicacin no puede salir de su propio sistema de archivos para

    navegar a otro.

    A. Mtodos del IsolatedStoraged.

    A continuacin listaremos los mtodos de la clase IsolatedStorageFile:

    Mtodo Descripcin

    CopyFile(String, String) Copia un archivo existente en un archivo nuevo.

    CreateDirectory Copia un archivo existente en un archivo nuevo y,

    opcionalmente, sobrescribe el archivo existente.

  • 82

    CARRERAS PROFESIONALES CIBERTEC

    CreateFile Crea un archivo en el almacn aislado.

    DeleteDirectory Elimina un directorio del mbito de

    almacenamiento aislado.

    DeleteFile Elimina un archivo del almacn aislado.

    DirectoryExists Determina si la ruta de acceso especificada hace

    referencia a un directorio existente en el almacn

    aislado.

    FileExists Determina si la ruta de acceso especificada hace

    referencia a un archivo existente en el almacn

    aislado.

    GetDirecto