Vous êtes sur la page 1sur 4

Le 03 Novembre 2011 Matire : Services ENSAT 2010-2011 : 3

me

Web

anne cycle ingnieur Gnie Informatique

TP Srie N1: Procdure pas pas : Appel de services Web XML partir de Windows Forms
Les services Web XML font partie des nouveauts de Visual Studio. Ceux-ci permettent d'changer des messages dans un environnement faiblement coupl en utilisant des protocoles standard tels que HTTP, XML, XSD, SOAP et WSDL. Les messages peuvent tre structurs et typs ou faiblement dfinis. Comme les services Web s'appuient sur des protocoles standards, vos applications de service Web peuvent communiquer avec une grande diversit d'implmentations, de plates-formes et de priphriques. Les services Web peuvent tre utiliss pour amliorer la fonctionnalit des Windows Forms. La connexion des Windows Forms aux services Web se rsume de simples appels des mthodes Web Service. Ces dernires sont traites sur un serveur qui retourne ensuite les rsultats de l'appel de mthode. Il existe deux types de mthodes Web Service : synchrone et asynchrone. Lorsque des mthodes Web Service synchrones sont appeles, l'appelant attend que le service Web rponde avant de poursuivre ses oprations. Lorsque des mthodes Web Service asynchrones sont appeles, vous pouvez continuer d'utiliser le thread d'appel en attendant que le service Web rponde. Cela vous permet d'utiliser efficacement l'ensemble des threads existants dans l'application cliente.

Mthodes Web Service synchrones


Un appel une mthode Web Service synchrone consiste appeler la mthode et attendre que le calcul ait lieu sur le serveur et qu'une valeur soit retourne avant de continuer avec le reste du code dans le Windows Form. Pour crer un service Web XML 1. Crez une application de service Web. 2. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le fichier .asmx et choisissez Afficher le code. 3. Crez une mthode Web Service qui effectue une addition. La mthode Web Service suivante prendra deux nombres entiers, les ajoutera et retournera la somme :
' Visual Basic <WebMethod()> Public Function WebAdd(ByVal x As Integer, ByVal y As Integer) As Integer

Return x + y End Function // C# [WebMethod] public int WebAdd(int x, int y) { return x + y; }

4. Crez une autre mthode Web Service qui effectue une multiplication. La mthode Web Service suivante prendra deux nombres entiers, les multipliera et retournera le produit :
' Visual Basic <WebMethod()> Public Function WebMultiply(ByVal x As Integer, ByVal y As Integer) As Integer Return x * y End Function // C# [WebMethod] public int WebMultiply(int x, int y) { return x * y; }

5. Dans le menu Gnrer, cliquez sur Gnrer la solution. Vous pouvez galement localiser le fichier .asmx que vous avez cr dans ce projet pour en savoir plus sur les services Web. Votre service Web peut dsormais tre appel partir d'un Windows Form. Pour appeler un service Web XML de manire synchrone 1. Crez une nouvelle application Windows. 2. Ajoutez une rfrence au service Web cr ci-dessus. 3. Dans la bote outils, ajoutez trois contrles TextBox et deux contrles Button. Les zones de texte seront rserves pour les nombres et les boutons seront utiliss pour effectuer les calculs et appeler les mthodes Web Service. 4. Dfinissez les proprits des contrles comme suit : Nom du Contrle X Y R CmdAjout CmdSous CmdMult CmdDiv CmdEff Proprit Text Text Text Text Text Text Text Text Texte 0 0 0 Ajouter Soustraire Multiplier Diviser Effacer

5. Cliquez avec le bouton droit sur le formulaire et choisissez Afficher le code. 2

6. Crez une instance du service Web en tant que membre de la classe. Vous devez connatre le nom du serveur o vous avez cr le service Web ci-dessus.
' Visual Basic ' Replace localhost below with the name of the server where ' you created the Web service. Dim MathServiceClass As New localhost.Service1() // C# localhost.Service1 MathServiceClass = new localhost.Service1();

7. Crez un gestionnaire d'vnements pour l'vnement Click de Button1.


' Visual Basic Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' Create instances of the operands and result. Dim x, y, z As Integer ' Parse the contents of the text boxes into integers. x = Integer.Parse(TextBox1.Text) y = Integer.Parse(TextBox2.Text) ' Call the WebAdd Web service method from the instance of the Web service. z = MathServiceClass.WebAdd(x, y) TextBox3.Text = z.ToString End Sub // C# private void button1_Click(object sender, System.EventArgs e) { // Create instances of the operands and result. int x, y, z; // Parse the contents of the text boxes into integers. x = int.Parse(textBox1.Text); y = int.Parse(textBox2.Text); // Call the WebAdd Web service method from the instance of the Web service. z = MathServiceClass.WebAdd(x, y); textBox3.Text = z.ToString(); }

Remarque Visual C# Assurez-vous que le code ncessaire l'activation du gestionnaire d'vnements est prsent. Dans ce cas, il doit ressembler au code suivant : this.button1.Click += new System.EventHandler(this.button1_Click); 8. Crez de la mme manire un gestionnaire d'vnements pour l'vnement Click de Button2, puis ajoutez le code suivant.
' Visual Basic Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ' Create instances of the operands and result. Dim x, y, z As Integer ' Parse the contents of the text boxes into integers. x = Integer.Parse(TextBox1.Text)

y = Integer.Parse(TextBox2.Text) ' Call the WebMultiply Web service method from the instance of the Web service. z = MathServiceClass.WebMultiply(x, y) TextBox3.Text = z.ToString End Sub // C# private void button2_Click(object sender, System.EventArgs e) { // Create instances of the operands and result. int x, y, z; // Parse the contents of the text boxes into integers. x = int.Parse(textBox1.Text); y = int.Parse(textBox2.Text); // Call the WebAdd Web service method from the instance of the Web service. z = MathServiceClass.WebMultiply(x, y); textBox3.Text = z.ToString(); }

Remarque Visual C# Assurez-vous que le code ncessaire l'activation du gestionnaire d'vnements est prsent. Dans ce cas, il doit ressembler au code suivant : this.button2.Click += new System.EventHandler(this.button2_Click); 9. Appuyez sur F5 pour excuter l'application. Entrez des valeurs dans les deux premires zones de texte. Lorsque vous appuyez sur le bouton Ajouter, la troisime zone de texte doit afficher la somme de ces deux valeurs. Lorsque vous appuyez sur le bouton Multiplier, la troisime zone de texte doit afficher le produit de ces deux valeurs. Remarque Le traitement, par le serveur, du premier appel un service Web prend un certain temps, car le service Web est instanci sur le serveur. Aperu de l'interface client :

Fig 1 : Utilisation dun service web de mathmatique simple Rfrence :


http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/vbcon/html/vbconwindowsformswebservices.asp