Partager via


Comment : configurer la synchronisation de données dans une application

Mise à jour : Juillet 2008

Si votre application requiert les données d'une base de données distante qu'il n'est pas nécessaire de récupérer de façon continue à partir de la base de données (ou qui n'est pas disponible en permanence), vous pouvez utiliser une base de données locale pour stocker les données sur l'ordinateur client avec votre application. Vous pouvez ensuite configurer votre application pour synchroniser les données entre les bases de données locale et distante à l'aide de la boîte de dialogue Configurer la synchronisation des données pour configurer Microsoft Synchronization Services pour ADO.NET.

À partir de Visual Studio 2008 SP1, outre la boîte de dialogue Configurer la synchronisation des données, vous pouvez également utiliser l'Assistant Configuration de source de données pour configurer la synchronisation. Au cours de la configuration d'un groupe de données typé, sélectionnez l'option Activer la mise en cache de la base de données locale dans la page Choisir vos objets de base de données de l'Assistant. Pour plus d'informations, consultez Procédure pas à pas : création d'une application occasionnellement connectée à l'aide de l'Assistant Configuration de source de données.

Remarque Dans les projets Smart Device, le concepteur de synchronisation ne peut pas être démarré à partir de l'Assistant Configuration de source de données. Pour plus d'informations, consultez Applications occasionnellement connectées (Smart Devices). En outre, la prise en charge du suivi des modifications SQL Server 2008 a été ajoutée pour Visual Studio 2008 SP1. Vous pouvez activer le suivi des modifications SQL Server 2008 lorsque vous configurez la synchronisation à partir de la boîte de dialogue Configurer la synchronisation des données ou l'Assistant Configuration de source de données. Pour plus d'informations, consultez Comment : configurer la synchronisation de données pour l'utilisation du suivi des modifications SQL Server.

Prenons l'exemple d'une application de gestion des stocks qui utilise des données de plusieurs tables dans une base de données. Le nombre d'éléments en stock pour n'importe quelle partie individuelle constitue une partie des données importante qui change continuellement, donc l'application doit toujours refléter les valeurs actuelles dans la base de données. Toutefois, l'application affiche également une liste des sociétés d'expédition valides qui change rarement. Ces sociétés d'expédition valides sont stockées dans la table des expéditeurs (Shippers) et n'ont pas à être récupérées à chaque fois que les données sont interrogées à partir de la base de données. Si vous stockez cette table Shippers dans un cache de base de données locale, vous pouvez diminuer le nombre d'allers-retours inutiles que votre application doit effectuer vers la base de données distante. Envisagez de stocker les données qui changent rarement (ou qui changent selon une planification connue) dans un cache de base de données locale.

Le cache de base de données locale utilise une base de données SQL Server Compact 3.5 pour stocker les données localement. Vous pouvez utiliser une base de données SQL Server Compact 3.5 existante en tant que cache de base de données locale. Si vous n'avez pas encore de base de données locale, vous pouvez configurer la boîte de dialogue Configurer la synchronisation des données pour créer une base de données locale.

Après avoir ajouté une base de données locale à votre application et complété la boîte de dialogue Configurer la synchronisation des données, vous devez encore ajouter le code à votre application pour lancer la synchronisation. Une fois les données synchronisées, vous devez également ajouter du code pour remplir la table dans le groupe de données à partir de la base de données locale.

Remarque :

La boîte de dialogue Configurer la synchronisation des données permet de configurer Microsoft Synchronization Services pour ADO.NET uniquement pour les scénarios de téléchargement. Cela signifie qu'après avoir configuré la synchronisation de données en utilisant la boîte de dialogue Configurer la synchronisation des données, Microsoft.Synchronization.Data.SyncAgent.Synchronize met à jour uniquement la base de données locale avec les modifications identifiées sur la base de données distante. Les modifications apportées aux données sur la base de données locale ne sont pas téléchargées sur la base de données distante. Une fois que vous avez configuré la synchronisation de données à l'aide de la boîte de dialogue Configurer la synchronisation des données, vous pouvez activer par programme les téléchargements (synchronisation bidirectionnelle) pendant la synchronisation. Pour plus d'informations, consultez Comment : configurer une base de données locale et distante pour la synchronisation bidirectionnelle.

Ajout d'un cache de base de données locale à un projet

Vous pouvez configurer une application pour mettre en cache les données localement en ajoutant un fichier .sync à votre projet et en le configurant à l'aide de la boîte de dialogue Configurer la synchronisation des données. Vous pouvez ajouter des fichiers .sync aux projets à l'aide de la boîte de dialogue Ajouter un nouvel élément (voir Ajouter un nouvel élément, boîte de dialogue).

La procédure suivante fournit les étapes de base à exécuter pour configurer la synchronisation des données. Pour obtenir des exemples faisant appel à des données réelles, consultez Procédure pas à pas : création d'une application occasionnellement connectée et Procédure pas à pas : création d'une application Smart Device occasionnellement connectée.

Remarque :

Il est possible que votre ordinateur affiche des noms ou des emplacements différents pour certains des éléments d'interface utilisateur Visual Studio dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d'informations, consultez Paramètres Visual Studio.

Pour configurer la synchronisation de données

  1. Dans le menu Projet, cliquez sur Ajouter un nouvel élément.

  2. Cliquez sur le modèle Cache de base de données locale.

  3. Indiquez un autre nom ou conservez le nom par défaut (LocalDataCache1.sync).

  4. Cliquez sur Ajouter.

    Le fichier .sync est ajouté au projet et la boîte de dialogue Configurer la synchronisation des données s'ouvre.

  5. Définissez la connexion serveur en fonction de la base de données distante à laquelle vous souhaitez vous connecter.

  6. Définissez la connexion client en fonction de la base de données SQL Server Compact 3.5 locale qui doit stocker vos données localement. Si vous ne disposez pas d'une base de données locale, utilisez le paramètre par défaut (NomBaseDonnées.sdf (nouveau)) pour créer une base de données dans le projet. Le nom de la nouvelle base de données varie en fonction du nom de la base de données indiqué dans le champ Connexion serveur.

    Remarque :

    Le bouton OK est désactivé par défaut et s'active après l'ajout d'une table à la zone Tables mises en cache.

  7. Cliquez sur Ajouter pour ouvrir la boîte de dialogue Configurer les tables pour une utilisation hors connexion. Ensuite, sélectionnez et configurez les tables de base de données à ajouter au cache de base de données locale.

  8. Sélectionnez les tables de base de données à ajouter au cache de base de données locale, puis configurez chacun des paramètres suivants :

    • Données à télécharger :

      Modifications nouvelles et incrémentielles après la première synchronisation

      Ce paramètre permet d'extraire du serveur les enregistrements modifiés depuis la dernière synchronisation des données. La première fois que la synchronisation est appelée, toute la table est téléchargée.

      Toute la table à chaque fois

      Ce paramètre supprime la table locale et la remplace par la version sur le serveur.

    • Comparer les mises à jour à l'aide de

      Définissez ce paramètre en fonction du nom de colonne dans la table sélectionnée qui sert à suivre le moment auquel la dernière mise à jour d'un enregistrement a eu lieu. Par défaut, toute colonne définie en tant que colonne datetime ou timestamp s'affiche dans cette liste. Si la table ne contient pas de colonne servant à suivre les enregistrements modifiés, vous pouvez conserver le paramètre par défaut (LastEditDate (nouveau))), qui crée la colonne de suivi.

    • Comparer les insertions à l'aide de

      Définissez ce paramètre en fonction du nom de colonne dans la table sélectionnée qui sert à suivre le moment auquel de nouveaux enregistrements sont ajoutés à la table. Par défaut, toute colonne définie en tant que colonne datetime ou timestamp s'affiche dans cette liste. Si la table ne contient pas de colonne servant à suivre les nouveaux enregistrements, vous pouvez conserver le paramètre par défaut (CreationDate (nouveau))), qui crée la colonne de suivi.

    • Déplacer les éléments supprimés vers

      Définissez ce paramètre en fonction de la table sur le serveur de base de données qui sert à stocker les enregistrements supprimés. Par défaut, toute table nommée NomTable_Deleted ou NomTable_Tombstone s'affiche dans cette liste. Si la base de données ne contient pas de table permettant de stocker les éléments supprimés, vous pouvez conserver le paramètre par défaut (NomTable_Tombstone (nouveau)), qui crée la table d'éléments supprimés.

      Remarque :

      Configurez ces paramètres pour chaque table que vous configurez pour une utilisation hors connexion.

  9. Par défaut, les options Génération de script sont automatiquement définies pour générer et exécuter les scripts côté serveur servant à configurer le serveur de base de données. Si vous n'avez pas besoin de ces scripts ou si vous n'avez pas accès au serveur de base de données, vous pouvez désactiver l'une des options et exécuter les scripts manuellement ou modifier vos tables. Si aucune modification n'est requise sur le serveur, aucun script n'est généré.

    Remarque :

    Ces scripts ajoutent les colonnes de suivi aux tables sélectionnées, créent les tables permettant de stocker les éléments supprimés et ajoutent des déclencheurs requis pour suivre les insertions, les mises à jour et les suppressions sur les tables configurées pour la mise en cache locale.

  10. Cliquez sur OK.

  11. Cliquez sur Afficher l'exemple de code pour ouvrir la boîte de dialogue Exemple de code, qui fournit un extrait de code qui démarre le processus de synchronisation. Vous pouvez copier cet extrait dans le Presse-papiers et l'insérer dans votre programme.

  12. Définissez éventuellement les options Avancé.

    Dans la boîte de dialogue Configurer la synchronisation des données, les options Avancé fournissent des paramètres permettant de déterminer si les tables sont synchronisées séparément ou dans une transaction unique. Les options activent également la séparation de code pour les applications multicouches.

    1. Synchroniser les tables dans une seule transaction. Par défaut, cette option n'est pas activée et toutes les tables sont synchronisées de manière individuelle. Si des erreurs se produisent, les modifications ne sont restaurées que pour les tables comportant des erreurs. Si vous activez cette option, toutes les tables sont synchronisées dans une seule transaction. Si des erreurs se produisent, toutes les modifications sont restaurées pour toutes les tables.

    2. Créer des composants de synchronisation. Par défaut, des composants de synchronisation sont générés pour le client et le serveur. Vous pouvez affecter à cette option la valeur Client seulement ou Serveur uniquement en fonction des spécifications de votre application.

    3. Emplacement du projet serveur. Par défaut, les composants de synchronisation du serveur sont générés dans le projet actif. Définissez cette option pour générer des composants de synchronisation pour le serveur dans un projet Visual Basic ou Visual C# de la solution.

    4. Emplacement du projet client. Par défaut, les composants de synchronisation du client sont générés dans le projet actif. Définissez cette option pour générer des composants de synchronisation pour le client dans un projet Visual Basic ou Visual C# de la solution.

Après avoir complété la boîte de dialogue Configurer la synchronisation des données, vous devez ajouter du code à votre application pour lancer la synchronisation.

Remarque :

La synchronisation des données met à jour la base de données locale, pas la table dans le groupe de données ou tout autre objet dans votre application. N'oubliez pas de recharger votre source de données d'application avec les données mises à jour de la base de données locale. Par exemple, appelez la méthode TableAdapter.Fill pour charger la table de données du groupe de données avec les données mises à jour à partir de la base de données locale.

Pour lancer la synchronisation

  • Si vous avez copié le code à partir de la boîte de dialogue Exemple de code de la section précédente, il vous suffit de le coller dans votre application. Sinon, vous pouvez insérer le code suivant dans votre application, là où vous souhaitez lancer le processus de synchronisation :

    ' Call SyncAgent.Synchronize() to initiate the synchronization process.
    ' Synchronization only updates the local database, not your project's data source.
    Dim syncAgent As LocalDataCache1SyncAgent = New LocalDataCache1SyncAgent()
    Dim syncStats As Microsoft.Synchronization.Data.SyncStatistics = syncAgent.Synchronize()
    
    ' Add code here to refill your application's data source
    ' with the updated data from the local database.
    
    // Call SyncAgent.Synchronize() to initiate the synchronization process.
    // Synchronization only updates the local database, not your project's data source.
    LocalDataCache1SyncAgent syncAgent = new LocalDataCache1SyncAgent();
    Microsoft.Synchronization.Data.SyncStatistics syncStats =
    syncAgent.Synchronize();
    
    // Add code to refill your application's data source
    // with the updated data from the local database.
    

Voir aussi

Tâches

Procédure pas à pas : création d'une application occasionnellement connectée

Procédure pas à pas : déploiement d'une application cliente occasionnellement connectée avec la base de données locale

Données occasionnellement connectées, exemple

Procédure pas à pas : création d'une application Smart Device occasionnellement connectée

Concepts

Vue d'ensemble des applications occasionnellement connectées

Applications occasionnellement connectées (Smart Devices)

Autres ressources

Applications occasionnellement connectées

Historique des modifications

Date

Historique

Raison

Juillet 2008

Informations ajoutées concernant la configuration de la synchronisation des données à l'aide de l'Assistant Configuration de source de données.

Modifications de fonctionnalités dans le SP1.

Juillet 2008

Ajout de remarques sur la synchronisation dans les projets Smart Device.

Modifications de fonctionnalités dans le SP1.