2009-02-24 7 views
7

Estoy trabajando en Microsoft Sync Framework. Parece bastante fácil sincronizar una base de datos SQL CE 3.5 local con un SQL Server 2008 remoto utilizando SqlSyncAdapterBuilder y SqlServerChangeTracking.Uso de MS Sync Framework para sincronizar dos SQL CE Dbs

Desafortunadamente, la sincronización de dos bases de datos SQL CE 3.5 no parece tan fácil ...
La documentación es muy escasa, y realmente no sé cómo comenzar aquí.

Mi escenario concreto que parece ser la siguiente:

  • que tiene un servidor 2008.
  • Varios clientes de SQL central están conectadas a este servidor (algunos de ellos sólo parcialmente).
  • Esos clientes (parcialmente conectados) están utilizando múltiples aplicaciones (tal vez ejecutándose al mismo tiempo) trabajando en la misma base de datos.

La sincronización de los clientes con el servidor central no debería ser un problema. La sincronización de múltiples aplicaciones en un cliente fuera de línea es donde he pensado utilizar varias bases de datos SQL CE (una como servidor y otra para cada instancia de aplicación). Realmente me gustaría poder utilizar los mismos mecanismos de resolución de conflictos al sincronizar los clientes con el servidor y también al sincronizar varias aplicaciones en el cliente. Instalar un SQL Server 2008 Express en cada cliente es un no-go.

¿Alguien tiene alguna experiencia con la sincronización de dos bases de datos SQL CE?

Respuesta

5

Sync Framework 2.0 permite la sincronización entre las bases de datos de SQL Server Compact Edition.

SqlCeSyncProvider se utiliza para sincronizar SQL Server Compact bases de datos.

Este proveedor se puede utilizar para sincronizar con un servidor central, pero también tiene la capacidad de sincronizar con otros clientes, lo cual no es posible con SqlCeClientSyncProvider. Esta capacidad permite a los desarrolladores a objetivo nuevos escenarios, como un escenario en el que la colaboración equipos de la gente necesita para sincronizar entre cada otra en ausencia de una conexión a un servidor central.

1

Todas las sincronizaciones de ado.net requieren un proveedor de cliente y un proveedor de servidor.

Lamentablemente, no hay un servidor SqlCe SyncProvider fuera de la caja con la versión actual del marco. Lo que eso significa es que tiene que subclase DBServerSyncProvider y ajustar un SqlCe Cliente SyncProvider.

Consulte this article para ver un ejemplo de cómo hacerlo con sql express.

Es el mismo concepto, solo que estará envolviendo el SqlCeClientProvider. La buena noticia es que la envoltura puede ser más fácil.

¡Buena suerte!

Cuestiones relacionadas