2009-02-24 9 views
7

Je ne fais que travailler dans Microsoft Sync Framework. Il semble assez facile de synchroniser une base de données SQL CE 3.5 locale avec un SQL Server 2008 distant en utilisant SqlSyncAdapterBuilder et SqlServerChangeTracking.Utilisation de MS Sync Framework pour synchroniser deux SQL CE Dbs

Malheureusement, la synchronisation de deux bases de données SQL CE 3.5 ne semble pas aussi simple que cela ...
La documentation est très rare, et je ne sais pas vraiment comment démarrer ici.

Mon scénario concret se présente comme suit:

  • J'ai une centrale SQL Server 2008.
  • Plusieurs clients sont connectés à ce serveur (certains d'entre eux seulement partiellement).
  • Ces clients (partiellement connectés) utilisent plusieurs applications (peut-être en cours d'exécution simultanément) fonctionnant sur la même base de données.

La synchronisation des clients avec le serveur central ne devrait poser aucun problème. La synchronisation des applications multiples sur un client hors ligne est l'endroit où j'ai pensé à utiliser plusieurs bases de données SQL CE (une en tant que serveur et une pour chaque instance d'application). J'apprécierais vraiment d'être capable d'utiliser les mêmes mécanismes de résolution de conflit lors de la synchronisation des clients avec le serveur et également lors de la synchronisation de plusieurs applications sur le client. L'installation d'un SQL Server 2008 Express sur chaque client est un non-go.

Est-ce que quelqu'un a de l'expérience avec la synchronisation de deux bases de données SQL CE?

Répondre

5

Sync Framework 2.0 permet la synchronisation entre les bases de données SQL Server Compact Edition.

SqlCeSyncProvider est utilisé pour synchroniser des bases de SQL Server Compact .

Ce fournisseur peut être utilisé pour synchroniser avec un serveur central mais a également la possibilité de synchroniser avec d'autres clients , qui n'est pas possible avec SqlCeClientSyncProvider. Cette capacité permet aux développeurs de cibles de nouveaux scénarios tels qu'un scénario de collaboration dans lequel les équipes de personnes ont besoin de synchroniser entre chaque autre en l'absence d'une connexion à un serveur central.

1

Toutes les synchronisations ado.net requièrent un fournisseur client et un fournisseur de serveur.

Malheureusement, il n'y a pas de SqlCe Server SyncProvider prêt à l'emploi avec la version actuelle du framework. Qu'est-ce que cela signifie, c'est que vous devez sous-classe DBServerSyncProvider et envelopper un SqlCe Client SyncProvider. Voir this article pour un exemple sur la façon de le faire avec sql express.

C'est le même concept, juste que vous envelopperez le SqlCeClientProvider. Les bonnes nouvelles sont que l'emballage pourrait être plus facile.

Bonne chance!

Questions connexes