Vorgestern gab es ein Tutorial, wie man einen WebService mit PHP erstellt. Heute werde ich den gleichen WebService in ASP.net erstellen. So das ihr einmal ein wenig vergleichen könnt. Eins kann ich schonmal vorwegsagen: Es ist um einiges leichter.
WebService anlgen
Um den WebService zu schreiben benutze ich Visual Studio 2005. Dort kann man auf Datei->Neu->Website gehen, um die möglichen ASP.net Projekte erstellen. Bei uns handelt es sich um einen ASP.net-Webdienst:
Nun haben wir bereits mehrere Dateien erstellt bekommen:
- Service.vb – beinhaltet den auszuführenden Code (also die Funktion Add)
- Service.asmx – beinhaltet die Math Dateieigenschaften
- Web.Config – beihnaltet die Projekteigenschaften.
Klassen & Dateien umbenennen
Wir wollen unseren Service ja nicht Service nennen, sondern Math. Hierzu müssen wir als erstes die Dateien Service.vb und Service.asmx nach Math.vb und Math.asmx umbenennen.
Nun öffnen wir die Math.vb und ersetzten
Public Class Service
durch
Public Class Math
Nun fehlt noch die Einstellung in der Datei Math.asmx. Hier muss ein Dateiname und Klassenname umbenannt werden:
<%@ WebService Language="vb" CodeBehind="~/App_Code/Math.vb" Class="Math" %>
Die Funktion Add
Wie in unserem PHP Beispiel wollen wir eine Methode namens Add erstellen, welche zwei Zahlen addiert. Zum Anfang steht in der Math.vb eine Methode namens Hello World. Diese ersetzten wir durch die Add Funktion. Ich werde den Aufbau mal etwas genauer erklären, da soweit ich weiß eine Vielzahl der Leser noch keine Erfahrungen im .Net gesammelt haben. Als erstes ist hier mal der Code der Add Methode:
<WebMethod()> _ Public Function Add(ByVal a As Integer, ByVal b As Integer) As Integer Return a + b End Function
Das WebMethod-Attribut ganz am Anfang der Funktion gibt an, dass es sich bei der Methode um eine Methode des WebServices handelt.
Mit Public Function wird eine öffentliche Funktion erstellt. Darauf folgt dann der Name der FUnktion, also Add. Mit dem Byval kann man einen Parameter deklarieren. Am Ende der Zeile steht ein “as Integer”. Es gibt an, dass der Rückgabe typ numerisch ist.
Return gibt wie in PHP auch den Wert zurück.
Mit dem End Function wird die Funktion abgeschlossen.
Namespace ändern
In PHP haben wir den Namespace auf http://temp.stevieswebsite.de gelegt. Das wollen wir hier wieder. Dazu gibt es in ASP das Attribut WebService, was als Parameter die Url benötigt. Hier ist nochmal der komplette Code:
Imports System.Web Imports System.Web.Services Imports System.Web.Services.Protocols <WebService(Namespace:="http://temp.stevieswebsite.de")> _ <WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _ <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Public Class Math Inherits System.Web.Services.WebService <WebMethod()> _ Public Function Add(ByVal a As Integer, ByVal b As Integer) As Integer Return a + b End Function End Class
WebService testen
Das wars auch schon mit dem Erstellen. Ist doch ganz einfach, oder? Jetzt kommen wir zum testen. Dies kann auch direkt im Visual Studio geschehen. Dazu müssen wir einfach F5 drücken, was das Debuggen startet. Es öffnet sich der IE und mit der folgenden Seite:
Wenn wir nun auf das Add Klicken, können wir den WebService testen:
Hier können wir nun einfach unsere Testdaten in die Textboxen eingeben und auf “Aufrufen” klicken, um das Ergebnis zurückzubekommen.



5. Mai 2011 @ 12:15
Hallo, kann man den Webservie nicht auch mit einen Script Manager und einen Attribut nicht auch für AJAX Benutzen, oder ist dass nicht eigendlich AJAX??
5. Mai 2011 @ 17:02
Diese Art von Webservices sind nicht dazu gedacht, über AJAX und allgemein über den Browser darauf zuzugreifen. Vielmehr geht es darum, Dienste für andere Server, Desktop-Anwendungen oder Apps zur Verfügung zu stellen.
2. Dezember 2011 @ 09:45
Kompliment für Anfänger gut erklärt. Kurz und bündig … Klasse