Beruflich Dokumente
Kultur Dokumente
me
Web
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.
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
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();
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 :