El documento describe la arquitectura de almacenamiento y acceso a datos en Windows Phone, incluyendo el uso de IsolatedStorage para almacenar datos y archivos de forma aislada por aplicación, y LINQ to SQL para mapear una base de datos local a objetos y realizar operaciones mediante LINQ. También explica cómo crear y utilizar una base de datos local con LINQ to SQL para insertar, seleccionar y modificar datos.
Arquitectura de almacenamiento y acceso a datos en Windows Phone
1. 12/09/2011
Arquitectura
WindowsPhone 7.0
Aplicación Almacenamiento
aislado
IsolatedStorageSettings
(System.IO.IsolatedStorage)
nombre/valor
nombre/valor
IsolatedStorageFile
ficheros y directorios
(System.IO.IsolatedStorage)
ficheros y directorios
Arquitectura Arquitectura
¿Qué podemos almacenar en el IsolatedStorage? Windows Phone Mango
Pares de datos nombre – valor Almacenamiento
Aplicación
Parámetros de configuración … aislado
IsolatedStorageSettings
Ficheros
Archivos XML, objetos serializados … (System.IO.IsolatedStorage)
nombre/valor
IsolatedStorageFile
En Windows Phone Mango reaparece el concepto de
(System.IO.IsolatedStorage)
base de datos ficheros y directorios
DataContext
(System.Data.Linq) LINQ to SQL
base de datos local
1
2. 12/09/2011
Arquitectura LINQ to SQL
El acceso a datos se realiza mediante LINQ to SQL LINQ es una implementación de Object Relational
Mapping
Mapea objetos relacionales en un modelo orientado a objetos
Almacenamiento para trabajar con datos
Aplicación
aislado
DataContext
LINQ to SQL
(System.Data.Linq)
base de datos local LINQ to SQL
Comparación con la versión de
LINQ to SQL
escritorio
LINQ permite realizar operaciones con objetos que
después se persisten en la base de datos. SQL Server Windows Phone
La aplicación utiliza LINQ para manejar los datos.
LINQ to SQL lo traduce a T-SQL para que se pueda ejecutar Lugar de
Servicio en background Proceso de aplicación
en la base de datos ejecución
Acceso a la Sólo la aplicación que
Cualquier aplicación
base de datos la utiliza
Base
Aplicación LINQ to SQL de
datos Consultas T-SQL LINQ to SQL
2
3. 12/09/2011
DataContext Cadenas de conexión
LINQ permite realizar operaciones en la base de Especifica parámetros de configuración de la base de
datos a través de un objeto DataContext asociado. datos
El objeto principal es DataContext
Representa la base de datos mediante entidades Parámetro Descripción
LINQ to SQL mapea una base de datos en un modelo de
objetos
datasource Ruta del archivo de la base de datos local
Base de datos DataContext
Tabla clase del DataContext
Contraseña de la base de datos.
Columna propiedad de la clase Password
Encripta la base de datos al crearla.
Relación propiedad de la clase
La estructura de la base de datos se define en el objeto Mode Read Write, Read Only, Exclusive, Share Read
DataContext mediante atributos de mapeo
Crear la base de datos Utilizar la base de datos
Una vez creado el objeto DataContext y conocida la Seleccionar datos
cadena de conexión…
// Define la consulta para obtener todos los elementos ToDo
// Crea la base de datos si todavía no existe. var toDoItemsInDB = from ToDoItem todo in toDoDB.ToDoItems
using (ToDoDataContext db = new ToDoDataContext("isostore:/ToDo.sdf")) select todo;
{
if (db.DatabaseExists() == false) // Ejecuta la consulta y añade el resultado a la colección.
Indica que el ToDoItems = new ObservableCollection<ToDoItem>(toDoItemsInDB);
{
archivo de la base
// Crea la base de datos. de datos está en el
db.CreateDatabase(); almacenamiento
} aislado
}
3
4. 12/09/2011
Utilizar la base de datos
Insertar datos
// Crea un nuevo elemento to-do
ToDoItem newToDo = new ToDoItem {ItemName = "nuevo"};
Se añade el nuevo
elemento a la
// Añade el elemento to-do a la colección. colección DEMO
ToDoItems.Add(newToDo);
Se inserta el
// Añade el elemento to-do a la base de datos local. elemento
db.ToDoItems.InsertOnSubmit(newToDo);
Hasta que no se realiza la
// Guarda los cambios en la base de datos. llamada a SubmitChanges()
no se insertan los datos en
db.SubmitChanges();
la BD
Recursos
Centro de desarrollo de WP7 en MSDN
http://msdn.microsoft.com/es-es/windowsphone/default.aspx
AppHub
http://create.msdn.com/
Windows Phone Developer Blog
http://windowsteamblog.com/windows_phone/b/wpdev
MobileNUG
http://www.mobilenug.es
Forums
http://forums.create.msdn.com/forums/
4