Exemplarische Vorgehensweise: Erstellen einer gelegentlich verbundenen Anwendung

Aktualisiert: Juli 2008

Gelegentlich verbundene Anwendungen sind Anwendungen, die möglicherweise nicht immer Zugriff auf Remotedaten haben. Da sie nicht immer über diesen Zugriff verfügen, nutzen sie Daten aus einer lokalen, auf dem Client befindlichen Datenbank und synchronisieren die Daten zwischen der Remotedatenbank und der lokalen Datenbank. Die Synchronisierung von Daten zwischen lokalen und Remotedatenbanken wird von Microsoft Synchronization Services für ADO.NET (der Microsoft.Synchronization.Data-Namespace) erleichtert. Diese Synchronisierung wird im Dialogfeld Datensynchronisierung konfigurieren konfiguriert.

Ab Visual Studio 2008 SP1 können Sie zusätzlich zum Dialogfeld Datensynchronisierung konfigurieren auch den Assistenten zum Konfigurieren von Datenquellen zur Konfiguration der Synchronisierung verwenden. Wählen Sie bei der Konfiguration eines typisierten Datasets auf der Seite Datenbankobjekte auswählen des Assistenten die Option Zwischenspeichern der lokalen Datenbank aktivieren aus. Weitere Informationen hierzu finden Sie unter Exemplarische Vorgehensweise: Erstellen einer gelegentlich verbundenen Anwendung mit dem Assistenten zum Konfigurieren von Datenquellen.

Diese exemplarische Vorgehensweise enthält schrittweise Anweisungen zum Entwickeln einer gelegentlich verbundenen Anwendung.

Im Verlauf dieser exemplarischen Vorgehensweise führen Sie folgende Aufgaben aus:

  • Erstellen Sie eine neue Windows Forms-Anwendung.

  • Fügen Sie dem Projekt einen neuen Cache für lokale Datenbanken hinzu.

  • Konfigurieren Sie Synchronisierungseinstellungen, die die folgenden Aufgaben ausführen:

    • Einrichten der Datenverbindungen zur Serverdatenbank

    • Konfigurieren der Synchronisierung zum Erstellen einer neuen lokalen Datenbank

    • Auswählen der Tabellen in der Datenbank, die mit der Anwendung synchronisiert werden sollen

  • Hinzufügen eines DataGridView-Steuerelements zum Formular, um Daten aus der lokalen Datenbank anzuzeigen

  • Hinzufügen von Code, um die Synchronisierung zwischen Datenbanken zu starten

  • Hinzufügen eines Meldungsfelds, um Informationen über die Anzahl der synchronisierten Datensätze anzuzeigen

Vorbereitungsmaßnahmen

Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie Folgendes:

  • Zugriff auf die SQL Server-Version der Beispieldatenbank Northwind. Weitere Informationen finden Sie unter Gewusst wie: Installieren von Beispieldatenbanken.

  • SQL Server Compact 3.5, installiert auf dem Computer, auf dem Visual Studio ausgeführt wird.

Erstellen der Windows Forms-Anwendung

Da die Daten in einem Windows Form angezeigt werden, um zu überprüfen, ob die Synchronisierung erfolgreich war, besteht der erste Schritt in dieser exemplarischen Vorgehensweise in der Erstellung einer neuen Windows Forms-Anwendung.

Hinweis:

Ihr Computer zeigt möglicherweise für einige der Elemente der Visual Studio-Benutzeroberfläche in der folgenden Anleitung andere Namen oder Standorte an. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.

So erstellen Sie eine neue Windows Forms-Anwendung

  1. Erstellen Sie über das Menü Datei ein neues Projekt.

  2. Geben Sie dem Projekt den Namen OCSWalkthrough.

    Hinweis:

    Das Dialogfeld Datensynchronisierung konfigurieren wird in Visual Basic- und C#-Projekten unterstützt. Erstellen Sie das neue Projekt daher in einer dieser Sprachen.

  3. Klicken Sie auf die Vorlage Windows Forms-Anwendung und anschließend auf OK. Weitere Informationen hierzu finden Sie unter Erstellen von Windows-basierten Anwendungen.

    Das OGSWalkthrough-Projekt wird erstellt und dem Projektmappen-Explorer hinzugefügt.

Hinzufügen einer Synchronisierungsdatei zum Projekt

Der nächste Schritt bei der Erstellung einer gelegentlich verbundenen Anwendung besteht darin, eine lokale Datenbank auf dem Client hinzuzufügen bzw. diese zu erstellen. Zum Hinzufügen einer lokalen Datenbank, die mit der Remotedatenbank synchronisiert werden kann, fügen Sie Ihrem Projekt die Vorlage Cache für lokale Datenbanken hinzu. Cachedateien für lokale Datenbanken (.sync files) werden dem Projekt mithilfe des Dialogfelds Neues Element hinzufügen hinzugefügt.

So fügen Sie einem Projekt eine Einstellungsdatei für die Synchronisierung hinzu

  1. Klicken Sie im Menü Projekt auf Neues Element hinzufügen.

  2. Klicken Sie auf die Vorlage Cache für lokale Datenbanken, und geben Sie NorthwindCache.sync in das Feld Name ein.

  3. Klicken Sie auf Hinzufügen.

    Dem Projektmappen-Explorer wird eine NorthwindCache.sync-Datei hinzugefügt, und das Dialogfeld Datensynchronisierung konfigurieren wird angezeigt.

Konfigurieren der Datensynchronisierung

Das Konfigurieren von Datensynchronisierungen umfasst die folgenden Aufgaben:

  • Bereitstellen einer Datenverbindung zur Remotedatenbank Dies ist die Serververbindung.

  • Bereitstellen einer Datenverbindung zur lokalen Datenbank, oder Erstellen einer neuen Datenbank auf dem Client, wie in dieser exemplarischen Vorgehensweise beschrieben. Dies ist die Clientverbindung.

  • Wählen Sie die Tabellen aus der Remoteverbindung, die Sie in Ihrer Anwendung verwenden möchten. Diese werden als zwischengespeicherte Tabellen bezeichnet.

  • Wählen Sie für jede zur lokalen Datenbank hinzugefügte Tabelle die Spalten aus, die zum Abgleichen von Änderungen erforderlich sind, sowie die Tabelle, in der gelöschte Elemente gespeichert werden sollen. Zusätzlich zu der Tabelle, in der die gelöschten Datensätze nachverfolgt werden, sind für jede Tabelle bestimmte Spalten erforderlich, in denen neue und geänderte Datensätze nachverfolgt werden.

Einrichten der Datenverbindungen

Sie richten nun die Serververbindung ein, um eine Verbindung zur Remotedatenbank herzustellen (die Datenbank außerhalb Ihrer Anwendung). Die Clientverbindung kann eine Verbindung zu einer bestehenden SQL Server Compact 3.5-Datenbank herstellen, oder Sie können über das Dialogfeld Datensynchronisierung konfigurieren automatisch eine neue lokale Datenbank erstellen lassen. Im Rahmen dieser exemplarischen Vorgehensweise erstellen Sie eine Verbindung zur Serverdatenbank und lassen durch die Standardclientverbindung automatisch eine neue Clientdatenbank (Northwind.sdf) im Projekt erstellen.

So legen Sie die Datenverbindungen für Server- und Clientdatenbanken fest

  1. Wählen Sie eine Serververbindung zur SQL Server-Version der Northwind-Datenbank, oder klicken Sie auf Neu, um eine neue Verbindung zur SQL Server-Version der Northwind-Datenbank zu erstellen. Weitere Informationen finden Sie unter Gewusst wie: Erstellen einer Datenverbindung mit der Northwind-Datenbank.

  2. Behalten Sie den Standardwert Northwind.sdf (neu) für die Clientverbindung bei. Hierdurch wird eine neue SQL Server Compact 3.5-Datenbank erstellt und dem Projekt hinzugefügt.

    Nach dem Auswählen der Serververbindung wird über das Dialogfeld Datensynchronisierung konfigurieren die Remotedatenbank auf dem Server nach verfügbaren Tabellen abgefragt. Nach Abruf der Liste wird die Schaltfläche Hinzufügen aktiviert.

    Hinweis:

    Beachten Sie, dass die Schaltfläche OK nicht aktiviert ist. Das liegt daran, dass keine Tabelle für die Synchronisierung ausgewählt wurde. Im nächsten Abschnitt wird erklärt, wie Tabellen hinzugefügt werden und dadurch die Schaltfläche OK aktiviert wird.

Auswählen und Konfigurieren der offline zu verwendenden Tabellen

Sie wählen jetzt die Tabellen aus, die der Clientdatenbank hinzugefügt und mit der Anwendung synchronisiert werden sollen. Wählen Sie für jede zur Clientdatenbank hinzugefügten Tabelle die Nachverfolgungsspalten aus, die für das Abgleichen von Änderungen erforderlich sind, sowie die Tabellen, in denen gelöschte Elemente gespeichert werden sollen. Wenn Sie die Standardeinstellungen beibehalten, werden die Nachverfolgungsspalten und die Tabelle für gelöschte Elemente automatisch über das Dialogfeld Datensynchronisierung konfigurieren erstellt. In dieser exemplarischen Vorgehensweise verwenden Sie die Standardeinstellungen.

So konfigurieren Sie Tabellen für lokales Caching

  1. Klicken Sie auf Hinzufügen, um das Dialogfeld Tabellen für die Offlineverwendung konfigurieren zu öffnen.

  2. Wählen Sie die Tabelle Customers aus, und überprüfen Sie diese.

  3. Behalten Sie alle Standardwerte bei. Klicken Sie auf OK.

    Die Tabelle Customers wird zur Liste Zwischengespeicherte Tabellen hinzugefügt.

  4. Klicken Sie im Dialogfeld Datensynchronisierung konfigurieren auf OK.

    Die Nachverfolgungsspalten und die Tabelle für gelöschte Elemente werden auf dem Server erstellt. Die Northwind.sdf-Datenbank wird im Projekt erstellt und zum ersten Mal synchronisiert.

  5. Wählen Sie im Assistenten zum Konfigurieren von Datenquellen die Tabelle Customers aus, überprüfen Sie diese, und klicken Sie anschließend auf Fertig stellen.

    NorthwindDataSet.xsd wird dem Projekt hinzugefügt, und alle Dialogfelder werden geschlossen.

Aktivieren der Synchronisierung in der Anwendung

Nach dem Ausführen der vorherigen Schritte ist die Datensynchronisierung konfiguriert. Die Anwendung enthält nun Folgendes:

  • Die lokale Northwind-Datenbank (Northwind.sdf).

  • Die Informationen zu den Datensynchronisierungseinstellungen (NorthwindCache.sync).

  • Das vom Assistenten zum Konfigurieren von Datenquellen generierte typisierte DataSet NorthwindDataSet.xsd. Es enthält eine Customers-Tabelle, die aus der lokalen Datenbank aufgefüllt wird.

  • Den Ordner SQLScripts mit den Skripts, die zum Erstellen der Nachverfolgungsspalten, der Tabellen mit gelöschten Elementen sowie der zum Nachverfolgen von Änderungen auf dem Server erforderlichen Trigger verwendet werden.

  • Den Ordner SQLUndoScripts mit den Skripts zum Entfernen der Nachverfolgungsspalten, der Tabelle mit gelöschten Elementen sowie der erforderlichen, dem Server hinzugefügten Trigger.

    Hinweis:

    SQL-Skripts werden nur erstellt, wenn Änderungen auf dem Server vorgenommen werden müssen. Wenn der Server bereits über eine Tabelle gelöschter Elemente und Nachverfolgungsspalten verfügt, werden keine Skripts erstellt.

  • Verweise auf die folgenden Microsoft Synchronization Services für ADO.NET-DLLs:

    • Microsoft.Synchronization.Data

    • Microsoft.Synchronization.Data.Server

    • Microsoft.Synchronization.Data.SqlServerCe

Nach dem Konfigurieren der Datensynchronisierung müssen Sie der Anwendung noch Synchronisierungsfunktionen hinzufügen. Genauer gesagt müssen Sie Code hinzufügen, durch den der Synchronisierungsprozess initiiert wird.

Zunächst fügen Sie ein DataGridView-Steuerelement hinzu, indem Sie den Knoten Customers aus dem Fenster Datenquellen in das Formular ziehen. In der DataGridView wird die Tabelle Customers aus dem lokalen Datenbankcache (der Datenbank Northwind.sdf, die sich im Projekt befindet) angezeigt, sodass Sie die Daten überprüfen können, die zwischen der lokalen und der Remotedatenbank synchronisiert werden. Sie fügen außerdem eine Schaltfläche zum Starten des Synchronisierungsprozesses hinzu.

So erstellen Sie ein datengebundenes Formular, um die Datensynchronisierung zu starten und zu überprüfen

  1. Ziehen Sie den Knoten Customers aus dem Fenster Datenquellen nach Form1.

  2. Ziehen ein Button-Steuerelement aus der Toolbox nach Form1. Legen Sie für die zugehörige Name-Eigenschaft die Option SynchronizeButton und für die Text-Eigenschaft die Option Jetzt synchronisieren fest.

  3. Doppelklicken Sie auf die Schaltfläche Jetzt synchronisieren, um einen Schaltflächenklick-Ereignishandler zu erstellen und das Formular im Code-Editor zu öffnen.

  4. Fügen Sie Code hinzu, um den Synchronisierungsprozess zu starten und anschließend die Tabelle Customers im Dataset erneut zu füllen. Der Code im Ereignishandler sollte dem folgenden entsprechen:

    Hinweis:

    Im nächsten Abschnitt wird die Codezeile erläutert, in der die syncStats-Variable deklariert wird.

    ' 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);
    

Testen der Anwendung

So testen Sie die Anwendung

  1. Drücken Sie F5.

  2. Wenn die Anwendung ausgeführt wird, verwenden Sie den Server-Explorer/Datenbank-Explorer oder ein anderes Tool zur Datenbankverwaltung, um eine Verbindung zur Remoteserver-Datenbank herzustellen und einige Datensätze zu ändern.

    1. Suchen Sie mit dem Server-Explorer/Datenbank-Explorer die Tabelle Customers auf dem Remotedatenbankserver (nicht die Verbindung zu Northwind.sdf).

    2. Klicken Sie mit der rechten Maustaste auf die Tabelle Customers, und klicken Sie auf Tabellendaten anzeigen.

    3. Ändern Sie einen oder mehrere Datensätze, und führen Sie einen Commit für die Änderung aus. (Navigieren Sie weg von der geänderten Zeile.)

  3. Wechseln Sie zum Formular zurück, und klicken Sie auf Jetzt synchronisieren.

  4. Überprüfen Sie, ob die Änderungen an der Remotedatenbank mit der lokalen Datenbank synchronisiert und im Raster angezeigt werden.

  5. Schließen Sie das Formular. (Den Debugvorgang beenden.)

Abrufen von Informationen aus einer Synchronisierung

Wenn Sie die Synchronize-Methode aufrufen, wird nicht nur der Synchronisierungsprozess gestartet. Durch die Synchronize-Methode wird außerdem ein SyncStatistics-Objekt zurückgegeben, von dem aus Sie auf Informationen über die Synchronisierung zugreifen können.

So greifen Sie auf die Synchronisierungsstatistik zu

  • Öffnen Sie im Code-Editor Form1, und fügen Sie im unteren Bereich des SynchronizeButton_Click-Ereignishandlers unter dem in den vorangegangenen Schritten hinzugefügten Code den folgenden Code hinzu:

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

Testen der Anwendung

So testen Sie die Anwendung

  1. Drücken Sie F5.

  2. Wenn die Anwendung ausgeführt wird, verwenden Sie den Server-Explorer/Datenbank-Explorer oder ein anderes Tool zur Datenbankverwaltung, um eine Verbindung zur Remoteserver-Datenbank herzustellen und einige Datensätze zu ändern.

    1. Suchen Sie mit dem Server-Explorer/Datenbank-Explorer die Tabelle Customers auf dem Remotedatenbankserver (nicht die Verbindung zu Northwind.sdf).

    2. Klicken Sie mit der rechten Maustaste auf die Tabelle Customers, und klicken Sie auf Tabellendaten anzeigen.

    3. Ändern Sie einen oder mehrere Datensätze, und führen Sie einen Commit für die Änderung aus. (Navigieren Sie weg von der geänderten Zeile.)

  3. Wechseln Sie zum Formular zurück, und klicken Sie auf Jetzt synchronisieren.

  4. Ein Meldungsfeld wird angezeigt, das Informationen über synchronisierte Datensätze enthält.

  5. Überprüfen Sie, ob die Änderungen an der Remotedatenbank mit der lokalen Datenbank synchronisiert und im Raster angezeigt werden.

Nächste Schritte

Je nach den Anforderungen Ihrer Anwendung können Sie verschiedene Schritte ausführen, nachdem Sie einen Cache für lokale Datenbanken in einer Anwendung konfiguriert haben. Beispielsweise können Sie der Anwendung folgende Erweiterungen hinzufügen:

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Bereitstellen einer gelegentlich verbundenen Clientanwendung mit der lokalen Datenbank

Konzepte

Übersicht über gelegentlich verbundene Anwendungen

SQL Server Compact 3.5 und Visual Studio

Änderungsverlauf

Date

Versionsgeschichte

Grund

Juli 2008

Zusätzlicher Absatz zur Konfiguration der Datensynchronisierung mit dem Assistent zum Konfigurieren von Datenquellen

SP1-Featureänderung.