José F. Romaniello

Las aventuras y desventuras de un codificador.

Hace poco tiempo desarrollé un cliente de sincronización basado en Microsoft Sync Framework. En unas pocas líneas:

Microsoft Sync Framework es una completa plataforma de sincronización que habilita la colaboración y el acceso sin conexión para las aplicaciones, servicios y dispositivos. Sync Framework ofrece las tecnologías y herramientas que habilitan la movilidad y el uso compartido de los datos, además de permitir poner los datos fuera de conexión. (...)
Actualmente, en lo que a bases de datos se refiere, el framework viene con una implementación para la parte del servidor basado en Sql Server y una de cliente Sql CE, pero permite ser extendido en este sentido a casi cualquier motor de base de datos, tanto en la parte cliente como en la parte servidora. En el proyecto que estaba trabajando Sql CE no era una opción, por lo cual vi la necesidad de implementar un cliente para Sqlite utilizando el proveedor de Ado.net System.Data.Sqlite. El proyecto esta publicado de forma open source. Puede ser descargado de la siguiente dirección: http://sourceforge.net/projects/sqliteclientsyn/. Para desarrollar y probar la librería me he basado en los ejemplos de Sync Guru. El cambio es bastante trivial:
  1. Quitar las referencias a System.Data.SqlServerCE y Microsoft.Synchronization.Data.SqlServerCe.
  2. Agregar las referencias a System.Data.Sqlite y SQLiteSync.
  3. Reemplazar todas las llamadas a clases como SqlCeConnection, SqlCECommand, etc por su respectiva SQLiteConnection, SQLiteCommand, etc.
  4. Reemplazar SqlCeClientSyncProvider por SqliteClientSyncProvider.
  5. No es muy importante, pero es aconsejable, modificar la extensión del archivo de la base de datos en la cadena de conexión.
Con estos simples pasos cualquier ejemplo debería funcionar correctamente.

| More

2 comentarios:

Hola José, me estoy interesando en estudiar más sobre la sincornización y me encontré con tu página, se me es muy interesante el cliente que has desarrollado, y bueno voy a probarlo, solo que ando corto de tiempo, pero tengo unas dudas, quisiera saber si es posible utilizar este cliente con la versión CF de SQlite en VS2008 y una base de datos en Firebird? crees que sea posible?, espero tus comentarios, bye.

José F. Romaniello dijo...

1-Nunca fue compilador para mobile, pero creo que no ser�a el gran rollo,
los fuentes est�n en sourceforge, si logras hacerlo enviarnos el parche! o
te agregamos como commiter ya que me lo han preguntado varias veces pero
nunca yo tuve tiempo (ni necesidad de hacerlo).2-Con Microsoft Sync
Framework vienen dos implementaciones, una para la parte de servidor con sql
server, y otra para la parte de cliente con sqlce. Lo que yo hice fue la
versi�n cliente pero para sqlite. Por lo tanto si queres hacer eso que dec�s
tendr�as que implementar la versi�n server para firebird. Actualmente hubo
algunas actualizaciones en el Sync Framework que permiten la sincronizaci�n
peer-to-peer, pero no estoy muy al tanto de eso.
Lo que esta en sourceforge funciona con pr�cticamente todos los ejemplos que
se encuentran en el sitio de "Sync Guru".

Publicar un comentario en la entrada