Vous êtes sur la page 1sur 17

Master Recherche Rseaux de Tlcommunications 2012-2013 Architectures Applicatives Travaux Pratiques

Partie I : Dveloppement dun Web Service Objectif Le but de cette partie est de : - Crer un Web Service avec une mthode de conversion Euro vers Franc - Interroger le Web Service via son interface Web - Ajouter des mthodes au Web service Exercice 1 Cration dun Web service - Dans Visual Studio 20081, crer un nouveau projet de Web Service File > New > Web Site Visual Studio installed templates : choisir ASP.NET Web Service Location: choisir File System Language: choisir Visual C# Pour le nom du projet, il faut choisir : My Documents\Visual Studio 2008\WebSites\Euro2FrancWebService

2008

Cliquer sur OK

Remarque : Vous pouvez choisir dans location : HTTP au lieu de File System .
1

Dans Visual Studio 2010, il faut choisir .Net Framework 3.5

Sujet 3: Web Services

Page 1 sur 17

Master Recherche Rseaux de Tlcommunications 2012-2013 Architectures Applicatives Travaux Pratiques


Dans ce cas, le Web service sera cr directement comme tant un site web public (dans le rpertoire c:\Inetpub\wwwroot) et on na pas besoin de faire Publish web site aprs chaque mise jour. Linconvnient de cette mthode est que tout le site (avec le code source) sera publi. Vrifier qu'il a t cr : Dans le rpertoire My Documents\Visual Studio 2008\Projects\ , un rpertoire nomm Euro2FrancWebService qui contient le projet cr sous le nom Euro2FrancWebService.sln . Dans le rpertoire My Documents\Visual Studio 2008\Websites\ , un rpertoire nomm Euro2FrancWebService qui contient le web service (service.asmx) avec son code source en C# (service.cs).

Afficher le code source du web service et prendre le temps de consulter ce code Tester le Web service en tapant CTRL+F5 Visual Studio a appel Internet Explorer pour y afficher l'URL de votre web service: http://localhost:port/Euro2FrancWebService/Service.asmx

Sujet 3: Web Services

Page 2 sur 17

Master Recherche Rseaux de Tlcommunications 2012-2013 Architectures Applicatives Travaux Pratiques

La page web que vous voyez est automatiquement gnre par le Framework .Net et vous permet de tester votre service Web en utilisant votre navigateur Elle contient la liste des mthodes de votre service web, donc ici uniquement la mthode HelloWorld Remarquez le message vous indiquant que le namespace par dfaut n'a pas t redfini Fermer la page web et revenir au programme pour modifier le namespace (espace de nom XML) de votre service web : Ajouter la ligne d'attribut suivante avant la ligne de dclaration de la classe Service1
[WebService(Namespace = "http://tpwebservices.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class Service : System.Web.Services.WebService { public Service () {

Compiler et tester nouveau, le message sur le namespace par dfaut disparat

Sujet 3: Web Services

Page 3 sur 17

Master Recherche Rseaux de Tlcommunications 2012-2013 Architectures Applicatives Travaux Pratiques

Crer une WebMethod , pour ce faire vous devez remplacer la mthode d'exemple (HelloWorld()) par :

[WebMethod] public double EuroVersFranc(double Euro) { return Euro * 6.55957; } Seul l'attribut [WebMethod] est ncessaire pour faire d'une mthode normale une mthode accessible par votre service web Enregister et compiler Tester la solution (Ctrl+F5)

Sujet 3: Web Services

Page 4 sur 17

Master Recherche Rseaux de Tlcommunications 2012-2013 Architectures Applicatives Travaux Pratiques

En cliquant sur le lien Service Description vous verrez s'afficher le document WSDL correspondant votre service web :

Sujet 3: Web Services

Page 5 sur 17

Master Recherche Rseaux de Tlcommunications 2012-2013 Architectures Applicatives Travaux Pratiques

L'URL de cette page est l'URL du service web ajoute de ?WSDL

- Dans la premire page, cliquer sur le lien "EuroVersFranc" : Vous accdez une page web (galement gnre automatiquement par le Framework .NET) qui vous permet d'appeler le web service en donnant ses arguments Vous voyez galement quelles seraient les donnes envoyes au service web suivant trois mthodes possibles : SOAP 1.1, SOAP 1.2, POST Expliquer les messages SOAP affichs.

Sujet 3: Web Services

Page 6 sur 17

Master Recherche Rseaux de Tlcommunications 2012-2013 Architectures Applicatives Travaux Pratiques

Cette page permet de tester directement un web service en utilisant la mthode POST. Celle-ci ne peut fonctionner que pour les services dont les paramtres d'entres sont une liste de types simples (ni tableaux, ni classes). Rentrer un prix en Euro et cliquez sur le bouton Invoquer Le navigateur reoit et affiche telle qu'elle la rponse XML du service web

Sujet 3: Web Services

Page 7 sur 17

Master Recherche Rseaux de Tlcommunications 2012-2013 Architectures Applicatives Travaux Pratiques


Exercice 2 Ajout dune seconde mthode Web - Ajouter une mthode de conversion FrancVersEuro [WebMethod] public double FrancVersEuro(double Franc) { return Franc / 6.55957; } Compiler puis Tester en navigant sur la page Service.asmx : Vous avez cette fois-ci deux mthodes dans la page de prsentation de votre service web

Tester l'importance de l'attribut WebMethod ; Mettre en commentaire la ligne dfinissant l'attribut WebMethod sur la mthode FrancVersEuro . Vous avez alors :

//[WebMethod] public double FrancVersEuro(double Franc) { return Franc / 6.55957; }

Sujet 3: Web Services

Page 8 sur 17

Master Recherche Rseaux de Tlcommunications 2012-2013 Architectures Applicatives Travaux Pratiques


Recompiler puis tester : Seule la mthode EuroVersFranc apparat dans la liste des mthodes supportes par le service web

Enlever le commentaire pour que l'on puisse utiliser cette mthode dans la suite des exercices

Sujet 3: Web Services

Page 9 sur 17

Master Recherche Rseaux de Tlcommunications 2012-2013 Architectures Applicatives Travaux Pratiques


Partie II : Dveloppement dun Client Objectif Le but de cette partie est de mettre en uvre la consommation du service Web cr dans la partie I, depuis une application ASP.NET et une application Windows Forms. Exercice 2 Consommation depuis une application ASP.NET - Crer une nouvelle application Web ASP.NET en C# : Conversion File > Add > Web Site

2008

Visual Studio installed templates : choisir ASP.NET Web Site Location: choisir File System Language: choisir Visual C# Pour le nom du projet, il faut choisir : My Documents\Visual Studio 2008\WebSites\Webform1 Cliquer sur OK Appuyer sur le bouton design pour passer en mode graphique. Ajouter 2 TextBox, 2 Labels et 2 Boutons sur la page :

Sujet 3: Web Services

Page 10 sur 17

Master Recherche Rseaux de Tlcommunications 2012-2013 Architectures Applicatives Travaux Pratiques

Ajouter maintenant une rfrence vers le Web Service cr dans la partie prcdente. Pour cela, dans lexplorateur de solutions, cliquer droit sur lapplication conversion et slectionnez Add Web Reference

Sujet 3: Web Services

Page 11 sur 17

Master Recherche Rseaux de Tlcommunications 2012-2013 Architectures Applicatives Travaux Pratiques

Choisissez Web services in this solution

Sujet 3: Web Services Page 12 sur 17

Master Recherche Rseaux de Tlcommunications 2012-2013 Architectures Applicatives Travaux Pratiques


Choisissez le web service service . Taper un nom dans la zone de saisie Web Reference Name. Cest le nom que vous utiliserez dans votre code lorsque vous consommerez le Service Web.

Cliquer sur Add Reference Visual Studio .NET ajoute un rpertoire App_WebReferences la solution. Ce rpertoire contient la classe proxy qui va vous permettre dutiliser le Web Service comme un objet local.

Double-cliquer sur le bouton Button1 et ajouter le code suivant pour appeler la mthode FrancVersEuro du Service Web juste ajout au projet :

Sujet 3: Web Services

Page 13 sur 17

Master Recherche Rseaux de Tlcommunications 2012-2013 Architectures Applicatives Travaux Pratiques


private void Button1_Click(object sender, System.EventArgs e) { double Euros; ConversionFrancEuro.Service myWebService = new ConversionFrancEuro.Service(); Euros = myWebService.FrancVersEuro(Double.Parse(TextBox1.Text)); Label1.Text = Euros.ToString(); } De la mme manire, double-cliquer sur le bouton Button2 et ajouter le code suivant pour appeler la mthode EuroVersFranc

private void Button2_Click(object sender, System.EventArgs e) { double Francs; ConversionFrancEuro.Service myWebService = new ConversionFrancEuro.Service(); Francs = myWebService.EuroVersFranc(Double.Parse(TextBox2.Text)); Label2.Text = Francs.ToString(); } Compiler et tester la page ASPX Tester les appels au Service Web

Sujet 3: Web Services

Page 14 sur 17

Master Recherche Rseaux de Tlcommunications 2012-2013 Architectures Applicatives Travaux Pratiques


Partie III : Publication dun site web Prsentation Lorsque l'on dveloppe un site ASP.NET et que l'on utilise l'diteur Visual Studio .NET 2008, on sait bien que les utilisateurs finaux ne travailleront pas sur notre machine de dveloppement. Ainsi, on doit prvoir de dployer le site dvelopp sur un serveur. Dans de nombreux cas, nous devons avoir au moins une phase intermdiaire, c'est--dire passer par un serveur de test (qui peut tre aussi celui d'intgration) avant la publication sur le serveur final (la production). La publication d'un site Web offre les avantages suivants par rapport la simple copie du site Web vers un serveur Web cible :

Le processus de prcompilation dtecte toutes les erreurs de compilation et identifie les erreurs dans le fichier de configuration. La vitesse de rponse initiale pour les pages est plus rapide, car ces dernires sont dj compiles. Si vous copiez des pages vers un site au lieu de les compiler d'abord, les pages sont compiles lors de la premire demande et leur sortie compile est mise en cache.

Aucun code de programme n'est dploy avec le site, pour garantir la scurit de vos fichiers. Vous pouvez publier le site avec une protection du balisage, ce qui entrane la compilation des fichiers .aspx, ou sans protection du balisage, ce qui entrane la copie des fichiers .aspx en l'tat vers le site et vous permet de modifier leur disposition aprs le dploiement.

Travail effectuer Ouvrir le navigateur Internet Explorer et contacter le web service ladresse : http://localhost/Euro2FrancWebService/Service.asmx Dans la suite, on va publier le service web : L'assistant de publication de site WEB est accessible depuis le menu : Build > Publish WEB site

Sujet 3: Web Services

Page 15 sur 17

Master Recherche Rseaux de Tlcommunications 2012-2013 Architectures Applicatives Travaux Pratiques

En appuyant sur le bouton , un nouvel assistant est lanc, il nous demande le site de destination qui peut tre : Le systme de fichier (local ou partage rseau) Le serveur IIS local Un site FTP Un site distant (via les extensions FrontPage)

Nous choisissons Local IIS et nous appuyons sur Create New Web Application .

Sujet 3: Web Services

Page 16 sur 17

Master Recherche Rseaux de Tlcommunications 2012-2013 Architectures Applicatives Travaux Pratiques


Nous donnons le nom Euro2Franc cette nouvelle application web.

Pour examiner la sortie de la commande Publier le site Web 1. Dans l'Explorateur Windows, accdez au dossier : C:\Inetpub\wwwroot\Euro2Franc . Vrifier lexistence du fichier service.asmx. 2. Accdez au dossier Bin. Le dossier contient deux types de fichiers :
o o

des fichiers .compiled qui correspondent aux pages ; des fichiers .dll qui contiennent le code excutable pour le Web Service, tel que le fichier de classe que vous avez cr.

Rappelez-vous que la page, son code et le fichier de classe spar que vous aviez cr ont tous t compil dans du code excutable. Consulter le contenu de ce rpertoire. Vrifier que le web service a t publi en ouvrant la page ladresse: http://localhost/Euro2Franc/Service.asmx

Sujet 3: Web Services

Page 17 sur 17