Post on 23-Feb-2016
description
Datos, Servicios y Live TilesJose Antonio Gallego
Jefe de proyectos
Eduardo OrtegaMVP Device Application
Development
Windows Phone 7.5Isolated Storage
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
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); } }
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); }
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.
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
Demo
Windows Phone 7.5Isolated Storage
Windows Phone 7.5Sql Server Compact Edition
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
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
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
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
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
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
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);
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
Demo
Windows Phone 7.5SQL Server Compact Edition
Windows Phone 7.5Live 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
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
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
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
DEMOWindows Phone 7.5Live Tiles
Windows Phone 7.5Notificaciones Push
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
Notificaciones Push
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
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ó
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
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
Notificaciones Tile Partes de una notificación Tile
Notificaciones Raw Envían información a la aplicación Si ésta no se está ejecutando, la
notificación se descarta
Demo
Windows Phone 7.5Notificaciones Push
Q&A
GRACIASwww.micmovilidad.esJose Antonio Gallego http://geeks.ms/blogs/jagallego @lmovilero www.fiveflamesmobile.com
Eduardo Ortega http://geeks.ms/blogs/eduardoortega www.mobilenug.es