Programmation des tâches courantes de synchronisation client et serveur
Les rubriques de cette section proposent des informations d'ordre général, le contenu de procédures et des exemples de code complet pour les tâches de synchronisation client et serveur courantes que vous pouvez effectuer avec Sync Framework. Nous vous recommandons de lire tout d'abord la rubrique de procédures concernant le suivi des modifications dans la base de données serveur, puis au moins l'une des rubriques concernant la direction de la synchronisation avant d'entamer la lecture des autres rubriques.
Dans cette section
Procédure : initialiser la base de données client et travailler avec un schéma de table
Procédure : travailler avec des événements et programmer la logique métier
Procédure : spécifier l'ordre et la taille de lot des modifications
Procédure : configurer la synchronisation pour un périphérique
Exemples d'application dans les rubriques de procédures
Chaque rubrique de procédure contient au moins une application console. Cette application est écrite dans les deux langages C# et Visual Basic, et présente des fonctions spécifiques de l'API. Toutes les applications incluent le code de synchronisation unique, modifient le client et le serveur en fonction des besoins, puis réexécutent leur synchronisation. Bien qu'il soit plus rapide de présenter uniquement des exemples de code pour une tâche ou une fonction spécifique, il est beaucoup plus facile de comprendre comment fonctionne Sync Framework si vous voyez une fonction spécifique dans un contexte relativement complet.
Chaque application contient les classes suivantes, ainsi que d'autres classes qui concernent les fonctions décrites :
Program
Cette classe configure la synchronisation et appelle des méthodes à partir de la classeUtility
. La classeUtility
gère toutes les fonctionnalités qui ne sont pas directement liées à la synchronisation, telles que la détention d'informations de chaîne de connexion et l'apport de modifications aux bases de données client et serveur.SampleSyncAgent
Cette classe est dérivée de SyncAgent.SampleServerSyncProvider
Cette classe est dérivée de DbServerSyncProvider. Dans les exemples où les commandes de fournisseur serveur sont pertinentes, les commandes sont spécifiées manuellement. Dans d'autres cas, la classe SqlSyncAdapterBuilder est utilisée, car elle nécessite moins de code. Pour plus d'informations sur les commandes de fournisseur serveur, consultez Procédure : spécifier la synchronisation par instantané, par téléchargement, par téléchargement ascendant et bidirectionnelle.SampleClientSyncProvider
Cette classe est dérivée de SqlCeClientSyncProvider.
Toutes les applications complètes comportent deux couches pour qu'il ne soit pas nécessaire d'utiliser un service pour l'exécution des applications. Cependant, le code est divisé en deux classes distinctes pour qu'il soit plus facile de voir comment appliquer le code aux scénarios multicouches. Pour plus d'informations sur les applications multicouches, consultez Procédure : configurer la synchronisation multicouche.
Le code de toutes les applications a été testé sur Visual Studio 2008, SQL Server Compact Service Pack 1, SQL Server 2005 Service Pack 2 et SQL Server 2008.
Pour exécuter chaque application
Exécutez le script « Suivi des modifications personnalisé pour les scénarios hors connexion » Transact-SQL de Scripts d'installation pour les rubriques de procédures sur le fournisseur de bases de données. Ce script crée une base de données, un ensemble de tables et de déclencheurs, ainsi qu'un ensemble de procédures stockées. Pour supprimer et réinsérer les exemples de données, utilisez la procédure stockée
usp_InsertSampleData
.Copiez le code de la classe
Utility
à partir de Classe d'utilitaire pour les rubriques de procédures sur le fournisseur de bases de données. Collez ce code dans chaque application que vous voulez exécuter, ou créez une DLL à partir du code et référencez cette DLL à partir de chaque application.Ajoutez des références aux DLL suivantes :
Microsoft.Synchronization.dll
Microsoft.Synchronization.Data.dll
Microsoft.Synchronization.Data.Server.dll
Microsoft.Synchronization.Data.SqlServerCe.dll
System.Data.SqlServerCe.dll