Meilleure façon de synchroniser la database SQL Server distante avec la database SQL Server Compact locale?

Je me rends count que c'est un sujet très discuté mais toutes les suggestions que je vois semblent impliquer un access direct au SQL Server qui, dans notre exemple, n'est pas idéal.

Notre scénario est une database SQL Server distante avec (disons) 100 tables. Nous développons une application de bureau légère qui utilisera une database SQL Server Compact et synchronisera périodiquement un sous-set de (disons) 20 tables avec le server distant.

Je voudrais avoir le contrôle sur la façon dont la réplication se produit parce que la vitesse est un problème majeur pour nous puisque le server distant est à 1000 milles de distance.

De plus, je n'ai pas besoin de synchroniser tous les loggings de chaque table – uniquement ceux qui concernent chaque user.

J'aime assez la facilité de fusion SQL , mais il faut que le client soit connecté au server SQL distant. Ce n'est actuellement pas possible et nous avons pensé à l'interfaçage avec le server distant via un service web accessible via notre application ou une autre méthode.

Toutes les suggestions sont les bienvenues

METTRE À JOUR

Juste pour clarifier, la connection Internet sera intermittente, c'est la principale raison pour laquelle nous avons besoin de synchroniser les deux bases de données.

Le fait que vous utilisiez une database compacte pour le client vous impose des limites assez importantes pour les options disponibles dans ce scénario.

Compte tenu des limitations et des exigences de performances que vous souhaitez, vous pouvez envisager d'implémenter un sharepoint terminaison http basé sur le service afin de synchroniser les tables souhaitées. Si votre architecture le permet, le faire de manière asynchronous augmenterait les performances de manière significative mais encore une fois, il peut même ne pas être viable en fonction de votre architecture.

Une autre chose à considérer est d'utiliser des sockets Web plutôt que des connections HTTP standard pour un service Web comme mentionné ci-dessus. De cette façon, vous pouvez synchroniser les clients en time réel, car les sockets Web sont de vraies connections en time réel entièrement duplex. L'inconvénient majeur de ceci est que vous devez soit vous assurer que tous les clients sont conforms à la socket Web, soit fournir une solution de rechange pour émuler une connection websocket avec une infrastructure d'émulation pour les clients qui ne sont pas à la hauteur.

Je ne sais pas si cela aide.

Vous avez le choix à la fois Sync Framework (nécessite plus de encoding et a d'autres limitations) ou Merge Replication, les deux fonctionnent sur http / https) – voir ce blog pour une comparaison: http://blogs.msdn.com/b/ sqlservercompact / archive / 2009/11/09 / fusion-réplication-vs-sync-services-pour-compact.aspx

Ne pouvez-vous pas utiliser le framework MS Sync?

Assez bien conçu pour votre scénario AFAIK.

Google rapide a tourné ce tutoriel …

http://social.technet.microsoft.com/wiki/contents/articles/2190.tutorial-synchronizing-sql-server-and-sql-server-compact-sync-framework.aspx