Top Banner
Datos, Servicios y Live Tiles Jose Antonio Gallego Jefe de proyectos Eduardo Ortega MVP Device Application Development
36

Datos , Servicios y Live Tiles

Feb 23, 2016

Download

Documents

caitir

Datos , Servicios y Live Tiles. Jose Antonio Gallego Jefe de proyectos Eduardo Ortega MVP Device Application Development. Windows Phone 7.5 Isolated Storage. Opciones de almacenamiento. Aplicación. Almacenamiento Aislado Pares clave/valor Archivos y carpetas Base de datos local. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Datos ,  Servicios  y Live Tiles

Datos, Servicios y Live TilesJose Antonio Gallego

Jefe de proyectos

Eduardo OrtegaMVP Device Application

Development

Page 2: Datos ,  Servicios  y Live Tiles

Windows Phone 7.5Isolated Storage

Page 3: Datos ,  Servicios  y Live Tiles

Opciones de almacenamientoDatos almacenados en:Settings: almacén de pares clave/valor usando la clase IsolatedStorageSettings

Archivos y carpetas: almacén de ficheros y carpetas utilizando la clase IsolatedStorageFile

Datos relacionales: almacén en base de datos usando LINQ to SQL

AplicaciónIsolatedStorageSetti

ngs(System.IO.IsolatedStora

ge)IsolatedStorageFile

(System.IO.IsolatedStorage)

DataContext(System.Data.Linq)

Almacenamiento Aislado

Pares clave/valor

Archivos y carpetas

Base de datos local

Linq to SQLruntime

Page 4: Datos ,  Servicios  y Live Tiles

Escribir en almacenamiento aislado

// Obtener el almacén virtual de la aplicaciónIsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication(); // Crear una nueva carpeta myStore.CreateDirectory("MiCarpeta"); // Especificar ruta y opciones para nuevo archivo using (var isoFileStream = new IsolatedStorageFileStream("MiCarpeta\\miArchivo.txt", FileMode.OpenOrCreate, myStore)) { // Escribir datos en el archivo using (var isoFileWriter = new StreamWriter(isoFileStream)) { isoFileWriter.WriteLine(txtWrite.Text); } }

Page 5: Datos ,  Servicios  y Live Tiles

Leer del almacenamiento aislado

// Obtener el almacén virtual de la aplicación IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication(); try { // Especificar el archivo del que leer y opciones de apertura del mismo using (var isoFileStream = new IsolatedStorageFileStream("MiCarpeta\\miArchivo.txt", FileMode.Open, myStore)) { // Lectura de datos del archivo

using (var isoFileReader = new StreamReader(isoFileStream)) { txtRead.Text = isoFileReader.ReadLine(); }

} } catch (Exception exc) { // Mostrar mensaje en caso de error MessageBox.Show("O Ocurrió un error al leer el fichero: " + exc.Message); }

Page 6: Datos ,  Servicios  y Live Tiles

Carpetas especiales

Ruta Uso Notas

Shared/transfersAlmacén para archivos utilizados en transferencias en Background

Carpeta creada durante la instalación de la aplicación. Puede ser eliminada.

Shared/ShellContent

Almacén para las imágenes de los Application Tiles.

Carpeta creada durante la instalación de la aplicación. Puede ser eliminada.

SharedAlmacena las carpetas Transfers, ShellContents y sus subcarpetas.

Carpeta creada durante la instalación de la aplicación. Puede ser eliminada.

Page 7: Datos ,  Servicios  y Live Tiles

Buenas prácticas Actualizar una App

• Almacenamiento aislado no varía en la actualización • Comprobar que la migración/transformación de datos es

correcta Desinstalar una App

• Elimina toda la carpeta de la App, incluido almacenamiento aislado

Quotas• Apps no restringidas a un límite de quota• Uso apropiado almacén en función de requisitos de la App

Objetos de IsolatedStorageSettings• Automáticamente guardados por el SO cuando el usuario

sale de la App

Page 8: Datos ,  Servicios  y Live Tiles

Demo

Windows Phone 7.5Isolated Storage

Page 9: Datos ,  Servicios  y Live Tiles

Windows Phone 7.5Sql Server Compact Edition

Page 10: Datos ,  Servicios  y Live Tiles

Arquitectura El acceso a datos se realiza mediante LINQ

to SQL

Aplicación

DataContext

(System.Data.Linq)

Almacenamiento aislado

base de datos local

LINQ to SQL

Page 11: Datos ,  Servicios  y Live Tiles

LINQ to SQL LINQ es una implementación de Object

Relational Mapping Mapea objetos relacionales en un modelo

orientado a objetos para trabajar con datos

ObjetosDatos

LINQ to SQL

Page 12: Datos ,  Servicios  y Live Tiles

LINQ to SQL LINQ permite realizar operaciones con

objetos que después se persisten en la base de datos.

La aplicación utiliza LINQ para manejar los datos.

LINQ to SQL lo traduce a T-SQL para que se pueda ejecutar en la base de datos

Base de

datos

Aplicación

LINQ to SQL

LINQ

LINQ

T-SQL

T-SQL

Page 13: Datos ,  Servicios  y Live Tiles

Comparación con la versión de escritorio

SQL Server Windows Phone

Lugar de ejecución

Servicio en background

Proceso de aplicación

Acceso a la base de datos

Cualquier aplicación Sólo la aplicación que la utiliza

Consultas T-SQL LINQ to SQL

Page 14: Datos ,  Servicios  y Live Tiles

DataContext LINQ permite realizar operaciones en la base de

datos a través de un objeto DataContext asociado. El objeto principal es DataContext

Representa la base de datos mediante entidades LINQ to SQL mapea una base de datos en un modelo de

objetos Base de datos DataContext Tabla clase del DataContext Columna propiedad de la clase Relación propiedad de la clase

La estructura de la base de datos se define en el objeto DataContext mediante atributos de mapeo

Page 15: Datos ,  Servicios  y Live Tiles

Crear la base de datos Una vez creado el objeto DataContext y

conocida la cadena de conexión…

// Crea la base de datos si todavía no existe.

using (ToDoDataContext db = new ToDoDataContext("isostore:/ToDo.sdf"))

{

if (db.DatabaseExists() == false)

{

// Crea la base de datos.

db.CreateDatabase();

}

}

Indica que el archivo de la base de datos

está en el almacenamient

o aislado

Page 16: Datos ,  Servicios  y Live Tiles

Utilizar la base de datos Seleccionar datos

// Define la consulta para obtener todos los elementos ToDo

var toDoItemsInDB = from ToDoItem todo in toDoDB.ToDoItems

select todo;

 

// Ejecuta la consulta y añade el resultado a la colección.

ToDoItems = new ObservableCollection<ToDoItem>(toDoItemsInDB);

Page 17: Datos ,  Servicios  y Live Tiles

Utilizar la base de datos Insertar datos

// Crea un nuevo elemento to-do

ToDoItem newToDo = new ToDoItem {ItemName = "nuevo"}; 

// Añade el elemento to-do a la colección.

ToDoItems.Add(newToDo);

// Añade el elemento to-do a la base de datos local.

db.ToDoItems.InsertOnSubmit(newToDo);  

// Guarda los cambios en la base de datos.

db.SubmitChanges();

Hasta que no se realiza la llamada a

SubmitChanges() no se insertan los datos en la

BD

Se añade el nuevo

elemento a la colección

Se inserta el elemento

Page 18: Datos ,  Servicios  y Live Tiles

Demo

Windows Phone 7.5SQL Server Compact Edition

Page 19: Datos ,  Servicios  y Live Tiles

Windows Phone 7.5Live Tiles

Page 20: Datos ,  Servicios  y Live Tiles

Windows Phone

Utilización de Live Tiles ¿Cómo se utilizan los Tiles?

Las APIs ShellTile permiten crear y eliminar Tiles secundarios, así como actualizar todos los Tiles

Pueden actualizarse mediante el servicio de notificaciones push de Microsoft

Las APIs ShellTileSchedule permiten actualizar un Tile de forma programada con información de un recurso remoto

La apariencia inicial del Tile de aplicación se establece en el Application Manifest de Windows Phone

Tiles secundarios• Crear

• Actualizar• Eliminar

Tile de aplicación• Actualizar

Page 21: Datos ,  Servicios  y Live Tiles

Utilización de Live Tiles Actualizar el Tile de aplicación

ShellTile TileToFind = ShellTile.ActiveTiles.First();StandardTileData NewTileData = new StandardTileData{

Title = “Titulo del tile”,BackgroundImage = new Uri(“miImg.jpg”,UriKind.Relative),Count = 1,BackTitle = “Título trasero”,BackBackgroundImage = new Uri(“imgDetras.jpg”, UriKind.Relative),BackContent = “Texto de la parte trasera”

};

TileToFind.Update(NewTileData);

El Tile de aplicación siempre es el primero de la lista de

Tiles activos

Se crea un nuevo Tile con los datos actualizados

Se actualiza el Tile de la aplicación con el que tiene

los datos actualizados

Page 22: Datos ,  Servicios  y Live Tiles

Utilización de Live Tiles Crear un Tile secundario

StandardTileData NewTileData = new StandardTileData{

BackgroundImage = new Uri(“imgTrasera.jpg", UriKind.Relative),Title = "Tile secundario“,Count = 12,BackTitle = “Parte trasera del Tile“,BackContent = “Bienvenido a la parte de atrás ”,BackBackgroundImage = new Uri(“fondoTrasera.jpg", UriKind.Relative)

};

ShellTile.Create(new Uri("/MiTileSecundaria.xaml?DefaultTitle=miTile", UriKind.Relative), NewTileData);

Se crea un Tile con la información

necesaria

URI de la Tile creada,

(incluyendo parámetros) e información

inicial

Page 23: Datos ,  Servicios  y Live Tiles

Utilización de Live Tiles Eliminar un Tile secundario

ShellTile TileToFind = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("DefaultTitle=miTile"));

if (TileToFind != null){TileToFind.Delete();

} Se busca el Tile a

eliminar

Se elimina el Tile

Page 24: Datos ,  Servicios  y Live Tiles

DEMOWindows Phone 7.5Live Tiles

Page 25: Datos ,  Servicios  y Live Tiles

Windows Phone 7.5Notificaciones Push

Page 26: Datos ,  Servicios  y Live Tiles

Notificaciones Push El servicio de notificaciones Push de

Microsoft proporciona un canal para enviar datos a una aplicación Windows Phone desde un servicio web

Hay 3 tipos de notificaciones Toast Tile Raw

Page 27: Datos ,  Servicios  y Live Tiles

Notificaciones Push

Page 28: Datos ,  Servicios  y Live Tiles

Limitaciones de uso 1 canal de notificaciones push por aplicación

Válido para cualquier tipo de notificación 30 canales de notificaciones push por dispositivo En notificaciones toast, se debe pedir permiso al

usuario para habilitar o deshabilitar la recepción de notificaciones

Las notificaciones push no deberían contener información personal

La recepción de notificaciones depende de la conexión y la configuración de la red

El tamaño máximo de carga es 1KB

Page 29: Datos ,  Servicios  y Live Tiles

Notificaciones Toast Parte superior de la pantalla

Duración: unos 10 segundos Se descarta con un flick hacia la derecha Al tocar la notificación, se lanza la aplicación

que la lanzó

Page 30: Datos ,  Servicios  y Live Tiles

Notificaciones Toast Partes de una notificación toast

Título(propiedad

Text1)

Subtítulo(propiedad

Text2)ParámetroSe pasa a la

aplicación si se acepta la

notificación.Pueden ser pares

nombre/valor, una página de la

aplicación…

(propiedad Param)

Icono de la

aplicación

Page 31: Datos ,  Servicios  y Live Tiles

Notificaciones Tile Pantalla de inicio de Windows Phone Tienen 2 partes: delantera y trasera

2 tipos Tile de la aplicación: aplicación anclada a Inicio Tile secundario: se crea con la interacción del usuario

Puede existir sin necesidad de un Tile de aplicación Ejemplos: mostrar el tiempo en distintas ciudades,

últimas noticias por tipos (deportes, cultura…), etc.

delante

1

detrás

Texto del tile

Page 32: Datos ,  Servicios  y Live Tiles

Notificaciones Tile Partes de una notificación Tile

Page 33: Datos ,  Servicios  y Live Tiles

Notificaciones Raw Envían información a la aplicación Si ésta no se está ejecutando, la

notificación se descarta

Page 34: Datos ,  Servicios  y Live Tiles

Demo

Windows Phone 7.5Notificaciones Push

Page 35: Datos ,  Servicios  y Live Tiles

Q&A

Page 36: Datos ,  Servicios  y Live Tiles

GRACIASwww.micmovilidad.esJose Antonio Gallego http://geeks.ms/blogs/jagallego @lmovilero www.fiveflamesmobile.com

Eduardo Ortega http://geeks.ms/blogs/eduardoortega www.mobilenug.es