Les nouveautés apportées
par .NET dans le monde du développement Microsoft permettent
de construire rapidement des applications fonctionnelles, simplement
en passant par les briques offertes par le framework. Il en
est de même pour les services Web : les construire en ASP "classique"
pouvait se révéler long et douloureux, tandis que quelques
lignes suffisent pour construire et consommer un service dès
que l'on passe par ASP.NET, quel que soit le langage.
Première approche
A la différence d'une page ASP.NET classique (.aspx),
un service Web ne contient (la plupart du temps) que le code nécessaire
au renvoi de l'information réclamée par l'application
qui le consomme. Ce code se limite à la classe associée
au service, ainsi que d'au moins une directive, qui se chargera
d'accomplir la tâche demandée.
Pour les différencier des pages
dynamiques classiques, les services Web par ASP.NET présentent
quelques autres spécificités :
- l'entête précise qu'il s'agit d'un service Web, là
où en ASP on mentionne qu'il s'agit d'un Page
:
<%@ WebService Language="vb"
Class="MettreAJourBase" %>
- l'extension du fichier est .asmx
- Chaque directive est précédée d'un attribut
WebMethod :
En C# : [WebMethod]
En VB.NET : <WebMethod>
Le reste tient du code habituel : appel
d'assemblage(s), déclaration public...
A partir de là, l'écriture du service est rapide :
<%@
WebService language="c#" class="MaDate" %>
using System;
using System.Web.Services;
using Sytem.DateTime;
public class MaDate
{
[WebMethod]
public string ObtenirDate()
{
return Now.ToString();
}
}
Toutes les fonctions sont ensuite possibles
au sein de notre WebMethod : appel à la base de données,
calculs...
Mais quid de l'implémentation du protocole SOAP, du renvoi
en XML, du contrat WSDL ? Tout ceci est pris en compte par le CLR
(le "coeur" de .NET) à partir du moment où
vous lui indiquez qu'il a affaire à un Web Service, l'encapsulation
SOAP tout comme l'intégration dans un message XML. Pour ce
qui est de WSDL, il est disponible simplement en ajoutant l'appel
à la fin de l'appel du fichier : http://localhost/MaDate.asmx?WSDL.
Nous compliquerons la chose et verrons
comment consommer un service Web dans un prochain article ASP.NET.
|