Bevor Sie .NET mit QAnywhere verwenden, müssen Sie die folgenden Änderungen in Ihrem Visual Studio-Projekt durchführen:
Fügen Sie Referenzen der QAnywhere .NET-DLL und der .NET-DLL für mobile Webdienste hinzu. Damit wird Visual Studio mitgeteilt, welche DLL einzubeziehen ist, um den Programmcode für die QAnywhere .NET-API und die .NET-API für mobile Webdienste zu finden.
Fügen Sie Ihrem Quelltext Programmzeilen zur Referenzierung der QAnywhere .NET API-Klassen und der .NET API-Klassen für mobile Anwendungen hinzu. Um die QAnywhere .NET-API verwenden zu können, müssen Sie eine Zeile in Ihren Quellcode einfügen, die auf den Datenprovider verweist. Bei C# müssen Sie eine andere Zeile einfügen als bei Visual Basic.
Ausführliche Anweisungen finden Sie weiter unten.
Starten Sie Visual Studio und öffnen Sie Ihr Projekt.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Ordner Verweise und wählen Sie Verweis hinzufügen.
Im Register Durchsuchen ermitteln Sie den Speicherort von iAnywhere.QAnywhere.Client.dll und iAnywhere.QAnywhere.WS.dll. in den folgenden Verzeichnissen:
Wählen Sie im Verzeichnis für Ihre Umgebung die gewünschten DLLs aus und klicken auf Öffnen.
Um zu überprüfen, dass die DLLs Ihrem Projekt hinzugefügt wurden, erweitern Sie die Struktur Verweise im Projektmappen-Explorer. iAnywhere.QAnywhere.Client.dll und iAnywhere.QAnywhere.WS.dll sollten in der Liste erscheinen.
Starten Sie Visual Studio und öffnen Sie Ihr Projekt.
Wenn Sie C# verwenden, fügen Sie in die Liste der using-Direktiven am Beginn Ihrer Datei folgende Zeilen ein:
using iAnywhere.QAnywhere.Client; using iAnywhere.QAnywhere.WS; |
Wenn Sie Visual Basic verwenden, fügen Sie in die Liste der Importe am Beginn Ihrer Datei folgende Zeilen ein:
Imports iAnywhere.QAnywhere.Client Imports iAnywhere.QAnywhere.WS |
Die "Imports"-Zeilen sind nicht zwingend vorgeschrieben. Allerdings können Sie damit für die QAnywhere-Klassen Kurzformen verwenden. Wenn diese Zeilen nicht vorhanden sind, können Sie den voll qualifizierten Klassennamen in Ihrem Programmcode verwenden. Der folgende Code benutzt beispielsweise die Langform:
iAnywhere.QAnywhere.Client.QAManager mgr = new iAnywhere.QAnywhere.Client.QAManagerFactory.Instance.CreateQAManager( "qa_manager.props" ); |
Der folgende Code benutzt die Kurzformen:
QAManager mgr = QAManagerFactory.Instance.CreateQAManager( "qa_manager.props" ); |
Integrieren Sie den iAnywhere.QAnywhere.Client- und iAnywhere.QAnywhere.WS-Namespace als Include, wie in der vorherigen Prozedur beschrieben.
using iAnywhere.QAnywhere.Client; using iAnywhere.QAnywhere.WS; |
Erstellen Sie ein QAManager-Objekt.
Beispiel: Um ein Standard-QAManager-Objekt zu erstellen, rufen Sie CreateQAManager mit "null" als Parameter auf:
QAManager mgr; mgr = QAManagerFactory.Instance.CreateQAManager( null ); |
Um hohe Parallelität zu gewährleisten, sollten Multi-Thread-Anwendungen einen QAManager für jeden Thread erstellen. Weitere Hinweise finden Sie unter Hinweise zu Multi-Threading.
Weitere Informationen zu QAManagerFactory finden Sie unter QAManagerFactory-Klasse.
Als Alternative können Sie ein QAManager-Objekt erstellen, das unter Verwendung einer Eigenschaftsdatei angepasst wird. Die Eigenschaftsdatei wird in der CreateQAManager-Methode angegeben:
mgr = QAManagerFactory.Instance.CreateQAManager( "qa_mgr.props" ); |
Dabei gilt: qa_mgr.props ist der Name der Eigenschaftsdatei auf dem entfernten Gerät.
Initialisieren Sie das QAManager-Objekt. Zum Beispiel:
mgr.Open( AcknowledgementMode.EXPLICIT_ACKNOWLEDGEMENT); |
Das Argument für die open-Methode ist ein Bestätigungsmodus, der festlegt, wie die Nachrichten bestätigt werden sollen. Das Argument muss IMPLICIT_ACKNOWLEDGEMENT oder EXPLICIT_ACKNOWLEDGEMENT sein.
QAnywhere-Nachrichten, die von mobilen Webdiensten verwendet werden, stehen der Anwendung für mobile Webdienste nicht direkt zur Verfügung. Wenn Sie einen QAManager im EXPLICIT_ACKNOWLEDGEMENT-Modus verwenden, benutzen Sie die Acknowledge-Methode von WSResult, um die QAnywhere-Nachricht zu bestätigen, die das Ergebnis einer Webdienstanforderung enthält. Diese Methode zeigt an, dass die Anwendung die Antwort erfolgreich verarbeitet hat.
Weitere Informationen zu Bestätigungsmodi finden Sie unter:
Anstatt eines QAManagers können Sie einen QATransactionalManager erstellen. Weitere Hinweise finden Sie unter Transaktionales Messaging für .NET-Clients implementieren.
Erstellen Sie eine Instanz der Dienstbindungsklasse.
Der WSDL-Compiler für mobile Webdienste generiert die Dienstbindungsklasse aus dem WSDL-Dokument, das den Webdienst definiert.
Der QAManager wird von der Instanz der Webdienst-Bindungsklasse benutzt, um Nachrichtenvermittlungsvorgänge im Verlauf der Durchführung von Webdienstanforderungen abzuwickeln. Sie legen die Konnektoradresse fest, die verwendet werden soll, um Webdienstanforderungen über QAnywhere zu verwenden, indem Sie die Eigenschaft WS_CONNECTOR_ADDRESS der Dienstbindungsklasse einstellen. Sie konfigurieren jeden QAnywhere-Webdienstkonnektor mit der URL-Adresse eines Webdienstes, mit dem die Verbindung hergestellt werden soll, und wenn eine Anwendung Webdienste benötigt, die an mehr als einer URL-Adresse liegen, konfigurieren Sie den Konnektor für jede URL-Adresse.
Zum Beispiel:
CurrencyConverterSoap service = new CurrencyConverterSoap( ) service.SetQAManager(mgr); service.setProperty( "WS_CONNECTOR_ADDRESS", "ianywhere.connector.currencyconvertor\\"); |
Beachten Sie, dass zwei Backslashes am Ende der Adresse (\\) gesetzt werden müssen.
Um mobile Webdienste zu initialisieren, müssen Sie ein QAManager-Objekt und eine Instanz der Dienstbindungsklasse erstellen. Zum Beispiel:
// QAnywhere initialization QAManager mgr = QAManagerFactory.Instance.CreateQAManager( null ); mgr.SetProperty( "CONNECT_PARAMS", "eng=qanywhere;dbf=qanywhere.db;uid=ml_qa_user;pwd=qanywhere" ); mgr.Open( AcknowledgementMode.IMPLICIT_ACKNOWLEDGEMENT ); mgr.Start(); // Instantiate the web service proxy CurrencyConvertorSoap service = new CurrencyConvertorSoap(); service.SetQAManager( mgr ); service.SetProperty( "WS_CONNECTOR_ADDRESS", "ianywhere.connector.currencyconvertor\\" ); |
Die Antwortzeit des CurrencyConvertor-Beispiels hängt von der Verfügbarkeit des Webdiensts ab. Asynchrone Webdienst-Anforderungen sind nützlich, wenn die mobile Webdienst-Anwendung nicht immer verfügbar ist. Bei dieser Methode erfolgt eine Webdienstanforderung durch den Aufruf einer Methode in der Dienstbindungsklasse, um die Anforderung in eine ausgehende Warteschlange zu stellen. Die Methode gibt ein WSResult zurück, das benutzt werden kann, um den Status der Antwort zu einem späteren Zeitpunkt abzurufen, auch nachdem die Anwendung neu gestartet wurde. Weitere Hinweise finden Sie unter Asynchrone Webdienstanforderungen.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |