ASP.net : Web Services

  1. Wat zijn Web Services ?
  2. Basisbegrippen
  3. Een Web Service maken: Publishing
  4. Werking van de Web Service
  5. Een Web Service gebruiken: Consuming
  6. Werken met verschillende datatypes
  7. Toepassing

Wat zijn Web Services ?

Een webservice is een klasse die toestaat dat zijn methoden opgeroepen worden vanuit methoden op ander machines. Voor de overdracht van gegevens worden gewone dataformaten zoals XML en protocollen zoals HTTP gebruikt.

Veelal worden deze cross-netwerk aanroepen gedaan via het Simple Object Access Protocol (SOAP), een XML-gebaseerd protocol dat aangeeft hoe request en response moeten opgemaakt worden voor transfer via HTTP.

Web Services vormen de volgende stap in de object-georiënteerde filosofie: in plaats van software te ontwikkelen vanuit een klein aantal klassenbibliotheken die op één locatie staan, hebben programmeurs toegang tot Web Service klassen die wereldwijd toegankelijk zijn.

Basisbegrippen

Een Web Service is een softwarecomponent, bewaard op een computer, die kan geraadpleegd worden door een applicatie op een andere computer over een netwerk.

De machine die de Web Service huist wordt de Remote Machine genoemd.

Een Web Service maken: Publishing

De Webservice BMI

We maken een eerste webservice: deze service stelt je in staat je lengte en gewicht op te geven en aan de hand hiervoor je Body Mass Index te kennen. Je kan het verkregen getal ook laten evalueren.

Een nieuwe Web Service maken in Visual Studio.Net 2010

Werking van de Web Service

Web Server

Vooreerst geldt de belangrijke opmerking dat het gebruik van de lokale Web Server van Visual Studio toestaat om lokaal met Web Services te testen, maar om een Web Services bruikbaar te maken van buitenaf moet deze gestuurd worden door een Web Server zoals IIS.

Methoden

De methoden in een Web Service die we publiekijk toegankelijk wensen te maken dragen het signatuur [WebMethod].

Webmethoden worden aangeroepen via een Remote Procedure Call (RPC): we roepen een bepaalde functionaliteit aan vanop afstand.

Functionaliteit ontdekken

Om de functionaliteit van een Web Service bloot te geven, bevatten Web Services doorgaans een service description. Dit is een XML-bestand dat conform de Web Service Description Language (WSDL) geschreven is.

WSDL-documenten worden doorgaans niet door ontwikkelaars, maar door applicaties die de service wensen te gebruiken, gelezen.

Wanneer de Web Server een request voor een asmx-bestand ontvangt, genereert deze een testpagina voor de webservice. Vanuit deze pagina kunnen we de functionaliteiten van de Web Service onder de loep nemen.
Via deze pagina's kan je de WSDL-file ook inkijken (Service Description).

SOAP

Het gebruik van deze testpagina's illustreert het gebruik van SOAP requests en responses bij HTTP POST-opdrachten.

SOAP is een platformonafhankelijk protocol dat XML gebruikt om RPC's te maken, standaard over HTTP.
Elk request en response is verpakt in een SOAP-bericht: een XML-bericht met de informatie die de service nodig heeft om het bericht uit te voeren.
Vaak wordt gesproken over een SOAP-enveloppe.

Een Webservice gebruiken: Consuming

Inleiding

Wanneer je rechtstreeks surft naar een asmx-bestand, dan kan je de functionaliteit van een Web Service ontdekken.
Het is echter de bedoeling om deze functionaliteit te gebruiken in je toepassingen: vanuit een applicatie ga je de webmethoden aansturen en de resultaten gebruiken.

Windows Form toepassing

We maken een kleine WinForm toepassing die onze BMI_Service gebruikt:

ASP.Net Web Site

DISCO: DISCOvery of Web Services

In Solution Explorer kan je voor de Web Site zien dat naast wsdl-file nu ook twee extra bestanden werden aangemaakt: een disco en een discomap-file.
Deze twee bestanden zijn gemaakt om clients te wijzen op de locatie van een webservice.

Werken met verschillende datatypes

Een webservice kan verschillende dataypes retourneren en ontvangen. Binnen .Net kan je op een heel eenvoudige manier deze datatypes in een webservive gebruiken:
Type Beschrijving
Primitief datatype Standaard primitieve types: String, Char, Byte, Boolean, Int16, Int32, Int64, UInt16, UInt32, UInt64, Single, Double, Guid, Decimal, DateTime (als XML's timeInstant), DateTime (als XML-date), DateTime (als XML-time), and XmlQualifiedName (als XML-QName).
Enumeratie Enumeratietypes, vb. "public enum color { red=1, blue=2 }"
Arrays van primitieven / Enums Arrays van bovenstaande
Klassen en Structs Class en struct types met publieke variabelen en eigenschappen, deze worden geserialiseerd
Arrays van Klassen en Structs Arrays van bovenstaande
DataSet DataSets, of DataSets voorkomend in velden of eigenschappen van klassen / structs
Arrays van DataSets Arrays van bovenstaande
XmlNode XML-codefragmenten
Arrays van XmlNodes Arrays van bovenstaande

Variabelen, structs, klassen en Arrays

Toepassing

Toepassing: Filmdatabase

Maak een databasegestuurde Web-Applicatie voor het bekijken van de gegevens uit een filmdatabase: Movie.zip

Vereisten:

Meer tutorials:
leer ook: html | xhtml | css | asp | asp.net | c# | ado.net | linq | ajax | java | javascript
Valid HTML 4.01! Valid CSS! © - Cursusweb