jueves, agosto 23, 2012

Caché de Base de Datos Local en .Net (Occasionally Connected Application)

Visual Studio 2008 y .Net Framework 3.5 soportan un nuevo paradigma de conexión a base de datos conocido como Occasionally Connected Application (Aplicación Conectada Ocasionalmente), donde las aplicaciones cliente pueden aprovechar el poder de una base de datos Compact SQL Server 3.5 local para almacenar en caché los datos requeridos, en lugar de acceder a la base de datos principal en un equipo remoto cada vez que necesitan. Esto puede mejorar enormemente el rendimiento y la escalabilidad de las aplicaciones del cliente.

Ejemplo:

1. Crear un nuevo proyecto de tipo WPF.

2. Añadir al proyecto un nuevo elemento de tipo Caché de base de datos local.




3. Configurar la conexión al servidor, al cliente (lo que pone por defecto nos servirá) y seleccionar las tablar a sincronizar.


4. Configurar el origen de datos. En nuestro caso usaremos Entity Framework.

* NOTA: En el punto 3 se crear automáticamente la conexión con la base de datos del servidor (ServerXXXConnectionString) y la conexión con la local (ClientXXXConnectionString). Utilizaremos la local.

5. Añadir un DataGrid (con AutogenerateColumns="True") y un botón a la ventana principal. En manajedor del click del botón añadir el código siguiente:


                var ctx = new ClientBDDCtx();
                this.dataGrid1.ItemsSource = ctx.Employees;


Esto rellenará el grid con los datos de la BDD local, sincronizados con la del servidor cuando se creó la caché de base de datos local (puntos 2 y 3).


Podemos desconectar el cable de red para comprobar que efectivamente al clicar el botón sigue rellenándose el grid.

6. Si hacemos modificaciones en la base de datos del servidor estas no se reflejan automáticamente en el cliente. Para sincronizar los cambios tendremos que añadir el código siguiente:


                var s = new LocalDataCache1SyncAgent();
                s.Synchronize();



Para más información:


1 comentario: