Professional Documents
Culture Documents
et création de services
Web XML
Table des matières
Vue d'ensemble 1
Leçon : Présentation des services
Web XML 2
Leçon : Appel d'un service Web XML
à l'aide de HTTP TP 13
Leçon : Utilisation d'un proxy pour
appeler un service Web XML 18
Leçon : Création d'un service Web XML 30
Contrôle des acquis 40
Atelier 13 : Utilisation et création de
services Web XML 42
Les informations contenues dans ce document, y compris les adresses URL et les références à des
sites Web Internet, pourront faire l'objet de modifications sans préavis. Sauf mention contraire, les
sociétés, les produits, les noms de domaine, les adresses de messagerie, les logos, les personnes,
les lieux et les événements utilisés dans les exemples sont fictifs et toute ressemblance avec des
sociétés, produits, noms de domaine, adresses de messagerie, logos, personnes, lieux et
événements existants ou ayant existé serait purement fortuite. L'utilisateur est tenu d'observer la
réglementation relative aux droits d'auteur applicable dans son pays. Sans limitation des droits
d'auteur, aucune partie de ce manuel ne peut être reproduite, stockée ou introduite dans un système
d'extraction, ou transmise à quelque fin ou par quelque moyen que ce soit (électronique,
mécanique, photocopie, enregistrement ou autre), sans la permission expresse et écrite de
Microsoft Corporation.
Les produits mentionnés dans ce document peuvent faire l'objet de brevets, de dépôts de brevets en
cours, de marques, de droits d'auteur ou d'autres droits de propriété intellectuelle et industrielle de
Microsoft. Sauf stipulation expresse contraire d'un contrat de licence écrit de Microsoft, la
fourniture de ce document n'a pas pour effet de vous concéder une licence sur ces brevets,
marques, droits d'auteur ou autres droits de propriété intellectuelle.
Microsoft, MS-DOS, Windows, Windows NT, Active Directory, ActiveX, BizTalk, Hotmail,
IntelliSense, Jscript, MSN, MSDN, PowerPoint, Visio, Visual Basic, Visual C++, Visual C#,
Visual J#, Visual Studio, Win32 et Windows Media sont soit des marques déposées de Microsoft
Corporation, soit des marques de Microsoft Corporation, aux États-Unis d'Amérique et/ou dans
d'autres pays.
Les autres noms de produit et de société mentionnés dans ce document sont des marques de leurs
propriétaires respectifs.
Module 13 : Utilisation et création de services Web XML 1
Vue d'ensemble
Introduction L'un des enjeux auquel vous pouvez être confronté lors de la création de sites
Web riches en fonctionnalités est l'intégration d'applications. Il est en effet
fréquent d'avoir à regrouper de nombreuses applications dans une solution
unique et conviviale. Le problème pour y parvenir est que les applications à
réunir se trouvent souvent sur une multitude de plates-formes exécutant
chacune des systèmes d'exploitation distincts. En outre, les applications sont
souvent écrites dans des langages de programmation différents.
Les services Web offrent un modèle normalisé simple et souple pour relier des
applications entre elles via Internet. Ils vous permettent également de tirer parti
de l'infrastructure Internet existante et de lier des applications, quelles que
soient les plates-formes, les langages de programmation ou les modèles d'objets
qui ont servi à les implémenter.
Dans cette leçon, vous découvrirez l'objectif, et le processus sous-jacent,
d'appel d'un service Web XML à partir d'un formulaire Web.
Objectifs de la leçon À la fin de cette leçon, vous serez à même d'effectuer les tâches suivantes :
! définir un service Web XML ;
! expliquer l'utilité des services Web XML pour les développeurs
d'applications Web ;
! décrire le moyen de trouver les services Web XML existants ;
! identifier le processus d'intégration des services Web XML dans les sites
Web.
Module 13 : Utilisation et création de services Web XML 3
Introduction À l'instar des composants, les services Web XML représentent des
fonctionnalités de boîte noire que les utilisateurs peuvent utiliser pour ajouter
des fonctionnalités dans un formulaire Web, des applications Microsoft
Windows®, voire un autre service Web XML, sans se préoccuper de la façon
dont le service de support doit être implémenté.
Communication entre Les services Web XML sont conçus pour interagir directement avec d'autres
deux applications sur applications sur Internet. Ils n'ont donc pas d'interface utilisateur. En revanche,
Internet ils disposent d'interfaces standard définies, appelées contrats, qui décrivent les
services fournis.
Un service Web XML peut être utilisé en interne par une seule application ou
en externe par de nombreuses applications qui y accèdent via Internet.
Indépendant des Il est possible d'écrire une connexion à un service Web XML dans l'importe
langages quel langage de programmation basé sur Microsoft .NET. Du fait de cette
souplesse, il n'est pas nécessaire d'apprendre un nouveau langage à chaque
utilisation d'un service Web XML.
Indépendant des À la différence des technologies actuelles fondées sur les composants, les
protocoles services Web XML n'utilisent pas de protocoles spécifiques à certains modèles
objet comme DCOM (Distributed Component Object Model). Ils
communiquent avec des protocoles Web et des formats de données standard tels
que HTTP, XML et SOAP (Simple Object Access Protocol). Tout serveur
prenant en charge ces standards Web peut accéder aux services Web XML ou
les héberger.
Indépendant des Dans la mesure où les services Web XML sont accessibles via une interface
plates-formes standard, ils permettent à des systèmes distincts de communiquer entre eux. Les
serveurs prenant en charge les formulaires Web prennent également en charge
les services Web XML.
4 Module 13 : Utilisation et création de services Web XML
Architecture sans état Le modèle de service Web XML repose sur une architecture de services sans
état. Les architectures sans état sont généralement plus évolutives que les
architectures avec état. Chaque réponse provenant du service Web XML est un
nouvel objet avec un nouvel état. À moins que les services Web XML utilisent
les services de gestion d'état Microsoft ASP.NET pour conserver l'état entre les
demandes, l'état de la réponse est perdu sur le serveur de services Web XML.
Asynchrone Les services Web XML sont asynchrones car la demande issue de l'application
cliente et la réponse issue du service Web XML sont des enveloppes SOAP
uniques qui ne nécessitent pas de connexion partagée. Les interactions entre
l'application cliente et le service Web XML pourront être subdivisées par la
suite en une première demande/réponse pour démarrer la méthode Web XML,
puis en une seconde pour collecter les résultats. La communication asynchrone
permet à la fois à l'application appelante et au service Web XML de poursuivre
le traitement pendant l'interaction.
Services Web XML Les services Web XML reposent sur un standard du W3C (World Wide Web
basés sur le W3C Consortium) évolutif. Leurs fonctionnalités génériques sont donc fixées, ce qui
n'empêche pas l'ajout éventuel de nouvelles fonctionnalités par la suite.
Site de voyage de
Northwind Traders
ServiceWeb
ServiceWeb XML
XML
Choisissez votre Redmond Météorologie
Météorologie
destination :
Bulletins
météorologiques :
Pluie
Internet Taux
Taux de
de change
change
Service
Service Web
Web XML
XML
Taux de change : $1.56
Introduction Les services Web XML permettent de partager des fonctionnalités et une
logique de programmation avec de nombreuses applications Web et Windows
et des applications s'exécutant sur d'autres plates-formes. Un service Web XML
est en fait un composant pouvant exposer ses méthodes sur le Web.
Les services Web XML reposent également sur les standards du W3C. Ils
reposent sur des protocoles Web standard et offrent la prise en charge des outils
disponibles dans Visual Studio .NET. Avec Visual Studio .NET, les services
Web XML sont extrêmement simples à développer et à utiliser.
Ajout de services On peut imaginer un nombre infini de services Web XML permettant d'ajouter
Web XML dans des des fonctionnalités dans vos applications Web. Voici quelques suggestions dans
applications Web le tableau ci-dessous.
Service Web XML Fonctionnalités
Services Fournit l'authentification des utilisateurs.
d'authentification Par exemple, Microsoft Passport.
Bulletins Donne les dernières prévisions météorologiques pour les
météorologiques zones sélectionnées.
Par exemple, un site Web pourrait publier des bulletins
météorologiques locaux pour une région ou une ville donnée
en utilisant un service météo Web XML.
Taux de change Fournit des taux de change actualisés dans toutes les
devises.
Par exemple, un site Web de voyages pourrait proposer des
taux de change pour des destinations de vacances
potentielles établies d'après des profils utilisateur, en
utilisant un service Web XML de conversion monétaire.
6 Module 13 : Utilisation et création de services Web XML
(suite)
Service Web XML Fonctionnalités
Tarifs aériens Fournit des tarifs aériens mis à jour provenant d'une ou de
plusieurs compagnies aériennes.
Par exemple, un site Web de voyages pourrait proposer
automatiquement des prix dégriffés venant de compagnies
aériennes sélectionnées en utilisant un service Web XML de
tarifs aériens.
Cotations boursières Fournit les cotations boursières actualisées.
Par exemple, une entreprise pourrait publier ses propres
cotations sur son site Web en utilisant un service Web XML
de cotations en bourse.
Services de partenariat Fournit aux partenaires professionnels la possibilité
d'accéder à vos services à partir de leur site Web.
Par exemple, des sites d'organisation de conférences peuvent
proposer des services de réservation d'hôtels.
Actualités Fournit des informations mises à jour.
Par exemple, une entreprise pourrait publier sur son site
Web les nouveautés de son secteur d'activité en utilisant un
service Web XML de journaux.
Suivi des commandes Fournit l'état des commandes en reliant des systèmes ERP
(Enterprise Resource Management) existants à des sites
Web internes et externes.
Par exemple, l'association des résultats issus des
applications ERP internes avec des services Web XML de
suivi de commandes des fournisseurs et des sociétés de
transport donnerait à la clientèle une vue globale de l'état de
ses commandes.
Exemple de service L'illustration ci-dessus montre un site Web de voyages fictif qui s'appuie sur
Web XML des services Web XML pour offrir plusieurs prestations. Dans ce scénario,
l'utilisateur saisit le nom d'une ville de destination que le formulaire Web utilise
ensuite comme paramètre pour appeler plusieurs services Web XML. Du point
de vue de l'utilisateur, ce site Web de voyages est particulièrement riche. Du
point de vue du code, il est bien plus qu'une interface graphique regroupant
plusieurs services Web XML provenant d'entreprises distinctes.
Grâce aux services Web XML, le site Web de voyages est intéressant tant pour
le site Web consommateur que pour les services Web XML :
! Avantages pour le site Web :
• Les applications auxquelles l'agence de voyages a accès ne sont pas
limitées par les compétences, la disponibilité ou l'expertise des
développeurs de l'agence.
• L'agence de voyages ne prend pas en charge les coûts de maintenance
élevés liés à la tenue à jour des données comme les bulletins
météorologiques ou les taux de change.
• Les services Web XML utilisant Internet, l'agence de voyages n'a pas
besoin de créer ou de maintenir des connexions dédiées pour proposer le
service.
Module 13 : Utilisation et création de services Web XML 7
Introduction Vous pouvez trouver des services Web XML existants pour enrichir votre site
Web en utilisant un ou plusieurs services de découverte. Ces services évolutifs
changent rapidement à mesure que les services Web XML trouvent une
légitimité dans la communauté Internet.
Recherche d'un service Le processus de recherche et de liaison d'un service Web XML est le suivant :
Web XML
1. Les développeurs de services Web XML publient les descriptions et les
emplacements Web de leurs services Web XML sur un site Web UDDI
(Universal Description, Discovery, and Integration).
2. Vous interrogez le site Web UDDI pour trouver les services Web XML qui
vous intéressent. Le site Web UDDI fournit une liste de services Web XML
comprenant les URL des documents DISCO (Discovery) relatifs à ces
services.
3. Vous sélectionnez un service Web XML et accédez à un document DISCO
pour repérer l'URL correspondante et les URL associées des
documents WSDL (Web Services Description Language).
4. Vous générez un objet proxy à partir du document WSDL.
Une classe proxy est du code qui ressemble exactement à la classe qu'elle
est censée représenter, mais qui ne contient pas la logique de l'application.
Elle comprend à la place la logique du transport et le marshaling. Un objet
proxy permet à un client d'accéder à un service Web XML comme s'il était
un objet COM local.
5. Vous utilisez l'objet proxy pour lier le service Web XML.
6. Vous appelez le service Web XML à partir du formulaire Web à l'aide du
proxy.
Module 13 : Utilisation et création de services Web XML 9
Remarque Pour plus d'informations sur UDDI, consultez le site Web UDDI à
l'adresse http://www.uddi.org ou le site Web UDDI Microsoft à l'adresse
http://uddi.microsoft.com.
Fichiers DISCO Les fichiers de découverte (DISCO) regroupent des services communs sur un
serveur Web. Les fichiers DISCO .disco et .vsdisco sont des fichiers XML
contenant des liens sous forme d'URL vers des ressources qui fournissent des
informations de découverte sur un service Web XML. Ils permettent d'obtenir
par programme des services Web XML. Les exemples suivants montrent la
différence entre des fichiers de découverte statiques et dynamiques :
! fichiers .disco :
documents XML statiques qui contiennent des liens vers d'autres ressources
décrivant des services Web XML. Ils sont générés automatiquement
lorsqu'un utilisateur accède au service Web XML à l'aide d'une URL
contenant ?DISCO dans la chaîne de requête.
Le code suivant montre un exemple de fichier .disco :
<?xml version="1.0"?>
<disco:discovery
xmlns:disco="http://schemas.xmlsoap.org/disco"
xmlns:wsdl="http://schemas.xmlsoap.org/disco/wsdl">
<wsdl:contractRef
ref="http://MyWebServer/UserName.asmx?WSDL"/>
</disco:discovery>
! fichiers .vsdisco :
documents de découverte dynamiques que Visual Studio .NET génère
automatiquement lors de la phase de développement d'un service
Web XML.
Un fichier .vsdisco est un fichier XML doté d'un nœud racine appelé
<dynamicDiscovery>. Ce nœud peut contenir des nœuds <exclude>.
Chaque nœud <exclude> contient un chemin d'accès que le processus de
découverte dynamique ne doit pas rechercher.
Attention Pour garder le contrôle sur ce que les clients des services
Web XML peuvent découvrir, utilisez la découverte dynamique uniquement
sur les serveurs de développement Web.
10 Module 13 : Utilisation et création de services Web XML
Fichiers WSDL Un fichier WSDL définit la grammaire XML qui permet de communiquer avec
un service Web XML. Visual Studio .NET s'en sert pour générer des objets
proxy afin de communiquer avec un service Web XML.
Les fichiers WSDL contiennent les informations suivantes sur un service
Web XML :
! emplacement de l'URL ;
! méthodes et propriétés de service Web XML ;
! types de données utilisés ;
! protocoles de communication.
Introduction Dans cette animation, vous découvrirez comment les services Web XML
fonctionnent en interaction avec des navigateurs et d'autres formulaires Web.
Modèle du service
Web XML
! Pour créer un service Web XML
1. Créez le fichier .asmx comprenant l'espace de noms, les classes, les
propriétés et les méthodes Web de service Web XML.
2. Déclarez les méthodes en tant que méthodes de service Web XML
accessibles sur Internet.
Accès à partir d'un L'accès direct à un service Web XML implique qu'un utilisateur envoie la
navigateur demande d'URL au format HTTP à l'aide d'un navigateur. Ce service répond
avec une liste des méthodes et des propriétés conçues au format XML.
L'utilisateur a ensuite la possibilité d'envoyer directement une demande au
service Web XML et de recevoir les résultats au format XML.
Si la procédure d'accès direct est déconseillée dans des conditions normales
d'utilisation, elle permet toutefois de tester la fonctionnalité du service
Web XML.
Accès à partir d'un Vous pouvez également appeler des méthodes de service Web XML en utilisant
formulaire Web du code dans un formulaire Web.
Introduction Lorsque vous accédez directement à un service Web XML avec un navigateur,
vous arrivez d'abord dans la page de description HTML
DefaultWsdlHelpGenerator.aspx. Cette page permet de sélectionner les
méthodes de service Web XML disponibles et d'appeler la méthode au moyen
de paramètres. Vous recevrez ensuite une réponse au format XML.
Pour accéder à un service Web XML, vous pouvez également recourir au
protocole HTTP-POST. Vous n'accéderez pas à la page par défaut,
DefaultWsdlHelpGenerator.aspx, mais la réponse finale émanant du service
Web XML sera identique à celle d'une requête HTTP-GET.
Accès à l'URL du Lorsque vous avez trouvé un service Web XML sur UDDI, utilisez l'URL
service Web XML .asmx pour accéder à la page de description HTML. Cette page HTML donne
des informations relatives au type de service Web proposé, les méthodes Web
disponibles que ce service contient, les paramètres de la méthode Web ainsi que
les réponses. Elle permet en outre de tester les fonctionnalités du service
Web XML.
L'illustration suivante montre la vue du navigateur du service Web XML
Stocks qui est utilisé dans les démonstrations de ce module.
Module 13 : Utilisation et création de services Web XML 15
Sélection d'une méthode Lorsque vous accédez à la page de description HTML d'un service Web XML,
de service Web XML le navigateur affiche les méthodes de service Web XML disponibles. Cliquez
sur une méthode Web afin de consulter ses paramètres.
L'illustration suivante montre la vue du navigateur résultant de la sélection de la
méthode Web GetRating du service Web XML Stocks.
Introduction Dans cette application pratique, vous accéderez à un service Web XML sur
l'ordinateur de l'instructeur et testerez les trois méthodes Web disponibles.
____________________________________________________________
____________________________________________________________
Introduction Pour appeler par programme un service Web XML à partir d'un formulaire
Web, vous devez créer un proxy pour traiter l'appel. Dans cette leçon, vous
apprendrez à créer un proxy de référence Web pour une méthode de service
Web XML et appellerez la méthode Web à partir d'un formulaire Web.
Objectifs de la leçon À la fin de cette leçon, vous serez à même d'effectuer les tâches suivantes :
! décrire comment un proxy appelle un service Web XML ;
! créer un proxy pour appeler un service Web XML ;
! incorporer le contenu d'un service Web XML dans un site Web ;
! gérer les erreurs à partir d'un service Web XML ;
! tester la disponibilité d'un service Web XML.
Module 13 : Utilisation et création de services Web XML 19
Formulaire
Web Internet Service Web
Web
XML
XML
SOAP
Proxy
Proxy
Introduction Pour appeler un service Web XML à partir d'un formulaire Web, vous devrez
créer une référence Web au service dans votre projet d'application Web. Cette
référence crée l'objet proxy qui permet de communiquer avec le service
Web XML via SOAP.
Qu'est-ce qu'un proxy ? Une classe proxy est du code qui ressemble exactement à la classe qu'elle est
censée représenter, mais qui ne contient pas la logique de l'application. Elle
comprend à la place la logique du transport et le marshaling. Un objet proxy
permet à un client d'accéder à un service Web XML comme s'il était un objet
COM local. Le proxy doit se trouver sur l'ordinateur sur lequel l'application
Web est installée.
Lorsque vous ajoutez une référence Web à un service Web XML,
Visual Studio .NET crée automatiquement un proxy nommé reference.vb ou
reference.cs. Lorsque vous créez la référence Web, Visual Studio .NET crée le
fichier de référence qui est en fait du code proxy.
20 Module 13 : Utilisation et création de services Web XML
Interaction avec SOAP Les serveurs proxy et les services Web XML fonctionnent en interaction via
SOAP, un protocole XML d'échange d'informations typées et structurées.
Remarque Pour afficher un aperçu des messages SOAP provenant d'un service
Web XML, accédez directement à l'URL du service, puis examinez le code qui
s'inscrit dans la page de description HTML.
Ajoute des membres Lorsque vous créez un proxy à l'aide de Visual Studio .NET, un certain nombre
pour gérer les de méthodes et de propriétés prenant en charge l'accès par programme au
interactions avec le service Web XML sont disponibles. Voici quelques-uns des membres mis à la
service Web XML et la disposition d'un proxy :
prise en charge des
appels asynchrones ! Les membres intégrés au proxy.
L'infrastructure permettant d'effectuer des appels asynchrones d'un
formulaire Web vers un service Web XML est intégrée à la classe proxy que
Visual Studio .NET crée automatiquement lors de l'ajout d'une référence
Web. Les méthodes BeginNomMéthodeWeb et EndNomMéthodeWeb sont
créées automatiquement dans le proxy pour chaque méthode Web du service
Web XML :
• BeginNomMéthodeWeb
La méthode Begin démarre une communication asynchrone avec une
méthode de service Web XML NomMéthodeWeb.
• EndNomMéthodeWeb
La méthode End met fin à une communication asynchrone avec une
méthode de service Web XML NomMéthodeWeb, puis récupère la
réponse complète de la méthode.
Par exemple, la création d'une référence Web au service Web XML Stocks
crée un proxy comportant deux méthodes supplémentaires :
BeginGetRating et EndGetRating.
Sub
Sub Button1_Click(s
Button1_Click(s As
As Object,
Object, ee As
As EventArgs)...
EventArgs)...
Dim
Dim ProxyGetStocks
ProxyGetStocks As As New
New __
GetStocks.localhost.Service1()
GetStocks.localhost.Service1()
lblResults.Text
lblResults.Text == __
ProxyGetStocks.GetRating("Contoso")
ProxyGetStocks.GetRating("Contoso")
End
End Sub
Sub
Exemple de code C#
********************Document à l'usage exclusif de l'instructeur********************
Introduction Pour utiliser un service Web XML à partir d'un formulaire Web créé dans
Visual Studio .NET, vous devez au préalable identifier l'URL du service
Web XML, puis créer une référence Web.
! Pour créer un proxy afin d'appeler un service Web XML à partir d'un
formulaire Web
1. Ouvrez l'application Web et le formulaire Web à partir desquels vous
appellerez le service Web XML, puis créez une référence Web pour le
service Web XML :
a. Dans le menu Projet, cliquez sur Ajouter une référence Web.
b. Dans le champ Adresse de la boîte de dialogue Ajouter une référence
Web, tapez l'URL du service Web XML auquel vous accédez, appuyez
sur ENTRÉE, puis cliquez sur Ajouter la référence.
Visual Studio .NET crée une référence Web au service Web XML qui
comporte le nom du serveur hébergeant le service Web XML.
Si, par exemple, vous créez une référence Web au fichier
http://localhost/Stocks/Service1.asmx, Visual Studio .NET nommera la
référence Web localhost par défaut.
Remarque Visual Studio .NET est optimisé pour les services Web XML
qui sont créés par Visual Studio .NET. Il se peut qu'ASP.NET ne puisse pas
lire les fichiers .wsdl créés par d'autres programmes, si ces derniers
contiennent des chaînes qui s'achèvent par des valeurs null.
Module 13 : Utilisation et création de services Web XML 23
C# GetStocks.localhost.Service1 ProxyGetStocks =
new GetStocks.localhost.Service1();
C# Label1.Text = ProxyGetStocks.GetRating("Contoso");
Introduction Dans cette application pratique, vous utiliserez un proxy pour appeler un
service Web XML.
6. Cliquez sur une procédure d'événement Click pour le bouton Button1, puis
ajoutez le code suivant :
Visual Basic .NET Private Sub Button1_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim ProxyGetWeather As New _
GetWeatherVB.WeatherWebRef.WeatherService()
Label1.Text = _
ProxyGetWeather.WeatherByCity(TextBox1.Text)
End Sub
Introduction Trois principales sources d'erreur peuvent survenir lors de l'utilisation d'un
service Web XML : l'indisponibilité du service, la longueur des délais de
réponse et des erreurs internes au service Web XML provoquent des messages
d'erreur qui émanent du service sous la forme d'exceptions SOAP. Votre
formulaire Web doit pouvoir identifier ces trois types d'erreurs et les traiter.
Service Web XML non Pour tester la disponibilité d'un service Web XML à partir d'un formulaire
disponible ASP.NET, il vous faut définir un délai d'attente pour le proxy du service
Web XML. Pour cela, utilisez une instruction Try…Catch…Finally pour gérer
l'exception de délai d'attente :
! Définissez le paramètre de délai d'attente dans le proxy.
Affectez à la propriété Timeout du service Web XML une valeur en
millisecondes, comme l'illustre le code suivant :
Nom_proxy.Timeout = valeur en millisecondes
C# try
{
//appelle le service Web XML
}
catch (Exception err)
{
Label1.Text = err.Message;
}
Exceptions SOAP à Si un service Web XML n'est pas en mesure de traiter une demande, il peut
partir des services renvoyer un message d'erreur à l'aide d'une instance de l'objet SoapException
Web XML de la classe System.Web.Services. Pour gérer ces exceptions, vous devez
utiliser une instruction Try…Catch…Finally.
Le code suivant piège l'exception et affiche un message d'erreur dans Label1 :
Visual Basic .NET Try
'appelle votre service Web XML
Catch err As SoapException
Label1.Text = "Impossible de traiter votre demande"
End Try
C# try
{
//appelle votre service Web XML
}
catch (SoapException err)
{
Label1.Text = "Impossible de traiter votre demande";
}
28 Module 13 : Utilisation et création de services Web XML
C# using System.Threading;
C# Thread.Sleep(40000);
Introduction Visual Studio .NET fournit les modèles qui simplifient le développement des
services Web XML. Dans cette leçon, vous apprendrez à vous en servir pour
créer un service Web XML.
Objectifs de la leçon À la fin de cette leçon, vous serez à même d'effectuer les tâches suivantes :
! créer un service Web XML à l'aide de Visual Studio .NET ;
! décrire les classes et structures utilisées dans un projet de service Web XML
construit à l'aide d'ASP.NET ;
! expliquer le code généré lors de la création d'un projet de service Web XML
à l'aide d'ASP.NET.
Module 13 : Utilisation et création de services Web XML 31
Introduction Visual Studio .NET propose des modèles et une méthode de service Web XML
par défaut qui vous permettront de créer des services Web XML.
! Page .asmx
<%@
<%@ WebService
WebService Language="vb"
Language="vb"
Codebehind="Service1.asmx.vb"
Codebehind="Service1.asmx.vb"
Class="XMLWebServiceName.Service1"
Class="XMLWebServiceName.Service1" %>
%>
! Page .asmx.vb
Imports
Imports System
System
Imports
Imports System.Web.Services
System.Web.Services
Class
Class Service1
Service1
<WebMethod()>
<WebMethod()> Public
Public Function
Function function1()
function1() As
As type
type
'function_here
'function_here
End
End Function
Function
End
End Class
Class
Exemple de code C#
********************Document à l'usage exclusif de l'instructeur********************
Introduction Lorsque vous créez un service Web XML avec Visual Studio .NET, deux
principaux fichiers comprenant le service Web XML sont créés : le fichier
.asmx et le fichier .asmx.vb ou .asmx.cs. Le fichier .asmx identifie la page Web
comme un service Web XML, tandis que le fichier .asmx.vb ou .asmx.cs, connu
également sous le nom de page code-behind, contient la logique du service.
Page .asmx Comme un service Web XML ne dispose d'aucune interface, la page .asmx
contient uniquement les informations de types de fichiers ainsi qu'une directive
de la page code-behind.
Le code d'une page .asmx se présente ainsi :
Visual Basic .NET <%@ WebService Language="vb" Codebehind="Service1.asmx.vb"
Class="XMLWebServiceName.Service1" %>
! Page Codebehind
L'attribut Codebehind identifie le nom et l'emplacement de la page
code-behind .asmx.vb ou .asmx.cs qui contient la logique du service
Web XML.
! Class
L'attribut Class identifie la classe de base qui prend en charge cette instance
d'un service Web XML.
Dans le fichier .asmx, vous devez définir une classe qui encapsule la
fonctionnalité du service Web XML. Il doit s'agir d'une classe de type
« public » qui hérite de la classe de base du service Web XML.
La classe par défaut du service Web XML est la suivante :
Visual Basic .NET Class Service1
C# class Service1
Page code-behind Le fichier code-behind est la page qui contient la logique du service Web XML.
Le code par défaut d'une page code-behind est le suivant :
Visual Basic .NET Imports System.Web.Services
<WebService(Namespace := "http://tempuri.org/")> _
Public Class Service1
Inherits System.Web.Services.WebService
End Class
Module 13 : Utilisation et création de services Web XML 35
C# using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;
namespace Service1
{
public class Service1 : System.Web.Services.WebService
{
public Service1()
{
//CODEGEN: 'Cet appel est requis par le Concepteur des
services Web ASP.NET.
InitializeComponent();
}
// [WebMethod]
// public string HelloWorld()
// {
// return "Hello World";
// }
}
}
C# [WebMethod]
public string HelloWorld()
{
return "Hello World";
}
Module 13 : Utilisation et création de services Web XML 37
Introduction Dans cette application pratique, vous créerez un service de cotation des actions
simple. Le service de cotation retourne une valeur Buy si le nom de l'entreprise
Contoso est le paramètre d'entrée. Tous les autres noms d'entreprise doivent
retourner une valeur Sell.
C# [WebMethod]
public string GetRating(String Ticker)
{
if (Ticker == "Contoso")
return "Buy";
else
return "Sell";
}
4. Enregistrez le fichier.
Test du service 5. Générez et parcourez le service Web XML dans Microsoft Internet Explorer
Web XML en affichant la page suivante :
Visual Basic .NET http://localhost/StocksVB/Service1.asmx.
C# http://localhost/StocksCS/Service1.asmx.
Pour ouvrir le service Web XML, vous pouvez également cliquer avec le
bouton droit sur Service1.asmx dans l'Explorateur de solutions, puis cliquer
sur Afficher dans le navigateur.
Un commentaire sur l'espace de noms apparaît.
6. Cliquez sur GetRating.
7. Dans le champ Ticker, tapez le nom d'une entreprise pour laquelle vous
souhaitez obtenir une cotation, telle que Contoso ou Northwind Traders,
puis cliquez sur Appeler.
Modification ou ajout de Pour empêcher le commentaire de l'espace de noms d'apparaître lorsque
l'espace de noms vous parcourez le service Web XML, vous devez modifier l'URL de l'espace
de noms. Si vous utilisez Visual Studio .NET, modifiez l'URL par défaut
que fournit Visual Studio .NET. Si vous utilisez C#, Visual Studio .NET ne
génère pas d'espace de noms par défaut. Vous devez alors lui ajouter un
attribut WebService, puis la directive de l'espace de noms.
Module 13 : Utilisation et création de services Web XML 39
C# [WebService(Namespace=
"http://microsoft.com/webservices/",
Description="Ma description de classe...")]
3. Comment tester rapidement un service Web XML pour voir les méthodes et
les paramètres disponibles ?
7. Quel attribut ajouter aux méthodes que vous voulez exposer sur le Web à
partir de votre service Web XML ?
8. Quelle est la différence qui existe entre les fichiers .asmx et .asmx.vb (ou
.asmx.cs) ?
42 Module 13 : Utilisation et création de services Web XML
Assurance Plans
Plans Assurance
Assurance Soins
Soins
Assurance vie
vie de
de retraite
retraite maladie
maladie dentaires
dentaires
Life.aspx
Life.aspx
Retirement.aspx
Retirement.aspx Medical.aspx
Medical.aspx Dental.aspx
Dental.aspx
Fichiers
XML Doctors Dentists
Objectifs À la fin de cet atelier, vous serez à même d'effectuer les tâches suivantes :
! créer un service Web XML qui retourne des types de données complexes ;
! tester un service Web XML à l'aide d'un navigateur.
Conditions préalables Pour aborder cet atelier, vous devez disposer de connaissances élémentaires
dans les domaines suivants :
! connaissances de la procédure d'ajout d'une table Microsoft® SQL Server™
dans un projet ;
! maîtrise de Microsoft ADO.NET ;
! connaissances de la procédure d'ajout d'une référence Web dans un
formulaire Web ;
! connaissances des modalités d'emploi du contrôle DataGrid ;
! connaissances de la procédure de création des procédures d'événement pour
les contrôles de serveur.
Scénario Coho Winery offre de nombreux avantages à ses employés. Dans les ateliers du
cours 2333A, Développement d'applications Web Microsoft ASP.NET à l'aide
de Visual Studio .NET, vous créerez un site Web qui permettra aux employés de
sélectionner et de définir les avantages qu'ils auront choisis.
Dans cet atelier, vous :
! créerez un service Web XML qui vous permettra d'extraire la liste de tous
les dentistes utilisés par Coho Winery ;
! extrairez la liste des dentistes correspondant à un code postal donné ;
! utiliserez le service Web à partir de la page dental.aspx.
Durée approximative de
cet atelier :
60 minutes
Module 13 : Utilisation et création de services Web XML 43
Exercice 0
Mise en place de l'atelier
Pour réaliser cet atelier, vous devez avoir créé un projet d'application Web
intitulé Benefits et un projet de bibliothèque de classes intitulé BenefitsList. Ces
projets peuvent être créés à l'aide de Microsoft Visual Basic® .NET ou de
Microsoft Visual C#™ .NET.
Si vous ne les avez pas encore créés, procédez comme suit :
• À l'aide de Microsoft Visual Studio® .NET, créez une solution que vous
nommerez ApplicationAtelier2333 :
a. Dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Nouvelle
solution.
b. Dans la boîte de dialogue Nouveau projet, dans la zone de texte Nom,
tapez ApplicationAtelier2333 puis cliquez sur OK.
Exercice 1
Création de la méthode GetAllDentists du service Web XML Dentist
Dans cet exercice, vous utiliserez Visual Studio .NET pour créer un service
Web XML.
C# [WebMethod()]
public DataSet GetAllDentists()
{
sqlDataAdapter1.Fill(dsDentists1);
return dsDentists1;
}
____________________________________________________________
____________________________________________________________
C# [WebService(Namespace="http://microsoft.com/webservices/",
Description="Ce service Web XML contient des " +
"informations sur les dentistes.")]
public class DentalService1:
System.Web.Services.WebService
Exercice 2
Création de la méthode de service Web XML
GetDentistsByPostalCode
Dans cet exercice, vous ajouterez une autre méthode de service Web XML à
votre service Web XML DentistService. Cette nouvelle méthode s'appelle
GetDentistsByPostalCode et retourne un DataSet contenant tous les dentistes
caractérisés par un code postal donné. Dans cet exercice, vous écrirez du code
faisant appel à ADO.NET pour appeler une procédure stockée SQL Server.
C# using System.Data.SqlClient;
End Function
C# [WebMethod(Description=
"Cette méthode de service Web XML retourne les noms" +
"des dentistes à partir d'un code postal fourni.")]
public DataSet GetDentistsByPostalCode(
String strPostalCode)
{
}
Module 13 : Utilisation et création de services Web XML 51
'ferme la connexion
conn.Close()
Return dsDentistsPoCode
52 Module 13 : Utilisation et création de services Web XML
//ferme la connexion
conn.Close();
return dsDentistsPoCode;
Exercice 3
Utilisation de la méthode de service Web XML GetAllDentists
Dans cet exercice, vous appellerez la méthode GetAllDentists du service
Web XML DentalService. Vous afficherez ensuite l'objet DataSet résultat dans
un contrôle DataGrid.
Remarque Le proxy est créé dans le langage par défaut des paramètres de
projet. Si, par exemple, vous utilisez Visual Basic .NET, le proxy sera créé
en Visual Basic .NET et portera le nom Reference.vb.
____________________________________________________________
C# BenefitsCS.DentalWebRef.DentalService1 ProxyGetAllDentists
= new BenefitsCS.DentalWebRef.DentalService1();
DataSet dsAllDentists = new DataSet();
dsAllDentists = ProxyGetAllDentists.GetAllDentists();
dgDentists.DataSource = dsAllDentists.Tables[0];
dgDentists.DataBind();
Exercice 4
Utilisation de la méthode de service Web XML
GetDentistsByPostalCode
Dans cet exercice, vous appellerez la méthode GetDentistsByPostalCode du
service Web XML Dentists.asmx. Vous utiliserez un contrôle DataGrid pour
afficher l'objet résultant DataSet des dentistes correspondant à un code postal
donné.
C# BenefitsCS.DentalWebRef.DentalService1
ProxyGetDentistsByPostalCode = new
BenefitsCS.DentalWebRef.DentalService1();
DataSet dsDentistsByPostalCode = new DataSet();
dsDentistsByPostalCode =
ProxyGetDentistsByPostalCode.GetDentistsByPostalCode
(txtPostalCode.Text);
dgDentists.DataSource = dsDentistsByPostalCode.Tables[0];
dgDentists.DataBind();
Module 13 : Utilisation et création de services Web XML 57