Entwurfsrichtlinien für mit ASP.NET erstellte XML-Webdienste

Webdienste sind eine leistungsstarke Technologie zum Bereitstellen von Diensten, auf die über das Internet programmgesteuert zugegriffen werden kann. Die folgenden Empfehlungen sind bei der Erstellung guter Webdienste hilfreich:

  • Webdienste unterstützen sowohl synchrone als auch asynchrone Kommunikation zwischen dem Client und dem Server, der den Webdienst hostet. Bei der synchronen Kommunikation sendet der Client eine Anforderungen für einen Dienst an den Hostserver des Diensts und wartet auf die Antwort. Dies verhindert, dass der Client beim Warten auf die Ergebnisse andere Vorgänge ausführt. Die asynchrone Kommunikation veranlasst den Client jedoch dazu, andere Aufgaben weiter zu verarbeiten, während er auf eine Antwort wartet. Der Client reagiert auf das Ergebnis der Dienstanforderung, wenn dieses verfügbar wird.

    Wenn Sie das Web Services Description Language-Tool (Wsdl.exe) zum Erstellen der Proxyklasse verwenden, generiert es die synchronen Standardversionen und die asynchronen Standardversionen der Methoden in der Klasse. Die asynchronen Versionen bestehen aus zwei Methoden mit dem Namen Begin und End. Die Begin-Methode wird verwendet, um den Webdienst zu initiieren, während die End-Methode die Ergebnisse abruft.

    Die Verwendung der asynchronen Kommunikation verbessert die Systemnutzung und verhindert Verzögerungen auf dem Client, während dieser auf die Ergebnisse des Webdiensts wartet.

    Ein Codebeispiel finden Sie unter "Gewusst wie: Ausführen eines asynchronen Aufrufs von einem Webdienstclient". Weitere Informationen über die asynchrone Kommunikation finden Sie unter Asynchrones Kommunizieren mit XML-Webdiensten.

  • Das Ausführen zahlreicher Dienstanforderungen über das Internet kann sich auf die Leistung der Clientanwendung auswirken. Nutzen Sie Dienstanforderungen beim Entwerfen des Webdiensts auf effiziente Weise, indem Sie Methoden erstellen, die zusammengehörende Informationen gruppieren. Angenommen, Sie haben einen Webdienst, der Informationen über ein Buch abruft. Erstellen Sie statt separater Methoden zum Abrufen von Buchtitel, Autor und Herausgeber eine Methode, die alle diese Informationen in einer Dienstanforderung zurückgibt. Die Übertragung eines großen Informationsblocks ist effizienter als die Übertragung mehrerer kleinerer Informationsblöcke.

  • Ein Codebeispiel finden Sie unter "Gewusst wie: Gruppieren zugehöriger Informationen in eine einzelne Webdienstmethode". Stellen Sie beim Entwerfen des Webdiensts sicher, dass Sie Standardverfahren der objektorientierten Programmierung verwenden. Verwenden Sie Kapselung, um Implementierungsdetails auszublenden. Für komplexere Webdienste können Sie Vererbung und Polymorphie nutzen, um Code wieder zu verwenden und den Entwurf zu vereinfachen.

  • Ein Codebeispiel finden Sie unter "Gewusst Wie: Verwenden von Vererbung in einem Webdienst". Verwenden Sie Ausgabecaching, um die Leistung des Webdiensts zu verbessern. Wenn das Ausgabecaching aktiviert ist, werden die Ergebnisse einer Dienstanforderung über einen angegebenen Zeitraum im Ausgabecache gespeichert. Wenn eine ähnliche Webdienstanforderung ausgeführt wird, muss das Ergebnis nicht erneut berechnet, sondern kann aus dem Cache abgerufen werden. Durch eine Reduktion der vom Webdienstserver erforderlichen Verarbeitung wird die Reaktionszeit des Webdiensts damit verbessert. Caching kann sowohl auf dem Client als auch auf dem Server ausgeführt werden. Mit der Duration-Eigenschaft können Sie angeben, wie lange die Ausgabe eines Webdiensts zwischengespeichert werden soll.

    Die Direktive zum Aktivieren des Ausgabecachings auf dem Client ist:

    <%@ OutputCache Duration="60" %>
    For a code example, see How to: Enable Output Caching on a Web Service Client.You can also use the CacheDuration property of the WebMethod attribute class to enable caching on the server. For a code example, see How to: Enable Server-Side Output Caching for a Web Service.
    
  • Versuchen Sie beim Entwerfen des Webdiensts, der Struktur einer Schemaformatierung zu folgen.

  • Webdienste verwenden SOAP als primäres Übertragungs- und Serialisierungsprotokoll. Eine SOAP-Nachricht besteht aus einer optionalen Gruppe von Headern und dem Nachrichtentext. Der Headerabschnitt enthält Informationen, die von der Infrastruktur auf dem Webserver verarbeitet werden können. SOAP definiert keine Header. Der Textabschnitt enthält von einer Anwendung verarbeitete Informationen, z. B. die Parameter oder den Rückgabewert für einen Webdienst.

    Weitere Informationen über die Verwendung von SOAP-Headern finden Sie unter Verwenden von SOAP-Headern.

  • Stellen Sie Dokumentation für den Webdienst bereit, z. B. eine statische HTML-Datei, die den Vorgang des Diensts und die Datenstrukturen beschreibt. Fügen Sie außerdem Beispiele über die Verwendung des Webdiensts ein. Verlassen Sie sich nicht auf die Dienstbeschreibung oder die Diensthilfeseite als einzige Dokumentation.

Siehe auch

Aufgaben

Gewusst wie: Ausführen eines asynchronen Aufrufs von einem Webdienstclient
Gewusst wie: Gruppieren zugehöriger Informationen in einer Webdienstmethode
Gewusst wie: Verwenden der Vererbung in einem Webdienst
Gewusst wie: Aktivieren der Ausgabezwischenspeicherung auf einem Webdienstclient
Gewusst wie: Aktivieren der serverseitigem Ausgabezwischenspeicherung für einen Webdienst

Konzepte

Asynchrones Kommunizieren mit XML-Webdiensten

Weitere Ressourcen

XML-Webdienste, die ASP.NET verwenden
Verwenden von SOAP-Headern

Footer image

Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.