Sunteți pe pagina 1din 17

UNIVERSIDAD TECNOLGICA

INDOAMRICA

PEPE XAVIER BOURGEAT FLORES

CONSULTA DE DISPOSITIVOS MVILES

DCIMO SEMESTRE

ING. CLAY ALDAS

FEBRERO 2012

DISPOSITIVOS MVILES

Pepe X. Bourgeat F.

Crear Bases de datos Locales en Windows Phone 7.5

Es necesario indicar que los motores de bases de datos que podemos utilizar locales en
Windows Phone 7.5 son:

Microsoft SQL Server Mobile (Algunos lo siguen llamando Compact Edition)


SQLite

Debemos crear un contexto de datos (DataContext) para poder tener acceso a la base de
datos local en Windows Phone 7.5 conocido tambin como Windows Phone Mango, aqu
es necesario aclarar, que no podemos utilizar ADO.NET de manera directa para este acceso
a la base de datos local en el dispositivo.

Por la razn anterior debemos crear un contexto de datos de la base de datos a utilizar en
nuestro desarrollo para Windows Phone 7.5, este DataContext, no es ms que una clase en
uno de los lenguajes de la plataforma .NET (VB.NET o C#), en la cual se encuentran
mtodos que permiten las operaciones CRUD, clases de tipo entidad que representan un
registro de cada una de las tablas, clases de tipo coleccin que representan la tabla o un
conjunto de registros de la tabla.

DISPOSITIVOS MVILES

Pepe X. Bourgeat F.

Para muchos de los que venimos del mundo de Windows Mobile, desarrollo ASP.NET o
Windows Forms es un cambio brusco, ya que estbamos acostumbrados a tener todo
controlado desde ADO.NET.
La razn principal de la reflexin anterior es que al no tener el manejo de las operaciones
de la base de datos a travs de ADO.NET las cosas como que se nos complican. Sin
embargo, el manejo de las operaciones de la base de datos locales en Windows Phone 7.5
se realiza a travs de LinQ y un DataContext, este DataContext es el que vamos a aprender
a construir en este post.
Algo que debemos tener claro es que nuestra base de datos local de SQL Server Mobile se
almacena en el almacenamiento privado del dispositivo, esto es lo que conocemos como
Isolated Storage.

En la imagen anterior podemos observar como se almacena nuestra base de datos en el


Isolated Storage y que a travs de LINQ to SQL nos comunicamos con ella utilizando el
DataContext desde nuestra aplicacin de Windows Phone 7.5.

La clase DataContext
Esta es una clase que contiene de todas las operaciones CRUD (Create, Read, Update,
Delete) basada en la base de datos para realizar operaciones sobre la Base de Datos. En la
cual utilizando LINQ to SQL accedemos a todas las operaciones que necesitemos realizar
sobre la base de datos.

DISPOSITIVOS MVILES

Pepe X. Bourgeat F.

Muy bien, ya teniendo claro todo lo anterior, lo primero que debemos hacer es definir el
modelo de datos en nuestra base de datos SQL Mobile, para esto vamos a utilizar SQL
Server Management Studio para crear la base de datos y la estructura de las tablas de
nuestra base de datos.
Si se preguntan si podemos utilizar Entity Framework 4.1 para realizar esta operacin, la
respuesta es SI, lo importante es definir el modelo de nuestro repositorio de datos y generar
el archivo .SDF de la base de datos SQL Server Mobile.

Ahora vamos a mostrar cmo crear una base de datos desde el SQL Server Management
Studio, al iniciar esta aplicacin nos vamos a encontrar con la siguiente pantalla:

En el tipo de Servidor vamos a abrir la lista de seleccin y seleccionar SQL Server


Compact, con esto nos aseguramos crear la base de datos que podemos utilizar en
Windows Phone 7.5.

Al seleccionar el tipo de base de datos, seleccionamos en el archivo de la base de datos,


para crear nuestra base de datos SQL Server Compact:

DISPOSITIVOS MVILES

Pepe X. Bourgeat F.

Vamos a crear una nueva base de datos, entonces de la lista que nos muestra, que son las
bases de datos que hayamos utilizado, vamos a seleccionar la opcin <New Database>
para crear una nueva base de datos.

Esta accin nos abre una nueva pantalla en la cual podemos darle un nombre a nuestra base
de datos, colocarle un nombre, etc.

DISPOSITIVOS MVILES

Pepe X. Bourgeat F.

Como observamos podemos seleccionar la ruta y colocar el nombre de la base de datos


.SDF que vamos a crear, esto lo hacemos en el primer cuadro de texto de la ventana, en
donde dice Enter the new SQL Server Compact database filename, el botn que se
encuentra junto a la caja de texto con el texto Browse nos permite explorar el sistema
de archivos de nuestra PC para seleccionar la ruta que nosotros deseemos y colocar all la
base de datos.
Luego hay un Check que nos permite sobre escribir la base de datos si esta ya existe.
Tambin podemos escoger en este punto, el tipo idioma que va a manejar nuestra base de
datos.
Si deseamos que nuestra base de datos haga diferencia entre maysculas y minsculas
podemos seleccionar el Check de Case sensitive que aparece bajo el Collation que
hayamos seleccionado para nuestra base de datos.

La siguiente configuracin de creacin, es si deseamos asignarle una clave para poder


acceder a nuestra base de datos.

DISPOSITIVOS MVILES

Pepe X. Bourgeat F.

Tambin podemos seleccionar un mtodo de encriptacin de los datos para nuestra base de
datos, si no deseamos encriptar nuestra base de datos seleccionamos la opcin por defecto :
UNENCRYPTED.

Vamos a crear una BD que se llame DBWinPhone.sdf, con los parmetros por defecto,
como lo podemos apreciar en la imagen anterior.
DISPOSITIVOS MVILES

Pepe X. Bourgeat F.

Al presionar el botn de OK, nos muestra una ventana de confirmacin indicando que la
base de datos no tiene una clave de proteccin.

Seleccionamos el botn Yes para que nos muestre la pantalla para abrir nuestra base de
datos y empezar a disear y crear nuestras tablas.

En esta pantalla ya tenemos el botn de Connect con el cual abrimos y nos conectamos a
la base de datos.

Nos abre la ventana del SQL Server Management Studio y en el explorador de Objetos nos
muestra algo como la siguiente imagen:

DISPOSITIVOS MVILES

Pepe X. Bourgeat F.

Vamos a crear una nueva tabla para nuestra base de datos, para esto, damos clic derecho
sobre la carpeta de las tablas Tables, esto lo podemos apreciar en la siguiente imagen:

Al seleccionar la opcin New Table nos abre la pantalla de creacin de una nueva tabla
para nuestra base de datos:

DISPOSITIVOS MVILES

Pepe X. Bourgeat F.

En la caja de texto Name colocamos el nombre de nuestra tabla, el la parte inferior


vamos creando cada una de las columnas de nuestra base de datos.
En la caja de texto debajo de Column Name colocamos el nombre de las columnas, el
tipo de dato para el campo, la longitud si aplica y si acepta o no nulos.
Vamos a crear una tabla llamada Pais, con dos campos: Id de tipo auto numrico y el
campo Pais de tipo nvarchar (texto) para almacenar el nombre del pas.

DISPOSITIVOS MVILES

Pepe X. Bourgeat F.

En la imagen anterior podemos observar la estructura de la tabla Pais que creamos para
nuestra base de datos.
Al darle clic al botn de OK de la pantalla se graba la estructura de la tabla y se ve de la
siguiente forma en el SQl Server Management Studio:

DISPOSITIVOS MVILES

Pepe X. Bourgeat F.

Ya tenemos nuestra base de datos .SDF creada, ahora vamos a realizar el proceso de la
creacin de la clase que forma el DataContext para poder utilizarlo en nuestra aplicacin de
Windows Phone 7.5.

Para poder realizar el proceso necesitamos un programa que se instala con el SDK de
Windows Phone 7.5, este programa se llama SQLMetal.

Para ejecutarlo, vamos a abrir una ventana de comandos del sistema operativo, pero la
ventana de comandos a abrir es la que se encuentra en la seccin de Visual Studio 2010,
como lo podemos apreciar en la siguiente imagen:

DISPOSITIVOS MVILES

Pepe X. Bourgeat F.

Esto nos abre una ventana de comandos:

Ahora si podemos ejecutar el comando SQLMetal que nos permite generar la clase que
representa el DataContext para acceder a nuestra base de datos.

El comando a utilizar para generar nuestra clase es el siguiente:

SQLMETAL D:\Roberto\Projects\Silverlight\DBWinPhone.sdf
/code:D:\Roberto\Projects\Silverlight\DBWinPhone.cs
/language:csharp
DISPOSITIVOS MVILES

Pepe X. Bourgeat F.

/namespace:LocalDBDemo
/context:DBWinPhoneDataContext
/pluralize

1. El primer parmetro es la ruta y el nombre de la base de datos .SDF a la cual vamos


a generar el DataContext.
2. /code: representa la ruta y el nombre del archivo fsico en donde se va a generar el
DataContext.
3. /language: representa el lenguaje de programacin en el cual se va a generar la
clase.
4. /namespace: representa el NameSpace con el cual se va a generar el DataContext.
5. /context: representa el nombre que va a tener al clase del DataContext.
6. /pluralize: indica que se deben crear los objetos que representan las colecciones y
grupos de registros en el DataContext.
En nuestra ventana de comandos colocamos nuestra sentencia para ejecutarla:

Iniciando la ejecucin del comando:

DISPOSITIVOS MVILES

Pepe X. Bourgeat F.

Al terminar la generacin nos muestra lo siguiente:

Esto lo que hace es generarnos el archivo DBWinPhone.cs en la ruta especificada como lo


podemos apreciar en la siguiente imagen:

DISPOSITIVOS MVILES

Pepe X. Bourgeat F.

Al verificar la clase DataContext generada con el nombre DBWinPhone.cs podemos


observar lo siguiente en el cdigo:
#pragma warning disable 1591
//----------------------------------------------------------------------------// <auto-generated>
//
This code was generated by a tool.
//
Runtime Version:4.0.30319.239
//
//
Changes to this file may cause incorrect behavior and will be lost
if
//
the code is regenerated.
// </auto-generated>
//----------------------------------------------------------------------------namespace LocalDBDemo
{
using System.Data.Linq;
using System.Data.Linq.Mapping;
using System.Data;
using System.Collections.Generic;
using System.Reflection;
using System.Linq;
using System.Linq.Expressions;
using System.ComponentModel;
using System;
[global::System.Data.Linq.Mapping.DatabaseAttribute(Name="DBWinPho
ne")]
public partial class DBWinPhoneDataContext :
System.Data.Linq.DataContext
{

DISPOSITIVOS MVILES

Pepe X. Bourgeat F.

private static System.Data.Linq.Mapping.MappingSource


mappingSource
= new AttributeMappingSource();

Como se observa en el cdigo el namespace es el mismo que colocamos en la sentencia de


la ventana de comandos, de igual manera podemos ver le nombre de la clase que tambin
corresponde al nombre utilizado en la sentencia.
Lo siguiente que debemos hacer con la clase DataContext generada es eliminar dos de los
cuatro constructores de la clase, si los dejamos, al compilar la clase en nuestro proyecto
vamos a tener errores pues estos constructores no son soportados por el espacio de nombres
System.Data.Linq.

public DBWinPhoneDataContext(string connection) :


mappingSource)
{
OnCreated();
}

base(connection,

public DBWinPhoneDataContext(System.Data.IDbConnection connection) :


base(connection, mappingSource)
{
OnCreated();
}
public DBWinPhoneDataContext(string connection,
System.Data.Linq.Mapping.MappingSource mappingSource) :
base(connection, mappingSource)
{
OnCreated();
}
public DBWinPhoneDataContext(System.Data.IDbConnection connection,
System.Data.Linq.Mapping.MappingSource mappingSource) :
base(connection, mappingSource)
{
OnCreated();
}

Los constructores sealados en color amarillo son los que deben eliminarse de la clase de
DataContext generada, al eliminarlos y compilar, los errores van a desaparecer.

Al finalizar, grabamos la clase y la adicionamos a nuestro proyecto de manejo de bases de


datos locales en Windows Phone 7.5.

DISPOSITIVOS MVILES

Pepe X. Bourgeat F.

S-ar putea să vă placă și