Inhalt
Vorwort
1 Wie .NET und ASP.NET funktionieren
2 Installation
3 Hinweise zu VB.NET
4 »Hallo, Welt!« – Ein ASP.NET-Crashkurs
5 Die Page-Klasse
6 HTML-Serversteuerelemente
7 Validierung von Anwendereingaben
8 Webserversteuerelemente
9 Webserversteuerelemente für die Darstellung von Listen
10 Webserversteuerelemente selbst erstellen
11 Der Status von Seiten, Sitzungen und Applikationen
12 ASP.NET und Datenbanken
13 »Wer darf was?« ASP.NET und Sicherheit
14 Webanwendungen erstellen und konfigurieren
15 Leistungssteigerung durch Caching
16 Web Services
A Anhang
Index
Download (ca 14,3 MB)
Buch bestellen (29,90 EUR)
Ihre Meinung?@
<< zurück | Galileo Computing / <openbook> / Einstieg in ASP.NET | vor >>
Einstieg in ASP.NET von Matthias Lohrer
| Kapitel 16 Web Services
|  | 16.1 Wie Web Services funktionieren
|  |  | 16.1.1 Basistechnologie HTTP
|  |  | 16.1.2 Basistechnologie XML
|  |  | 16.1.3 Basistechnologie SOAP
|  |  | 16.1.4 Umdenken beim Entwickeln von Web Services
|  | 16.2 Einen einfachen Web Service erstellen und anbieten
|  |  | 16.2.1 Die Datei webservice01.asmx erstellen
|  |  | 16.2.2 webservice01.asmx im Browser aufrufen
|  | 16.3 Einen Web Service verwenden
|  |  | 16.3.1 Eine Proxyklasse erstellen
|  | 16.4 Einen Web Service mit einem SOAP-Header sichern
|  |  | 16.4.1 Einen passwortgeschützten Web Service erstellen
|  |  | 16.4.2 Die Proxyklasse erzeugen
|  |  | 16.4.3 Den passwortgeschützten Web Service aufrufen
|  |  | 16.4.4 Fazit: Web Services und Sicherheit
|  | 16.5 Ein DataSet-Objekt übertragen
|  |  | 16.5.1 Den Web Service in einer asmx-Datei erstellen
|  |  | 16.5.2 Die Proxyklasse erzeugen
|  | 16.6 Web Services finden
|  |  | 16.6.1 Discovery
|  |  | 16.6.2 UDDI
|  | 16.7 Zusammenfassung und Ausblick
|  |  | 16.7.1 Zusammenfassung
|  |  | 16.7.2 Ausblick
|  |  | 16.7.3 Ressourcen
## 16.2 Einen einfachen Web Service erstellen und anbieten ### 16.2.1 Die Datei webservice01.asmx erstellen Unter ASP.NET deklarieren Sie einen Web Service in einer Datei mit der Namensergänzung asmx. Als einfaches Beispiel soll ein Web Service realisiert werden, der an den Web-Service-Konsumenten den String Hallo zurückgibt. Die Datei webservice01.asmx muss dazu die folgende Form haben.
    <!-- webservice01.asmx -->
    <%@ WebService Language="VB" Class="webservice01"  %>
    Imports System.Web.Services

    <WebService(Description := "Sagt einfach Hallo.", _
     Namespace := "http://mlohrer.de/services")> _
    Public Class webservice01 : Inherits WebService

       <WebMethod(Description := "Sagt Hallo.", _
                  EnableSession := False)> _
       Public Function SagHallo() As String
          Return ("Hallo")
       End Function
    End Class
In diesem kurzen Code-Abschnitt steckt viel Neues. Alle Neuigkeiten sollen Stück für Stück erläutert werden.
    <!-- webservice01.asmx -->
Die erste Zeile besteht wie üblich aus einen Kommentar, der lediglich den Namen der Datei enthält.
    <%@ WebService Language="VB" Class="webservice01"  %>
Die zweite Zeile enthält eine Direktive. Während aspx-Seiten eine @Page-Direktive enthalten, bekommen Web Services an dieser Stelle eine @WebService-Direktive. Das bedeutet: Die Datei webservice01.asmx erbt vom Typ System.Web.Services.WebService. Mit dem Attribut Language="VB" wird die verwendete Sprache festgelegt. Class="webservice01" legt den Namen der Klasse fest, die diese Datei definiert.
    Imports System.Web.Services
Ein Web Service muss den Namespace System.Web.Services importieren.
    <WebService(Description := "Sagt einfach Hallo.", _
     Namespace := "http://mlohrer.de/services")> _
    Public Class webservice01 : Inherits WebService
       ' ...
    End Class
Als Nächstes kann die Klasse selbst deklariert werden. Die Klasse WebService01 erbt von der Basisklasse WebService (Inherits WebService). Ein Web Service muss nicht unbedingt von dieser Klasse erben. Wenn Sie Ihren Web Service aber auf der Klasse WebService aufbauen, haben Sie leichten Zugriff auf häufig benötigte Objekte wie Application, Session, User und Context. Noch vor der Zeile, die mit Public Class beginnt, sehen Sie den Eintrag
    <WebService(Description := "Sagt einfach Hallo.", _
     Namespace := "http://mlohrer.de/services")> _
Beachten Sie die Unterstriche am Ende dieser Zeilen. Das bedeutet, dass diese beiden Zeilen und der Code Public Class ... im Prinzip in die gleiche Zeile gehören und nur aus Gründen der besseren Lesbarkeit ein Umbruch erfolgt. Der Eintrag <WebService ... > wendet das WebService-Attribut auf diese Klasse an. Damit besteht die Möglichkeit, der Klasse eine Beschreibung und einen eindeutigen XML-Namespace zuzuweisen. Wenn Sie Ihren Web Service öffentlich zugänglich machen wollen, benötigt er auf jeden Fall einen eindeutigen Namespace. Sie müssen hier keinen URL angeben, wie es im Beispiel gemacht wird. Es ist aber eine sinnvolle Konvention, weil die Bezeichnung Ihrer eigenen Internetdomäne weltweit einmalig ist. Falls Sie keinen Namespace angeben, verwendet ASP.NET als Voreinstellung den Namespace http://tempuri.org/. Diese Voreinstellung kann während der Entwicklung eines Web Services verwendet werden, muss aber beim praktischen Einsatz unbedingt geändert werden.
    <WebMethod(Description := "Sagt Hallo.", _
               EnableSession := False)> _
    Public Function SagHallo() As String
       Return ("Hallo")
    End Function
Die Klasse definiert die Methode SagHallo(). Diese Methode gibt den String Hallo an den Aufrufer zurück. Sie wird mit dem WebMethod-Attribut ausgezeichnet. Damit weiß ASP.NET, dass diese Methode als Web Service zugänglich gemacht werden soll. ASP.NET macht nur solche Methoden als Web Service zugänglich, die mit dem WebMethod-Attribut ausgezeichnet sind. Für das WebMethod-Attribut wird mit Description := "Sagt Hallo." ebenfalls eine Beschreibung zur Verfügung gestellt und die Option EnableSession wird auf False gesetzt. ### 16.2.2 webservice01.asmx im Browser aufrufen Die einfachste Methode, zu testen, ob ein Web Service funktioniert, besteht darin, die asmx-Datei im Browser aufzurufen. Dabei muss man sich aber klar machen, dass ein Web Service in der Praxis niemals direkt im Browser aufgerufen wird. Nur für den Entwickler ist es sinnvoll, den Web Service direkt im Browser aufzurufen, weil er auf diese Weise leicht und schnell die Funktionsweise testen kann. Abbildung 16.1 zeigt die Darstellung, wenn Sie webservice01.asmx im Browser aufrufen. Hier klicken, um das Bild zu Vergrößern Abbildung 16.1 Wenn man einen Web Service direkt im Browser aufruft, erhält man aussagekräftige Informationen über die angebotenen Dienste. Die Darstellung in Abbildung 16.1 überrascht, weil Sie diese Oberfläche nicht selbst erstellt haben. Diese Seite und einige Folgeseiten generiert ASP.NET automatisch für jeden Web Service. Wenn Sie den Link SagHallo anklicken, sehen Sie, wie ASP.NET diese Methode in den verschiedenen Übertragungsformaten darstellt (siehe Abbildung 16.2). Die Seite zeigt beispielhaft eine Anfrage und eine Antwort in den Formaten SOAP, HTTP-GET und HTTP-POST. Hier klicken, um das Bild zu Vergrößern Abbildung 16.2 ASP.NET dokumentiert automatisch beispielhafte Anfragen und Antworten zu Ihrem Web Service. Die Schaltfläche Aufrufen ermöglicht es Ihnen, den Web Service über die Methode HTTP GET testweise aufzurufen. Anschließend öffnet sich ein neues Browser-Fenster, das die Ausgabe Ihres Web Services anzeigt (siehe Abbildung 16.3). Hier klicken, um das Bild zu Vergrößern Abbildung 16.3 Testweise können Sie den Web Service mit der HTTP-GET-Methode ausführen. Wenn Sie auf der ersten Seite den Link Dienstbeschreibung anklicken, erhalten Sie eine Beschreibung Ihres Web Services im Format der Web Service Description Language WSDL (siehe Abbildung 16.4). Eine solche Beschreibung benötigen Sie, wenn Sie einen Web Service eines anderen Servers nutzen wollen. ASP.NET erzeugt diese Beschreibung automatisch. Den Umgang mit der WSDL lernen Sie in Abschnitt 16.3, Einen Web Service verwenden, kennen. Hier klicken, um das Bild zu Vergrößern Abbildung 16.4 Wenn Sie einen Web Service mit dem Zusatz ?WSDL aufrufen, erhalten Sie die Beschreibung des Dienstes im WSDL-Format. Wie gesagt: Mit diesen automatisch generierten Seiten können Sie als Entwickler testen, ob die Ausgaben Ihren Vorstellungen entsprechen. Web Services werden aber nicht über den Browser genutzt, sondern sie werden direkt von einem Programm aus aufgerufen.
Wichtig Und damit folgt jetzt ein entscheidender Schritt: Schalten Sie im Kopf um von dem Server, auf dem Ihre Datei webservice01.asmx liegt, zu dem zweiten Server, der diesen Service nutzen will. Bis jetzt haben Sie auf dem ersten Server gearbeitet. Ab sofort arbeiten Sie auf dem zweiten Server. Der zweite Server will den webservice01.asmx-Web-Service in seinem Programmcode nutzen. Er will die wichtige Mitteilung, die webservice01.asmx bereithält, bekommen.
Irgendwie muss ein Aufruf von einer Art möglich sein, der im Pseudocode so heißen könnte:
    myVar = webservice01.asmx
Und anschließend soll in myVar der Text Hallo drinstehen. Für die Entwicklung ist es natürlich nicht nötig, dass Sie tatsächlich über zwei Server verfügen. Sie können alles auf einer Maschine unter localhost entwickeln und testen. Für das Verständnis ist es aber unbedingt erforderlich, sich klar zu machen, auf welchem der beiden Server man gerade arbeitet.
<< zurück | <top> | vor >>
Zum Katalog
Einstieg in ASP.NET bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung

.NET-Bibliothek
| Einstieg in VB.NET
| VB.NET
| Einstieg in C#
| Visual C#
| VB.NET und Datenbanken

Empfehlung
| Einstieg in XML

Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

MyGalileo
Der Service für registrierte Leser: Info

Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

[Galileo Computing]
Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de