Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » MobiLink - Serveradministration » MobiLink-Server-APIs » Synchronisationsskripten in .NET erstellen

 

.NET-Synchronisationslogik einrichten

Wenn Sie Synchronisationsskripten in .NET implementieren, müssen Sie MobiLink darüber informieren, wo sich die Pakete, Klassen und Methoden befinden, die in Ihren Assemblies enthalten sind.

♦  So implementieren Sie Synchronisationsskripten in .NET
  1. Erstellen Sie Ihre Klassen. Schreiben Sie für jedes einzelne erforderliche Synchronisationsereignis eine Methode. Diese Methoden müssen öffentlich sein.

    Weitere Hinweise zu Methoden finden Sie unter Methoden.

    Jede Klasse mit nichtstatischen Methoden muss über einen öffentlichen Konstruktor verfügen. Der MobiLink-Server instanziert automatisch jede einzelne Klasse, wenn eine Methode in der betreffenden Klasse zum ersten Mal für eine Verbindung aufgerufen wird.

    Weitere Hinweise finden Sie unter Konstruktoren.

  2. Wählen Sie eine oder mehrere Assemblies. Referenzieren Sie beim Kompilieren die Datei iAnywhere.MobiLink.Script.dll, die ein Repository von API-Klassen des MobiLink-Servers enthält, die in Ihren eigenen .NET-Methoden verwendet werden sollen. iAnywhere.MobiLink.Script.dll befindet sich unter Installationsverzeichnis\Assembly\v2.

    Sie können Ihre Klasse von der Befehlszeile aus kompilieren bzw. Visual Studio oder eine andere .NET-Entwicklungsumgebung verwenden.

    Weitere Hinweise finden Sie unter MobiLink-Server - API für .NET.

  3. Kompilieren Sie Ihr Projekt.

    So kompilieren Sie beispielsweise von Visual Studio aus:

    1. Wählen Sie im VS.NET Projektmenü die Option Vorhandenes Element hinzufügen.

    2. Suchen Sie die Datei iAnywhere.MobiLink.Script.dll.

      In der Liste Offen wählen Sie Datei verknüpfen.

      Hinweis

      Verwenden Sie für Visual Studio immer die Dateiverknüpfungsmethode. Verwenden Sie nicht die Option "Verweis hinzufügen", um iAnywhere.MobiLink.Script.dll zu referenzieren. Die Option "Verweis hinzufügen" dupliziert die Datei iAnywhere.MobiLink.Script.dll im physischen Verzeichnis Ihrer Klassen-Assembly, wodurch Probleme für den MobiLink-Server entstehen.

    3. Verwenden Sie das Menü Erstellen, um Ihr Assembly zu erstellen.

    Sie können auch wie nachfolgend beschrieben über die Befehlszeile kompilieren:

    Ersetzen Sie dll-Pfad mit dem Pfad zur Datei iAnywhere.MobiLink.Script.dll, z.B. in C#:

    csc /out:dll-Pfadout.dll /target:library /reference:dll-PfadiAnywhere.MobiLink.Script.dll sync_v1.cs
  4. In den MobiLink-Systemtabellen Ihrer konsolidierten Datenbank geben Sie für jedes einzelne Skript den Namen des aufzurufenden Pakets, der Klasse und der Methode an. Pro Skriptversion ist nicht mehr als eine Klasse zulässig.

    Sie können diese Angaben beispielsweise mit der gespeicherten Prozedur ml_add_dnet_connection_script oder ml_add_dnet_table_script in die MobiLink-Systemtabellen einfügen. Wenn die nachfolgende SQL-Anweisung in einer SQL Anywhere-Datenbank ausgeführt wird, legt sie fest, dass myNamespace.myClass.myMethod immer dann ausgeführt werden soll, wenn auf Verbindungsebene das Ereignis authenticate_user eintritt.

    CALL ml_add_dnet_connection_script( 
        'version1',
        'authenicate_user', 
        'myNamespace.myClass.myMethod'
    )
    Hinweis

    Der vollständig angegebene Methodenname berücksichtigt die Groß- und Kleinschreibung.

    Dieser Prozeduraufruf bewirkt, dass die Spalte script_language in der Systemtabelle ml_script das Wort dnet enthalten muss. Die Skriptspalte enthält den qualifizierten Namen einer öffentlichen .NET-Methode.

    Weitere Hinweise finden Sie unter ml_add_dnet_connection_script-Systemprozedur und ml_add_dnet_table_script-Systemprozedur.

    Es besteht außerdem die Möglichkeit, diese Angaben mit Sybase Central hinzuzufügen.

    Weitere Hinweise finden Sie unter Skripten hinzufügen oder löschen.

  5. Weisen Sie den MobiLink-Server an, Assemblies zu laden und den CLR zu starten. Sie informieren MobiLink mit Optionen in der mlsrv11-Befehlszeile darüber, wo sich diese Assemblies befinden. Sie können zwischen zwei Optionen wählen:

    • -sl dnet verwenden ( -MLAutoLoadPath )   Hiermit setzen Sie den Pfad auf das Stammverzeichnis der Anwendung und laden alle privaten Assemblies aus diesem Verzeichnis. Diese Option wird in den meisten Fällen verwendet. Um z.B. alle Assemblies in den dll-Pfad zu laden, geben Sie Folgendes ein:
      mlsrv11 -c "dsn=consolidated1" -sl dnet(-MLAutoLoadPath=dll-Pfad)

      Wenn Sie die Option -MLAutoLoadPath verwenden, können Sie im Ereignisskript bei der Eingabe eines voll qualifizierten Methodennamens keine Domäne angeben.

      Weitere Hinweise finden Sie unter Assemblies laden und Option -sl dnet.

    • -sl dnet verwenden ( -MLDomConfigFile )   Diese Option erfordert eine Konfigurationsdatei, die Domänen- und Assembly-Einstellungen enthält. Verwenden Sie diese Option, wenn Sie gemeinsam verwendete Assemblies verwenden und nicht alle Assemblies in ein Verzeichnis laden wollen oder wenn Sie aus irgendeinem anderen Grund eine Konfigurationsdatei verwenden müssen.

      Weitere Hinweise zum Laden von gemeinsam verwendeten Assemblies finden Sie unter Assemblies laden. Weitere Hinweise zur mlsrv11-Option -sl dnet finden Sie unter Option -sl dnet.

      Hinweis

      Sie können die Option -MLAutoLoadPath oder -MLDomConfigFile verwenden, aber nicht beide.