3

Je travaille sur les modifications apportées à une application pour avoir un magasin de données local au lieu de me connecter directement au serveur de base de données. L'application cliente se synchronisera alors dans les deux sens entre la base de données du serveur et son magasin de données local. J'essaie d'implémenter la solution de synchronisation à l'aide de Microsoft Sync Framework. Pour être clair, il n'y a pas d'application serveur, seulement le serveur de base de données, mais il y a plusieurs clients.Microsoft Sync Framework avec base de données client et serveur multi-blocs

J'ai commencé à implémenter deux classes qui implémentent FullEnumerationSimpleSyncProvider, une appelée LocalSyncProvider et une appelée ServerSyncProvider. Le LocalSyncProvider sait comment énumérer, insérer, mettre à jour, supprimer des éléments du magasin de données local et ServerSyncProvider sait comment énumérer, insérer, mettre à jour, supprimer des éléments du serveur de base de données. Ils utilisent chacun le SqlMetadataStore fourni et stockent les deux magasins de métadonnées (un pour le local et un pour le serveur) sur le disque local du client. Cela signifie que chaque client aura son propre magasin de métadonnées pour son magasin de données local et son propre magasin de métadonnées pour la base de données du serveur.

Est-ce que cela fonctionnera réellement, existe-t-il un seul magasin de métadonnées de serveur ou dois-je utiliser différemment Sync Framework?

Répondre

0

Nous utilisons une approche similaire et cela fonctionne comme vous l'avez décrit. La différence est que nous synchronisons des fichiers, pas des données, en utilisant le FileSyncProvider pour le client et une implémentation de FullEnumerationSimpleSyncProvider pour le serveur. Mais nous n'avons pas de code Sync Framework en cours d'exécution sur le serveur et il existe deux fichiers de métadonnées séparés, tous deux stockés sur le client.

Cependant, j'ai récemment rencontré un problème que vous pourriez vouloir connaître. Il semble que si les magasins de métadonnées sur le client sont supprimés, Sync Framework ne peut pas reconstruire les fichiers de métadonnées sans être confondu avec les données/fichiers qui sont déjà sur le serveur.