|
Avant de créer notre premier projet de synchroniser, nous allons brièvement aborder les différents éléments que propose MSF :
SyncAgent est l'orchestrateur de notre synchronisation. Il va parcourir l'ensemble des tables à synchroniser. Pour cela il doit avoir connaissance des deux fournisseurs de données mis en jeu : Le fournisseur distant et le fournisseur de la base de donnée locale. On parle de RemoteProvider et de LocalProvider. Il s'occupe aussi de la gestion de la session en cours et va lever des évènements sur les opérations en cours (changement d'état, étapes de la synchronisation)
L'agent de synchronisation est donc l'élément capable de déclencher la synchronisation. C'est donc sans surprise qu'on retrouve une méthode, que vous allez suremment utiliser assez fréquemment : Synchronise() : Déclenche la synchronisation.
Il existe plusieurs types de fournisseurs d'accés local. Un provider client dérive de la classe ClientSyncProvider, qui elle-même dérive de la classe abstraite SyncProvider.
Pour utiliser Sql Server CE, nous allons donc utiliser le fournisseur de synchronisation pour Sql Serveur CE : SqlCeClientSyncProvider
Le fournisseur serveur doit non seulement communiquer avec le serveur, mais en plus doit pouvoir récupérer les lots d'enregistrements à mettre à jour, à insérer, et à supprimer.
Un fournisseur de synchronisation serveur doit dériver de la classe abstraite DbServerSyncProvider (qui hérite elle-même de ServerSyncProvider qui hérite elle-même de SyncProvider)
Pour l'aider dans sa tache, le fournisseur de synchronisation serveur va s'appuyer sur différents objets : - SyncAdapter : Le SyncAdapter est chargé de se synchroniser avec la base de données. Il dispose des méthodes classiques : InsertCommand, DeleteCommand, UpdateCommand
Il dispose également de méthodes plus particulières comme :- SelectIncrementalDeletesCommand : Méthode établissant la liste des suppressions à exécuter sur notre base de données cache
- SelectIncrementalInsertsCommand : Méthode établissant la lite des insertions à exécuter sur notre base de données cache
- SelectIncrementalUpdatesCommand : Méthode établissant la liste des Mises à jour à exécuter sur notre base de données cache
- SyncTable : Une synctable représente une table à synchroniser.
Une syncTable va définir plusieurs propriétés :
- TableName : Quelle table à synchroniser
- CreationOption : Quelle méthode de création utiliser
- SyncDirection : Quel type de synchronisation (Bidirectionnal, DownloadOnly, UploadOnly, Snapshot)
- SyncGroup : Représente un groupe de tables à synchroniser. Très utile pour garantir une bonne synchronisation sur des tables possédant des clés étrangères.
|
|
|
|
|