Share via


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

Mise à jour : Juillet 2008

Les applications occasionnellement connectées sont des applications qui ne peuvent pas avoir toujours accès aux données distantes. Étant donné qu'elles ne disposent pas toujours de cet accès, elles utilisent les données d'une base de données locale située sur le client et synchronisent régulièrement les données entre la base de données distante et la base de données locale. La synchronisation de données entre les bases de données locales et distantes est facilitée par Microsoft Synchronization Services pour ADO.NET (l'espace de noms Microsoft.Synchronization.Data). Cette synchronisation est configurée dans la boîte de dialogue Configurer la synchronisation des données.

À 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.

Cette procédure pas à pas fournit des explications détaillées sur le développement d'une application occasionnellement connectée.

Au cours de cette procédure, vous exécuterez les tâches suivantes :

  • Créer une nouvelle application Windows Forms.

  • Ajouter un nouveau cache de base de données locale à un projet.

  • Configurer des paramètres de synchronisation qui effectuent les tâches suivantes :

    • Définir les connexions de données à la base de données du serveur.

    • Configurer la synchronisation pour créer une base de données locale.

    • Sélectionner des tables dans la base de données que vous souhaitez synchroniser avec votre application.

  • Ajouter un contrôle DataGridView dans le formulaire pour afficher des données de la base de données locale.

  • Ajouter du code pour initialiser la synchronisation entre les bases de données.

  • Ajouter un message pour afficher des informations à propos du nombre d'enregistrements synchronisés.

Composants requis

Pour exécuter cette procédure pas à pas, vous avez besoin des éléments suivants :

Création de l'application Windows Forms

Étant donné que vous allez afficher les données sur un Windows Form (pour vérifier que la synchronisation est réussie), la première étape de cette procédure pas à pas consiste à créer une application Windows Forms.

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 créer une application Windows Forms

  1. Dans le menu Fichier, créez un nouveau projet.

  2. Nommez le projet OCSWalkthrough.

    Remarque :

    La boîte de dialogue Configurer la synchronisation des données est prise en charge dans les projets Visual Basic et C#. Par conséquent, créez le projet dans l'un de ces langages.

  3. Cliquez sur le modèle Application Windows Forms, puis sur OK. Pour plus d'informations, consultez Création d'applications Windows.

    Le projet OCSWalkthrough est créé et ajouté à l'Explorateur de solutions.

Ajout d'un fichier de synchronisation au projet

L'étape suivante pour créer une application occasionnellement connectée consiste à ajouter (ou créer) une base de données locale sur le client. Pour ajouter une base de données locale que vous serez en mesure de synchroniser avec la base de données distante, ajoutez un modèle Cache de base de données locale à votre projet. Vous ajoutez des fichiers cache de base de données locale (fichiers .sync) aux projets en utilisant la boîte de dialogue Ajouter un nouvel élément.

Pour ajouter un fichier de paramètres de synchronisation à un projet

  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 et tapez NorthwindCache.sync dans la zone Nom.

  3. Cliquez sur Ajouter.

    Un fichier NorthwindCache.sync est ajouté à l'Explorateur de solutions et la boîte de dialogue Configurer la synchronisation des données apparaît.

Configuration de la synchronisation de données

La configuration de la synchronisation de données se compose des tâches suivantes :

  • Fournissez une connexion de données à la base de données distante. Il s'agit de la connexion serveur.

  • Fournissez une connexion de données à la base de données locale ou créez une base de données sur le client, comme indiqué dans cette procédure pas à pas. Il s'agit de la connexion client.

  • Sélectionnez les tables que vous voulez utiliser dans votre application à partir de la connexion distante. Il s'agit des tables mises en cache.

  • Pour chaque table que vous ajoutez à la base de données locale, sélectionnez les colonnes requises pour harmoniser les modifications et la table dans laquelle sont stockés les éléments supprimés. Chaque table requiert des colonnes spécifiques qui effectuent un suivi des nouveaux enregistrements et des enregistrements modifiés, en plus d'une table qui effectue un suivi des enregistrements supprimés.

Configuration des connexions de données

Vous allez maintenant définir la connexion au serveur pour se connecter à la base de données distante (la base de données externe à votre application). La connexion client peut se connecter à une base de données SQL Server Compact 3.5 existante ou vous pouvez configurer la boîte de dialogue Configurer la synchronisation des données pour créer une base de données locale. Pour cette procédure pas à pas, vous allez créer une connexion à la base de données du serveur et quitter la connexion client par défaut pour créer automatiquement une base de données client (Northwind.sdf) dans le projet.

Pour définir les connexions de données aux bases de données client et serveur

  1. Sélectionnez une Connexion serveur à la version de SQL Server de la base de données Northwind ou cliquez sur Nouveau pour créer une connexion à la version de SQL Server de la base de données Northwind. Pour plus d'informations, consultez Comment : créer une connexion de données à la base de données Northwind.

  2. Laissez la valeur par défaut de Northwind.sdf (nouveau) pour la Connexion client. Cela crée une base de données SQL Server Compact 3.5 et l'ajoute à votre projet.

    Après avoir sélectionné la connexion au serveur, la boîte de dialogue Configurer la synchronisation des données interroge la base de données distante sur le serveur pour obtenir une liste de tables disponibles et active le bouton Ajouter une fois que la liste a été récupérée.

    Remarque :

    Remarquez que le bouton OK est désactivé. En effet, aucune table n'a été sélectionnée pour la synchronisation. La section suivante explique comment ajouter des tables, ce qui active le bouton OK.

Sélection et configuration des tables que vous souhaitez utiliser hors connexion

Vous allez maintenant sélectionner les tables à ajouter à la base de données client et effectuer la synchronisation avec votre application. Pour chaque table que vous ajoutez à la base de données client, sélectionnez les colonnes de suivi requises pour harmoniser les modifications et la table dans laquelle sont stockés les éléments supprimés. Si vous laissez les paramètres par défaut, la boîte de dialogue Configurer la synchronisation des données crée les colonnes de suivi et la table des éléments supprimés. Vous allez utiliser les paramètres par défaut dans cette procédure pas à pas.

Pour configurer des tables pour la mise en cache locale

  1. Cliquez sur Ajouter pour ouvrir la boîte de dialogue Configurer les tables pour une utilisation hors connexion.

  2. Sélectionnez et activez la table Customers.

  3. Laissez toutes les valeurs par défaut. Cliquez sur OK.

    La table Customers est ajoutée à la liste Tables mises en cache.

  4. Dans la boîte de dialogue Configurer la synchronisation des données, cliquez sur OK.

    Les colonnes de suivi et la table des éléments supprimés sont créées sur le serveur. La base de données Northwind.sdf est créée dans le projet et synchronisée pour la première fois.

  5. Sélectionnez et activez la table Customers dans l' Assistant Configuration de source de données, puis cliquez sur Terminer.

    NorthwindDataSet.xsd est ajouté au projet et toutes les boîtes de dialogue se ferment.

Activation de la synchronisation dans votre application

Après avoir effectué les étapes précédentes, la synchronisation de données est configurée. À ce stade, votre application contient les éléments suivants :

  • La base de données locale Northwind (Northwind.sdf).

  • Les informations des paramètres de synchronisation de données (NorthwindCache.sync).

  • Le groupe de données typé NorthwindDataSet.xsd généré par l'Assistant Configuration de source de données. Il contient une table Customers qui est remplie à partir de la base de données locale.

  • Un dossier SQLScripts qui contient les scripts utilisés pour créer les colonnes de suivi, la table des éléments supprimés et les déclencheurs requis pour effectuer le suivi des modifications sur le serveur.

  • Un dossier SQLUndoScripts qui contient des scripts pour supprimer les colonnes de suivi, la table des éléments supprimés et les déclencheurs requis qui ont été ajoutés au serveur.

    Remarque :

    Les scripts SQL ne sont créés que si des modifications doivent être apportées sur le serveur. Aucun script n'est créé si le serveur contient déjà une table des éléments supprimés et des colonnes de suivi.

  • Références aux DLL suivantes de Microsoft Synchronization Services pour ADO.NET :

    • Microsoft.Synchronization.Data

    • Microsoft.Synchronization.Data.Server

    • Microsoft.Synchronization.Data.SqlServerCe

Après avoir configuré la synchronisation de données, vous devez ajouter les fonctionnalités de synchronisation à votre application. Plus spécifiquement, vous devez ajouter du code qui initie le processus de synchronisation.

Tout d'abord, vous allez ajouter un contrôle DataGridView en faisant glisser le nœud Customers de la fenêtre Sources de données vers le formulaire. DataGridView affiche la table Customers du cache de base de données locale (la base de données Northwind.sdf située dans le projet) afin que vous puissiez vérifier que les données sont en cours de synchronisation entre les bases de données locale et distante. Vous allez également ajouter un bouton pour démarrer le processus de synchronisation.

Pour créer un formulaire lié aux données pour initialiser et vérifier la synchronisation de données

  1. Depuis la fenêtre Sources de données, faites glisser le nœud Customers vers Form1.

  2. À partir de la Boîte à outils, faites glisser un contrôle Button vers Form1. Affectez la valeur SynchronizeButton à la propriété Name et Synchronize Now. à la propriété Text.

  3. Double-cliquez sur le bouton Synchroniser maintenant pour créer un gestionnaire d'événements lié à un clic sur un bouton et ouvrez le formulaire dans l'éditeur de code.

  4. Ajoutez du code pour démarrer le processus de synchronisation, puis remplissez la table Customers dans le groupe de données. Le code dans le gestionnaire d'événements doit se présenter comme suit :

    Remarque :

    La ligne de code qui déclare la variable syncStats est expliquée dans la section suivante.

    ' Call the Synchronize method to synchronize
    ' data between local and remote databases.
    Dim syncAgent As NorthwindCacheSyncAgent = New NorthwindCacheSyncAgent()
    Dim syncStats As Microsoft.Synchronization.Data.SyncStatistics = _
        syncAgent.Synchronize()
    
    ' After synchronizing the data, refill the
    ' table in the dataset.
    Me.CustomersTableAdapter.Fill(NorthwindDataSet.Customers)
    
    // Call the Synchronize method to synchronize
    // data between local and remote databases.
    NorthwindCacheSyncAgent syncAgent = new NorthwindCacheSyncAgent();
    Microsoft.Synchronization.Data.SyncStatistics syncStats;
    syncStats = syncAgent.Synchronize();
    // After synchronizing the data, refill the
    // table in the dataset.
    this.customersTableAdapter.Fill(this.northwindDataSet.Customers);
    

Test de l'application

Pour tester l'application

  1. Appuyez sur F5.

  2. Pendant que l'application s'exécute, utilisez l'Explorateur de serveurs/Explorateur de bases de données (ou un autre outil de gestion de base de données) pour se connecter à la base de données serveur distante et modifier des enregistrements.

    1. Dans l'Explorateur de serveurs/Explorateur de bases de données, localisez la table Customers sur le serveur de base de données distante (et non pas la connexion à Northwind.sdf).

    2. Cliquez avec le bouton droit sur la table Customers et sélectionnez Afficher les données de la table.

    3. Modifiez un ou plusieurs enregistrements et validez les modifications. Quittez la ligne modifiée.

  3. Revenez au formulaire et cliquez sur Synchroniser maintenant.

  4. Vérifiez que les modifications apportées à la base de données distante sont synchronisées à la base de données locale et sont affichées dans la grille.

  5. Fermez le formulaire. Arrêtez le débogage.

Récupération d'informations à partir d'une synchronisation

Lorsque vous appelez la méthode Synchronize, cela ne fait pas qu'initier le processus de synchronisation. La méthode Synchronize retourne également un objet SyncStatistics à partir duquel vous pouvez accéder aux informations sur la synchronisation.

Pour accéder aux statistiques de synchronisation

  • Ouvrez Form1 dans l'éditeur de code et ajoutez le code suivant en bas du gestionnaire d'événements SynchronizeButton_Click, en dessous du code ajouté lors des étapes précédentes :

        MessageBox.Show("Changes downloaded: " & _
    syncStats.TotalChangesDownloaded.ToString)
    
    MessageBox.Show("Changes downloaded: " +
        syncStats.TotalChangesDownloaded.ToString());
    

Test de l'application

Pour tester l'application

  1. Appuyez sur F5.

  2. Pendant que l'application s'exécute, utilisez l'Explorateur de serveurs/Explorateur de bases de données (ou un autre outil de gestion de base de données) pour se connecter à la base de données serveur distante et modifier des enregistrements.

    1. Dans l'Explorateur de serveurs/Explorateur de bases de données, localisez la table Customers sur le serveur de base de données distante (et non pas la connexion à Northwind.sdf).

    2. Cliquez avec le bouton droit sur la table Customers et sélectionnez Afficher les données de la table.

    3. Modifiez un ou plusieurs enregistrements et validez les modifications. Quittez la ligne modifiée.

  3. Revenez au formulaire et cliquez sur Synchroniser maintenant.

  4. Un message qui contient des informations à propos des enregistrements synchronisés apparaît.

  5. Vérifiez que les modifications apportées à la base de données distante sont synchronisées à la base de données locale et sont affichées dans la grille.

Étapes suivantes

Selon les spécifications de votre application, vous pouvez exécuter différentes étapes après avoir configuré un cache de base de données locale dans une application. Par exemple, vous pouvez apporter les améliorations suivantes à cette application :

Voir aussi

Tâches

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

Concepts

Vue d'ensemble des applications occasionnellement connectées

SQL Server Compact 3.5 et Visual Studio

Historique des modifications

Date

Historique

Raison

Juillet 2008

Ajout d'un paragraphe sur la configuration de la synchronisation de données avec l'Assistant Configuration de source de données.

Modifications de fonctionnalités dans le SP1.