Sébastien Pertus
Introduction à Microsoft Synchronization Framework
Introduction au nouveau Framework de synchronisation .Net, déjà disponible dans Visual Studio 2008.
Par Sébastien Pertus publié le 02/12/2007 à 22:48, lu 8998 fois, 7 pages
 5 | Synchronisation des données serveur
Pour illustrer ce cas, le projet Tmp va directement insérer, supprimer et mettre à jour des données sur la base de données source :
 
/content/8b9afe11-8131-47a5-971d-563e86a5bc4f/Capturetmp.JPG
 
Dans la capture précédente, nous avons insérer des données, on voit bien que 6 lignes supplémentaires sont présentes dans la base de données.
Pour sycnhroniser la base de données locale, nous allons demander à notre agent de type SyncAgent d'effectuer l'opération Synchronise()
Mais justement où se trouve les classes servant à synchroniser les données ?

Regardons la classe BewiseCache.Designer.sync :
 
/content/8b9afe11-8131-47a5-971d-563e86a5bc4f/DesignerSync.jpg
 
On retrouve le code généré par notre Wizard, dans deux namespace portant pourtant le même nom (Client)
  • BewiseCacheClientSyncProvider : Le fournisseur de synchronisation client
  • BewiseCacheSyncAgent : L'agent de synchronisation
  • CustomerSyncAdapter : Le SyncAdapter contenant l'ensemble des méthodes permettant de synchroniser la table Customer
  • BewiseCacheServerSyncProvider : Le fournisseur de synchronisation Serveur
Note : Pourquoi deux namespaces possédant pourtant le même nom ?
Le Wizard est capable de créer une synchronisation répartie sur plusieurs assemblys, dans une architecture N-Tiers. Il est notamment possible de facilement s'intégrer dans une application multi couches avec WCF.
Sur notre bouton "Synchroniser" il ne reste plus qu'à appeler la méthode Synchronise d'un agent nouvellement crée. Ne pas oublier de refaire un Fill sur la DataTable afin de rafraichir les données :

private void btnSync_Click(object sender, EventArgs e)

{

    BewiseCacheSyncAgent agent = new BewiseCacheSyncAgent();

    agent.Synchronize();

    this.customerTableAdapter.Fill(this.syncBewiseDataSet.Customer);

}

A l'éxécution, la synchronisation devient alors effective une fois que nous avons appelé la méthode Synchronise :
 
/content/8b9afe11-8131-47a5-971d-563e86a5bc4f/CaptureSynchroAvantApres.jpg
 
 
» Démarrer une discussion
 
Discussion démarée par janate le 08/03/2010 à 17:10, 1 commentaire(s).
Discussion démarée par vega3000 le 05/12/2007 à 19:52, 5 commentaire(s).