Programmieren von allgemeinen Client- und Serversynchronisierungsaufgaben
In den folgenden Themen dieses Abschnitts finden Sie Hintergrundinformationen, Anweisungen und vollständige Codebeispiele für allgemeine Client- und Serversynchronisierungsaufgaben, die Sie mit Sync Framework ausführen können. Es ist ratsam, zunächst das Gewusst-wie-Thema zur Änderungsnachverfolgung in der Serverdatenbank und anschließend mindestens eines der Themen zur Synchronisierungsrichtung zu lesen, bevor Sie sich mit den anderen Themen beschäftigen.
Inhalt dieses Abschnitts
-
Vorgehensweise: Herunterladen einer Momentaufnahme der Daten auf einen Client
Vorgehensweise: Herunterladen inkrementeller Datenänderungen auf einen Client
Vorgehensweise: Hochladen inkrementeller Datenänderungen auf einen Server
Vorgehensweise: Bidirektionaler Austausch inkrementeller Datenänderungen zwischen Client und Server
Vorgehensweise: Initialisieren der Clientdatenbank und Arbeiten mit dem Tabellenschema
Vorgehensweise: Arbeiten mit Ereignissen und Programmgeschäftslogik
Vorgehensweise: Angeben der Reihenfolge und der Batchgröße von Änderungen
Vorgehensweise: Konfigurieren der Synchronisierung für ein Gerät
Vorgehensweise: Ablaufverfolgung des Synchronisierungsvorgangs
Beispielanwendungen in den Themen zur Vorgehensweise
Jedes Gewusst-wie-Thema enthält mindestens eine Konsolenanwendung. Diese Anwendung ist sowohl in C# als auch in Visual Basic geschrieben und veranschaulicht bestimmte API-Funktionen. Alle Anwendungen enthalten den Code für das einmalige Synchronisieren, für das Ändern des Clients bzw. des Servers und für das anschließende erneute Synchronisieren. Es geht zwar schneller, nur Codebeispiele für eine bestimmte Aufgabe oder eine bestimmte Funktion zu demonstrieren, Sie verstehen jedoch viel einfacher, wie Sync Framework funktioniert, wenn Sie eine konkrete Funktion in ihrem vollständigen Kontext erleben.
Jede Anwendung enthält die folgenden Klassen sowie andere Klassen, die für die beschriebenen Funktionen relevant sind:
Program
Diese Klasse richtet die Synchronisierung ein und ruft Methoden aus derUtility
-Klasse auf. DieUtility
-Klasse behandelt alle Funktionen, die nicht direkt mit der Synchronisierung zusammenhängen, z. B. das Aufbewahren von Verbindungszeichenfolgeinformationen und das Ändern von Einträgen in den Server- und Clientdatenbanken.SampleSyncAgent
Diese Klasse wird vom SyncAgent abgeleitet.SampleServerSyncProvider
Diese Klasse wird vom DbServerSyncProvider abgeleitet. In den Beispielen, in denen die Serveranbieterbefehle relevant sind, werden die Befehle manuell angegeben. In anderen Fällen wird die SqlSyncAdapterBuilder-Klasse verwendet, da damit weniger Code erforderlich ist. Weitere Informationen zu den Serveranbieterbefehlen finden Sie unter Vorgehensweise: Angeben der Synchronisierungsart (Momentaufnahmen-, Nur-Download-, Nur-Upload- oder bidirektionale Synchronisierung).SampleClientSyncProvider
Diese Klasse wird vom SqlCeClientSyncProvider abgeleitet.
Alle vollständigen Anwendungen basieren auf der 2-Ebenen-Architektur. Damit wird vermieden, dass für die Ausführung der Anwendungen ein Dienst verwendet werden muss. Der Code ist aber in separate Klassen unterteilt, sodass es einfacher ist zu erkennen, wie der Code auf n-Ebenen-Szenarien anzuwenden ist. Weitere Informationen über n-Ebenen-Anwendungen finden Sie unter Vorgehensweise: Konfigurieren der n-Ebenen-Synchronisierung.
Der Code für alle Anwendungen wurde mit Visual Studio 2008, SQL Server Compact Service Pack 1, SQL Server 2005 Service Pack 2 und SQL Server 2008 getestet.
So führen Sie die einzelnen Anwendungen aus
Führen Sie das Transact-SQL-Skript "Benutzerdefinierte Änderungsnachverfolgung für Offlineszenarien" in Setupskripts für Datenbankanbieter - Themen zur Vorgehensweise aus. Dieses Skript erstellt eine Datenbank, einen Satz von Tabellen und Triggern und einen Satz gespeicherter Prozeduren. Verwenden Sie die gespeicherte Prozedur
usp_InsertSampleData
, wenn Sie Beispieldaten löschen und wieder einfügen möchten.Kopieren Sie den Code der
Utility
-Klasse aus 'Utility'-Klasse für Datenbankanbieter - Themen zur Vorgehensweise. Fügen Sie diesen Code in jede Anwendung ein, die Sie ausführen möchten, oder erstellen Sie eine DLL aus dem Code, und verweisen Sie in jeder Anwendung auf diese DLL.Fügen Sie Verweise auf die folgenden DLLs hinzu:
Microsoft.Synchronization.dll
Microsoft.Synchronization.Data.dll
Microsoft.Synchronization.Data.Server.dll
Microsoft.Synchronization.Data.SqlServerCe.dll
System.Data.SqlServerCe.dll