SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
Développement d’applications mobiles sur
       .net Compact Framework




               Tébourbi Riadh
                   SUP’COM
                      2005
                    Partie 3
              Les Web Services
             Mise à jour Décembre 2006
.NET Compact Framework, Tébourbi Riadh, SUP’COM




   I.       Introduction


Les web services est une technologie WEB nouvelle permettent l’invocation de fonctions distantes,
présentes sur des systèmes distribués et hétérogènes, grâce au protocole HTTP et à XML. C’est un
mécanisme de communication entre serveurs de données et d’applications selon une architecture orientée
services.
Dans une architecture orientée services (SOA, Service Oriented Architechture), le système d’information est
structuré afin que ses ressources (données, traitements) soient accessibles uniquement par routage de
messages entre interfaces réseau.
SOA est une approche de type client/serveur selon laquelle une application est un ensemble de services
logiciels et de consommateurs de services (également appelés clients).

Pour être plus claire, un service web est un composant applicatif mis à la disposition sur un réseau et
disposant de méthodes que l’on peut invoquer à distance via l’emploi de protocoles standards. Les services
Web présentent l’avantage d’être indépendants des plateformes et réutilisables. Un web service est une
interface qui décrit un ensemble d’opérations accessibles via un réseau par des messages XML standards.

Les WebServices sont apparus pour faciliter la tâche des développeurs pour distribuer leurs applications.
Contrairement aux idées reçues, Microsoft n’a pas créé les WebServices mais a participé avec de grandes
entreprises telles que IBM, SUN, etc. à la standardisation des WebServices.



   II.       Fonctionnement
Les services Web sont une technologie permettant à des applications de dialoguer via Internet, par
l’échanges de messages fondé sur des standard (XML), et ceci indépendamment des plate-formes et des
langages sur lesquelles elles reposent. Il ya des acteurs principaux dans l’utilisation des services Web :


   -     Le fournisseur de services qui publie le service ;
   -     Le demandeur de service qui demande l’utilisation d’un service
   -     L’annuaire de service (optionnel) qui est lui-même un fournisseur de service permettant de
         répertorier l’ensemble des fournisseurs de services. Sa présence n’est pas indispensable pour que
         l’échange ait lieu, il suffit que le demandeur ait connaissance de l’adresse (URL) du fournisseur du
         service, sans nécessité de référencement systématique du service dans un annuaire.




                                                                                                                2
.NET Compact Framework, Tébourbi Riadh, SUP’COM




Les deux principaux protocoles utilisés pour un échange basique entre demandeur et fournisseur sont basés
sur le WSDL et SOAP.

Description du service : WSDL

La norme WSDL (Web Service Description Language) est fondée sur XML. Elle permet de spécifier le
format de messages, les protocoles qui doivent être utilisés et la localisation des différentes machines qui
mettent en œuvre un Service Web. Elle définit un format de document qui permet de décrire l’interface d’un
Service Web. Un document WSDL contient les informations suivantes :

   -   L’adresse du service web correspondant ;
   -   La manière dont les applications vont interopérer avec le Web Service (le Binding)
   -   Les opérations (une opération est une séquence d’envoies de messages) à effectuer

Pour chacune de ces opérations, le document précise :

   -   Quel type de protocole de transport utiliser ;
   -   Sur quelles règles d’encodage se baser pour échanger des messages ;
   -   Quels messages seront échangés lors de cette opération

Le document WSDL contient donc toutes les informations nécessaires pour permettre à une application
cliente de découvrir et communiquer avec le Service Web qu’il décrit. WSDL permet de décrire les services
comme un ensemble d’opérations et de messages abstraits reliés (Bind) à des protocoles et des serveurs
réseaux.

En résumé, chaque WebService possède un fichier de spécification : c’est ce qu’on appelle la WSDL. C’est
à partir de ce fichier que le développeur pourra savoir comment interroger le WebService, quels sont ses
différentes WebMethods, quels types ces WebMethods retournent t-elles.

                                                                                                               3
.NET Compact Framework, Tébourbi Riadh, SUP’COM




SOAP

Le principal objectif du protocole SOAP (Simple Object Access Protocol) est de permettre la normalisation
des échanges de données. C’est un standard définissant un protocole indépendant du transport, qui assure
des appels de procédures à distance (RPC) s’appuyant principalement sur le protocole http et sur XML.
Pour vulgariser ce dernier protocole, SOAP permet de faire circuler du XML via du HTTP. Donc lorsqu’on
interroge un WebService, les données sont transmises en XML via le port 80 (HTTP). Rien de plus simple
ensuite pour le développeur de traiter l’information reçue.




   III.    Création d’un premier Web Service avec VS 2005 .NET

III.1   création du Web Service sur le serveur

Nous allons apprendre à créer un Web Service simple avec Visual Studio 2005. Ce Web Service contient
deux Web Méthodes ; une méthode qui retourne une chaine de caractères et une autre qui calcule la somme
deux entiers et retourne un résultat.

Sur VS 2005 cliquez sur « File  New  Web Site ». Dans la fenêtre qui s’ouvre sélectionnez comme type
de projet « Asp .NET Web Service » (langage VB) et comme nom du Web Service « premier_ws ».



                                                                                                            4
.NET Compact Framework, Tébourbi Riadh, SUP’COM




Observons maintenant le code généré par VS 2005 :

Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols

<WebService(Namespace:=quot;http://tempuri.org/quot;)> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Public Class Service
     Inherits System.Web.Services.WebService


                                                                                                      5
.NET Compact Framework, Tébourbi Riadh, SUP’COM
     <WebMethod()> _
     Public Function HelloWorld() As String
         Return quot;Hello Worldquot;
     End Function

End Class

Une classe correspondant à ce Web Service appelée Service a été créée. Une Web Méthode (HelloWorld) a
été également rajoutée automatiquement afin de vous aider à créer vos propres Web Méthodes. La Web
Méthode HelloWorld retourne tout simplement un message « Hello World » et n’a pas d’arguments.
Nous allons rajouter une Web Méthode qui accepte deux arguments entiers et retourne un entier résultat de
la somme des deux entiers :

<WebMethod()> _
   Public Function Somme(ByVal a As Integer, ByVal b As Integer) As Integer
        Return a + b
    End Function



Pour tester le web service cliquez sur le bouton « Start Debugging », le Framework génère une page web qui
permet de tester toutes ses méthodes :




Pour visualiser le contenu du fichier descriptif de ce Web Service (le fameux fichier WSDL) vous pouvez
cliquer sur le lien « Description du service » de la page web. Le fichier WSDL est alors affiché. Sachez que
pour faire fonctionner votre web service vous n’avez pas à comprendre pour l’instant le contenu de ce
fichier. Il faut savoir que ce fichier est communiqué à toute application désirant utiliser ce Web Service afin
qu’elle puisse connaître, entre autre, ces Web Méthodes et les structures de données utilisées.




                                                                                                                  6
.NET Compact Framework, Tébourbi Riadh, SUP’COM




Nous allons tester les Web Méthodes de notre Web Service, pour cela revenez à la page précédente du
navigateur et cliquez sur « HelloWorld », une interface vous proposant de tester cette Web Méthode est alors
affichée :




Cliquez sur « Appeler », le résultat de la Web Méthode est alors affiché (remarquez le type string retourné):
                                                                                                                7
.NET Compact Framework, Tébourbi Riadh, SUP’COM



<?xml version=quot;1.0quot; encoding=quot;utf-8quot; ?>
<string xmlns=quot;http://tempuri.org/quot;>Hello World</string>

Notez que, comme nous l’avons précisé au début de ce document, le format utilisé pour échanger des
données entre le Web Service et l’application cliente est le XML.

Testez maintenant l’autre Web Méthode « Somme », une interface vous proposant d’introduire les deux
entiers est affichée :




De même l’appel de cette méthode génère un résultat au format XML (remarquez le type int retourné):

<?xml version=quot;1.0quot; encoding=quot;utf-8quot; ?>
<int xmlns=quot;http://tempuri.org/quot;>19</int>



III.1   Création d’une application cliente

Nous allons apprendre d’abord comment utiliser notre WebService dans le cadre d’une application
Windows.
Dans VS 2005 créer une application Windows « windows_client » ; « File New Project » :




                                                                                                      8
.NET Compact Framework, Tébourbi Riadh, SUP’COM




En utilisant deux « TextBox » un « Label » créer une interface graphique permettant de rentrer deux entiers
et d’afficher le résultat de leur somme quand on clique sur un bouton « = » :




Pour utiliser un Web Service, il faut ajouter une Web Référence. L'ajout de la Web Référence va permettre
de créer une class Proxy qui vas faire la jonction entre le service Web et votre code.
Cette classe Proxy va vous permettre de faire la relation entre votre application et le WebService.
Dans « Solution Explorer » ajouter une « Web Reference » : « Clic droit  Add Web Reference ».



                                                                                                              9
.NET Compact Framework, Tébourbi Riadh, SUP’COM




Dans la fenêtre qui s’ouvre tapez l’URL du Web Service et cliquez sur « Go » :




Vous pouvez modifier le nom de référence du service dans votre application (par défaut « localhost »), par
exemple « somme ». Une fois le Web Service est « découvert », cliquez sur « Add Reference ».


                                                                                                             10
.NET Compact Framework, Tébourbi Riadh, SUP’COM

Nous voulons à présent appeler la méthode « somme» du web service lorsqu'on clique sur le bouton « = » de
l'interface. Pour cela dans la méthode associée au « Click » sur le bouton « = »:

   -   Créez une instance de la classe « somme » qui représente notre WebService :

       Dim sommeservice As New somme.Service()



   -   Appelez la Web Méthode « somme » à partir de l'instance que vous venez de créer et insérer le
       résultat dans une TextBox. :

          Dim r As Integer
          r = sommeservice.Somme(Integer.Parse(a.Text), Integer.Parse(b.Text))
          result.Text = r.ToString

Notons que nous utilisons Integer.parse(untexte) pour convertir un texte (« parser ») en un entier.

Voici le code entier correspondant à l'événement « Click » du bouton :

Public Class Form1

    Private Sub egal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles egal.Click
        Dim sommeservice As New somme.Service()

          Dim r As Integer
          r = sommeservice.Somme(Integer.Parse(a.Text), Integer.Parse(b.Text))
          result.Text = r.ToString



    End Sub
End Class

Enfin, exécuter l’application et tester le Web Service.

Il est évident que nous n’avons pas besoins d’un Web Service pour calculer la somme de deux entiers, cet
exemple n’est qu’une démonstration de la façon avec laquelle les Web Services sont très simples à
développer sur la plateforme .Net. Nous allons créer maintenant un WebService qui effectue des tâches et
retourne des données bien plus complexes et nous allons créer un client sur plateforme mobile.


           IV         Création du Web Service pays
Nous allons reprendre l’application développée en locale dans la partie II de ce cours utilisant les
informations sur des pays. Nous allons non plus utiliser une base de données en locale sur le mobile mais
servir les informations d’un pays donné en utilisant un Web Service. L’application cliente envoie une
requête au Web Service pour lui demander des informations sur un pays particulier et le Web Service
consulte une base de données au format XML sur le serveur et renvoie un objet de type « pays » qui
encapsule toutes les données le concernant.

Phase I : Création du Web Service

Commencez par créer le web service «pays ». Dans « Solution Explorer » du Web Service commencez par
ajouter le fichier « pays.xml » dans le répertoire « App_Data ».
Créez également un répertoire « flags » et ajoutez-y les fichiers jpeg (les drapeaux des pays) :
                                                                                                            11
.NET Compact Framework, Tébourbi Riadh, SUP’COM




Implémentez ensuite la classe pays comme vous l’avez fait lors de l’application « dbpays_vb » dans la partie
II. Dans la méthode setDrapeau(), utilisez la Classe HttpContext.Current.Server et la méthode MapPath pour
accéder au répertoire physique sur le serveur d’un répertoire virtuel.

Private Sub setDrapeau()
        Dim MyImg As Image
        Dim FlagDir As String
        FlagDir = quot;./flags/quot;

        If (Nom <> quot;?quot;) Then
            MyImg = New Bitmap(HttpContext.Current.Server.MapPath(FlagDir + Nom +
quot;.jpgquot;))
        Else
            MyImg = New Bitmap(HttpContext.Current.Server.MapPath(FlagDir +
quot;unknown.jpgquot;))
        End If

         Dim MemStr As New MemoryStream()
         MyImg.Save(MemStr, ImageFormat.Jpeg)

        Me.pDrapeau = MemStr.GetBuffer()
    End Sub

Implémenter enfin la WebMéthode getPays qui prend en argument un nom de pays et retourne un objet de
type pays.

<WebMethod()> _
       Public Function GetPays(ByVal country As String) As pays
        Dim DataDir As String
        DataDir = quot;./App_Data/quot;
        Dim myDs As New DataSet(quot;dbpaysquot;)
        Dim myDt As DataTable = myDs.Tables.Add(quot;paysquot;)
        myDt.Columns.Add(quot;NOMquot;, System.Type.GetType(quot;System.Stringquot;))
        myDt.Columns.Add(quot;POPULATIONquot;, System.Type.GetType(quot;System.Stringquot;))
        myDt.Columns.Add(quot;DEVISEquot;, System.Type.GetType(quot;System.Stringquot;))
        myDt.Columns.Add(quot;SURFACEquot;, System.Type.GetType(quot;System.Stringquot;))
        myDt.Clear()

         ' Make the NOM column the primary key column.
         Dim PrimaryKeyColumns(0) As DataColumn
         PrimaryKeyColumns(0) = myDt.Columns(quot;NOMquot;)

                                                                                                               12
.NET Compact Framework, Tébourbi Riadh, SUP’COM
          myDt.PrimaryKey = PrimaryKeyColumns

        myDs.ReadXml(HttpContext.Current.Server.MapPath(DataDir + quot;pays.xmlquot;))
        Dim myrow As DataRow = myDt.Rows.Find(country)
        Dim p As pays
        If myrow IsNot Nothing Then
            p = New pays(country, Integer.Parse(myrow(quot;POPULATIONquot;).ToString),
myrow(quot;DEVISEquot;).ToString(), Integer.Parse(myrow(quot;SURFACEquot;).ToString))
        Else
            p = New pays()
        End If
        myDt.Clear()
        Return p
    End Function

Phase II : Création de l’application cliente sur le mobile

Créez une application Vb pour Windows Mobile « pays_client ». Reprenez la même interface graphique que
vous avez réalisé lors de la partie II de ce cours afin d’afficher les informations d’un pays et ajoutez-y un
« TextBox » (appelé Surl) pour que l’utilisateur puisse entrer l’URL du Web Service (l’URL peut être
dynamique):




En exercice vous pouvez maintenant vous-même faire appel au web service lorsque l’utilisateur clique sur le
bouton « Infos », récupérer un objet de la classe pays et afficher ses informations. Il faut savoir que pour
créer une instance de la classe pays dans votre application il faut utiliser votre classe WebService
(référencée par pays_service) de la façon suivante :

                      Public pays As pays_service.pays
                      pays = New pays_service.pays


                                                                                                                13
.NET Compact Framework, Tébourbi Riadh, SUP’COM

Ceci est possible grâce au Web Services même si la classe « pays » est déclarée sur le serveur (le fichier
WSDl) contient toutes les informations concernant cette classe, ce fichier est « découvert » par votre
application lorsque vous ajouter la « Web Reference ». Enfin, pour accéder à l’URL de l’instance de votre
Web Service (appelée pservice par exemple), il faut utiliser sa propriété URL :

                                     Pservice.Url = votre_url

Voici le code de la classe Form1 :

Imports   System.Drawing
Imports   System.Drawing.Imaging
Imports   System.IO
Imports   System.Data
Imports   System.xml

Public Class Form1
    Public pservice As New pays_service.Service()
    Public pays As pays_service.pays
    Dim objBitmap As Bitmap
    Dim strmBuffer As MemoryStream

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles
MyBase.Load
        pservice.Url = Surl.Text
    End Sub

    Private Sub Rech_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Info.Click
        pservice.Url = Surl.Text

          pays = New pays_service.pays
          pays = pservice.GetPays(Npays.Text)
          Pop.Text = pays.pPopulation
          Surf.Text = pays.pSurface
          Dev.Text = pays.pDevise
          Npays.Text = pays.pNom.ToString
          strmBuffer = New System.IO.MemoryStream(pays.pDrapeau)
          objBitmap = New Bitmap(strmBuffer)
          Flag.Image = objBitmap



    End Sub
End Class




                                                                                                             14

Contenu connexe

Tendances

Chp3 - Les Services Web
Chp3 - Les Services WebChp3 - Les Services Web
Chp3 - Les Services WebLilia Sfaxi
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELLilia Sfaxi
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)ENSET, Université Hassan II Casablanca
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRSLilia Sfaxi
 
comment realiser un Service Web
comment realiser un Service Web comment realiser un Service Web
comment realiser un Service Web Nazih Heni
 
eServices-Tp3: esb
eServices-Tp3: esbeServices-Tp3: esb
eServices-Tp3: esbLilia Sfaxi
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWSLilia Sfaxi
 
Services web soap-el-habib-nfaoui
Services web soap-el-habib-nfaouiServices web soap-el-habib-nfaoui
Services web soap-el-habib-nfaouiEl Habib NFAOUI
 
Présentation Exchange 2010
Présentation Exchange 2010Présentation Exchange 2010
Présentation Exchange 2010Majid CHADAD
 
Rapport MS Exchange 2010
Rapport MS Exchange 2010Rapport MS Exchange 2010
Rapport MS Exchange 2010Majid CHADAD
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?GreenIvory
 
Talend ESB : Monitoring, Repartition de Charge et Authentification
Talend ESB : Monitoring, Repartition de Charge et AuthentificationTalend ESB : Monitoring, Repartition de Charge et Authentification
Talend ESB : Monitoring, Repartition de Charge et AuthentificationLilia Sfaxi
 
Chap1 p1-introduction
Chap1 p1-introductionChap1 p1-introduction
Chap1 p1-introductionMoez Re
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web ServicesLilia Sfaxi
 

Tendances (20)

Chp3 - Les Services Web
Chp3 - Les Services WebChp3 - Les Services Web
Chp3 - Les Services Web
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPEL
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
 
Soap
SoapSoap
Soap
 
comment realiser un Service Web
comment realiser un Service Web comment realiser un Service Web
comment realiser un Service Web
 
eServices-Tp3: esb
eServices-Tp3: esbeServices-Tp3: esb
eServices-Tp3: esb
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWS
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
Services web soap-el-habib-nfaoui
Services web soap-el-habib-nfaouiServices web soap-el-habib-nfaoui
Services web soap-el-habib-nfaoui
 
Soap
SoapSoap
Soap
 
Présentation Exchange 2010
Présentation Exchange 2010Présentation Exchange 2010
Présentation Exchange 2010
 
Rapport MS Exchange 2010
Rapport MS Exchange 2010Rapport MS Exchange 2010
Rapport MS Exchange 2010
 
serveur web
serveur webserveur web
serveur web
 
education
educationeducation
education
 
Soa & services web
Soa & services webSoa & services web
Soa & services web
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?
 
Talend ESB : Monitoring, Repartition de Charge et Authentification
Talend ESB : Monitoring, Repartition de Charge et AuthentificationTalend ESB : Monitoring, Repartition de Charge et Authentification
Talend ESB : Monitoring, Repartition de Charge et Authentification
 
Chap1 p1-introduction
Chap1 p1-introductionChap1 p1-introduction
Chap1 p1-introduction
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
 

En vedette

Taller Docentes Narradores
Taller Docentes NarradoresTaller Docentes Narradores
Taller Docentes NarradoresJulioSimonit
 
Estudios Clinicos
Estudios ClinicosEstudios Clinicos
Estudios Clinicosmiguelferlo
 
Toutes Les Femmes
Toutes Les FemmesToutes Les Femmes
Toutes Les FemmesWaco jak
 
€mb@r@zo juv€nil
€mb@r@zo juv€nil€mb@r@zo juv€nil
€mb@r@zo juv€nilmarcelithas
 
Plaza Puerta De Leones
Plaza Puerta De LeonesPlaza Puerta De Leones
Plaza Puerta De Leonesimanolvega
 
Bien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en productionBien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en productionMarc Boivin
 
Projector
ProjectorProjector
Projectorver0
 
LOS TELES
LOS TELESLOS TELES
LOS TELEScmpardo
 
Feb08 Development Plan
Feb08 Development PlanFeb08 Development Plan
Feb08 Development Planguest2639b5
 
Propuesta4 - Proyecto de Ley de Creación de la Universidad de las Artes
Propuesta4 -  Proyecto de Ley de Creación de la Universidad de las ArtesPropuesta4 -  Proyecto de Ley de Creación de la Universidad de las Artes
Propuesta4 - Proyecto de Ley de Creación de la Universidad de las ArtesAsamblea Nacional
 
Entrenamientos
EntrenamientosEntrenamientos
Entrenamientosamiruchi
 
Propuesta2 - Proyecto de Ley de Creación de la Universidad IKIAM
Propuesta2 -  Proyecto de Ley de Creación de la Universidad IKIAMPropuesta2 -  Proyecto de Ley de Creación de la Universidad IKIAM
Propuesta2 - Proyecto de Ley de Creación de la Universidad IKIAMAsamblea Nacional
 
Autopistaen Bolivia
Autopistaen BoliviaAutopistaen Bolivia
Autopistaen Boliviacentrowebs
 
Lire En FêTe 2007 1b
Lire En FêTe 2007 1bLire En FêTe 2007 1b
Lire En FêTe 2007 1bletiti
 
092208 Presentation Prospec Tic
092208 Presentation Prospec Tic092208 Presentation Prospec Tic
092208 Presentation Prospec TicFing
 

En vedette (20)

Solutions Linux 2010
Solutions Linux 2010Solutions Linux 2010
Solutions Linux 2010
 
Demignyparcours
DemignyparcoursDemignyparcours
Demignyparcours
 
Taller Docentes Narradores
Taller Docentes NarradoresTaller Docentes Narradores
Taller Docentes Narradores
 
Estudios Clinicos
Estudios ClinicosEstudios Clinicos
Estudios Clinicos
 
Toutes Les Femmes
Toutes Les FemmesToutes Les Femmes
Toutes Les Femmes
 
€mb@r@zo juv€nil
€mb@r@zo juv€nil€mb@r@zo juv€nil
€mb@r@zo juv€nil
 
Mappemonde
MappemondeMappemonde
Mappemonde
 
Plaza Puerta De Leones
Plaza Puerta De LeonesPlaza Puerta De Leones
Plaza Puerta De Leones
 
Bien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en productionBien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en production
 
Projector
ProjectorProjector
Projector
 
LOS TELES
LOS TELESLOS TELES
LOS TELES
 
Feb08 Development Plan
Feb08 Development PlanFeb08 Development Plan
Feb08 Development Plan
 
Propuesta4 - Proyecto de Ley de Creación de la Universidad de las Artes
Propuesta4 -  Proyecto de Ley de Creación de la Universidad de las ArtesPropuesta4 -  Proyecto de Ley de Creación de la Universidad de las Artes
Propuesta4 - Proyecto de Ley de Creación de la Universidad de las Artes
 
Entrenamientos
EntrenamientosEntrenamientos
Entrenamientos
 
Propuesta2 - Proyecto de Ley de Creación de la Universidad IKIAM
Propuesta2 -  Proyecto de Ley de Creación de la Universidad IKIAMPropuesta2 -  Proyecto de Ley de Creación de la Universidad IKIAM
Propuesta2 - Proyecto de Ley de Creación de la Universidad IKIAM
 
Autopistaen Bolivia
Autopistaen BoliviaAutopistaen Bolivia
Autopistaen Bolivia
 
India
IndiaIndia
India
 
Lire En FêTe 2007 1b
Lire En FêTe 2007 1bLire En FêTe 2007 1b
Lire En FêTe 2007 1b
 
092208 Presentation Prospec Tic
092208 Presentation Prospec Tic092208 Presentation Prospec Tic
092208 Presentation Prospec Tic
 
Jai Appris
Jai ApprisJai Appris
Jai Appris
 

Similaire à .NET DotNet CF - 3

les servlets-java EE
les  servlets-java EEles  servlets-java EE
les servlets-java EEYassine Badri
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de phpGautier DUMAS
 
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbhindguendouz2000
 
Architectures orientées services
Architectures orientées servicesArchitectures orientées services
Architectures orientées servicesDonia Hammami
 
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbWebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbHINDGUENDOUZ
 
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEIntroduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEMarouan OMEZZINE
 
presentation_NET creation et consomation de services.pptx
presentation_NET creation et consomation de services.pptxpresentation_NET creation et consomation de services.pptx
presentation_NET creation et consomation de services.pptxhachchaneemsi
 
eServices-Tp2: bpel
eServices-Tp2: bpeleServices-Tp2: bpel
eServices-Tp2: bpelLilia Sfaxi
 
Déploiement d’applications
Déploiement d’applicationsDéploiement d’applications
Déploiement d’applicationsMohammed Jaafar
 
WEB SERVICE SOAP, JAVA, XML, JAXWS
WEB SERVICE SOAP, JAVA, XML, JAXWSWEB SERVICE SOAP, JAVA, XML, JAXWS
WEB SERVICE SOAP, JAVA, XML, JAXWSLhouceine OUHAMZA
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSRenaud Dumont
 
Presentation
PresentationPresentation
Presentationbois
 

Similaire à .NET DotNet CF - 3 (20)

Tutoriel web service
Tutoriel  web serviceTutoriel  web service
Tutoriel web service
 
Présentation SOA
Présentation SOAPrésentation SOA
Présentation SOA
 
les servlets-java EE
les  servlets-java EEles  servlets-java EE
les servlets-java EE
 
Web Services
Web ServicesWeb Services
Web Services
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de php
 
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
Chapitre 1.pdf
Chapitre 1.pdfChapitre 1.pdf
Chapitre 1.pdf
 
Architectures orientées services
Architectures orientées servicesArchitectures orientées services
Architectures orientées services
 
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbWebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEIntroduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
 
presentation_NET creation et consomation de services.pptx
presentation_NET creation et consomation de services.pptxpresentation_NET creation et consomation de services.pptx
presentation_NET creation et consomation de services.pptx
 
eServices-Tp2: bpel
eServices-Tp2: bpeleServices-Tp2: bpel
eServices-Tp2: bpel
 
Advanced html5
Advanced html5Advanced html5
Advanced html5
 
Déploiement d’applications
Déploiement d’applicationsDéploiement d’applications
Déploiement d’applications
 
WEB SERVICE SOAP, JAVA, XML, JAXWS
WEB SERVICE SOAP, JAVA, XML, JAXWSWEB SERVICE SOAP, JAVA, XML, JAXWS
WEB SERVICE SOAP, JAVA, XML, JAXWS
 
Sécurisation des wcf
Sécurisation des wcfSécurisation des wcf
Sécurisation des wcf
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJS
 
Presentation
PresentationPresentation
Presentation
 
La plateforme JEE
La plateforme JEELa plateforme JEE
La plateforme JEE
 

Plus de Riadh Tebourbi (Ai1990) (6)

.NET DotNet CF - 2
.NET DotNet CF - 2.NET DotNet CF - 2
.NET DotNet CF - 2
 
.NET DotNet CF - 1
.NET DotNet CF - 1.NET DotNet CF - 1
.NET DotNet CF - 1
 
Cours SIG
Cours SIGCours SIG
Cours SIG
 
Reconstruction 3 D
Reconstruction 3 DReconstruction 3 D
Reconstruction 3 D
 
Cours J2ME
Cours J2MECours J2ME
Cours J2ME
 
Teledetection Sig
Teledetection SigTeledetection Sig
Teledetection Sig
 

.NET DotNet CF - 3

  • 1. Développement d’applications mobiles sur .net Compact Framework Tébourbi Riadh SUP’COM 2005 Partie 3 Les Web Services Mise à jour Décembre 2006
  • 2. .NET Compact Framework, Tébourbi Riadh, SUP’COM I. Introduction Les web services est une technologie WEB nouvelle permettent l’invocation de fonctions distantes, présentes sur des systèmes distribués et hétérogènes, grâce au protocole HTTP et à XML. C’est un mécanisme de communication entre serveurs de données et d’applications selon une architecture orientée services. Dans une architecture orientée services (SOA, Service Oriented Architechture), le système d’information est structuré afin que ses ressources (données, traitements) soient accessibles uniquement par routage de messages entre interfaces réseau. SOA est une approche de type client/serveur selon laquelle une application est un ensemble de services logiciels et de consommateurs de services (également appelés clients). Pour être plus claire, un service web est un composant applicatif mis à la disposition sur un réseau et disposant de méthodes que l’on peut invoquer à distance via l’emploi de protocoles standards. Les services Web présentent l’avantage d’être indépendants des plateformes et réutilisables. Un web service est une interface qui décrit un ensemble d’opérations accessibles via un réseau par des messages XML standards. Les WebServices sont apparus pour faciliter la tâche des développeurs pour distribuer leurs applications. Contrairement aux idées reçues, Microsoft n’a pas créé les WebServices mais a participé avec de grandes entreprises telles que IBM, SUN, etc. à la standardisation des WebServices. II. Fonctionnement Les services Web sont une technologie permettant à des applications de dialoguer via Internet, par l’échanges de messages fondé sur des standard (XML), et ceci indépendamment des plate-formes et des langages sur lesquelles elles reposent. Il ya des acteurs principaux dans l’utilisation des services Web : - Le fournisseur de services qui publie le service ; - Le demandeur de service qui demande l’utilisation d’un service - L’annuaire de service (optionnel) qui est lui-même un fournisseur de service permettant de répertorier l’ensemble des fournisseurs de services. Sa présence n’est pas indispensable pour que l’échange ait lieu, il suffit que le demandeur ait connaissance de l’adresse (URL) du fournisseur du service, sans nécessité de référencement systématique du service dans un annuaire. 2
  • 3. .NET Compact Framework, Tébourbi Riadh, SUP’COM Les deux principaux protocoles utilisés pour un échange basique entre demandeur et fournisseur sont basés sur le WSDL et SOAP. Description du service : WSDL La norme WSDL (Web Service Description Language) est fondée sur XML. Elle permet de spécifier le format de messages, les protocoles qui doivent être utilisés et la localisation des différentes machines qui mettent en œuvre un Service Web. Elle définit un format de document qui permet de décrire l’interface d’un Service Web. Un document WSDL contient les informations suivantes : - L’adresse du service web correspondant ; - La manière dont les applications vont interopérer avec le Web Service (le Binding) - Les opérations (une opération est une séquence d’envoies de messages) à effectuer Pour chacune de ces opérations, le document précise : - Quel type de protocole de transport utiliser ; - Sur quelles règles d’encodage se baser pour échanger des messages ; - Quels messages seront échangés lors de cette opération Le document WSDL contient donc toutes les informations nécessaires pour permettre à une application cliente de découvrir et communiquer avec le Service Web qu’il décrit. WSDL permet de décrire les services comme un ensemble d’opérations et de messages abstraits reliés (Bind) à des protocoles et des serveurs réseaux. En résumé, chaque WebService possède un fichier de spécification : c’est ce qu’on appelle la WSDL. C’est à partir de ce fichier que le développeur pourra savoir comment interroger le WebService, quels sont ses différentes WebMethods, quels types ces WebMethods retournent t-elles. 3
  • 4. .NET Compact Framework, Tébourbi Riadh, SUP’COM SOAP Le principal objectif du protocole SOAP (Simple Object Access Protocol) est de permettre la normalisation des échanges de données. C’est un standard définissant un protocole indépendant du transport, qui assure des appels de procédures à distance (RPC) s’appuyant principalement sur le protocole http et sur XML. Pour vulgariser ce dernier protocole, SOAP permet de faire circuler du XML via du HTTP. Donc lorsqu’on interroge un WebService, les données sont transmises en XML via le port 80 (HTTP). Rien de plus simple ensuite pour le développeur de traiter l’information reçue. III. Création d’un premier Web Service avec VS 2005 .NET III.1 création du Web Service sur le serveur Nous allons apprendre à créer un Web Service simple avec Visual Studio 2005. Ce Web Service contient deux Web Méthodes ; une méthode qui retourne une chaine de caractères et une autre qui calcule la somme deux entiers et retourne un résultat. Sur VS 2005 cliquez sur « File  New  Web Site ». Dans la fenêtre qui s’ouvre sélectionnez comme type de projet « Asp .NET Web Service » (langage VB) et comme nom du Web Service « premier_ws ». 4
  • 5. .NET Compact Framework, Tébourbi Riadh, SUP’COM Observons maintenant le code généré par VS 2005 : Imports System.Web Imports System.Web.Services Imports System.Web.Services.Protocols <WebService(Namespace:=quot;http://tempuri.org/quot;)> _ <WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _ <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Public Class Service Inherits System.Web.Services.WebService 5
  • 6. .NET Compact Framework, Tébourbi Riadh, SUP’COM <WebMethod()> _ Public Function HelloWorld() As String Return quot;Hello Worldquot; End Function End Class Une classe correspondant à ce Web Service appelée Service a été créée. Une Web Méthode (HelloWorld) a été également rajoutée automatiquement afin de vous aider à créer vos propres Web Méthodes. La Web Méthode HelloWorld retourne tout simplement un message « Hello World » et n’a pas d’arguments. Nous allons rajouter une Web Méthode qui accepte deux arguments entiers et retourne un entier résultat de la somme des deux entiers : <WebMethod()> _ Public Function Somme(ByVal a As Integer, ByVal b As Integer) As Integer Return a + b End Function Pour tester le web service cliquez sur le bouton « Start Debugging », le Framework génère une page web qui permet de tester toutes ses méthodes : Pour visualiser le contenu du fichier descriptif de ce Web Service (le fameux fichier WSDL) vous pouvez cliquer sur le lien « Description du service » de la page web. Le fichier WSDL est alors affiché. Sachez que pour faire fonctionner votre web service vous n’avez pas à comprendre pour l’instant le contenu de ce fichier. Il faut savoir que ce fichier est communiqué à toute application désirant utiliser ce Web Service afin qu’elle puisse connaître, entre autre, ces Web Méthodes et les structures de données utilisées. 6
  • 7. .NET Compact Framework, Tébourbi Riadh, SUP’COM Nous allons tester les Web Méthodes de notre Web Service, pour cela revenez à la page précédente du navigateur et cliquez sur « HelloWorld », une interface vous proposant de tester cette Web Méthode est alors affichée : Cliquez sur « Appeler », le résultat de la Web Méthode est alors affiché (remarquez le type string retourné): 7
  • 8. .NET Compact Framework, Tébourbi Riadh, SUP’COM <?xml version=quot;1.0quot; encoding=quot;utf-8quot; ?> <string xmlns=quot;http://tempuri.org/quot;>Hello World</string> Notez que, comme nous l’avons précisé au début de ce document, le format utilisé pour échanger des données entre le Web Service et l’application cliente est le XML. Testez maintenant l’autre Web Méthode « Somme », une interface vous proposant d’introduire les deux entiers est affichée : De même l’appel de cette méthode génère un résultat au format XML (remarquez le type int retourné): <?xml version=quot;1.0quot; encoding=quot;utf-8quot; ?> <int xmlns=quot;http://tempuri.org/quot;>19</int> III.1 Création d’une application cliente Nous allons apprendre d’abord comment utiliser notre WebService dans le cadre d’une application Windows. Dans VS 2005 créer une application Windows « windows_client » ; « File New Project » : 8
  • 9. .NET Compact Framework, Tébourbi Riadh, SUP’COM En utilisant deux « TextBox » un « Label » créer une interface graphique permettant de rentrer deux entiers et d’afficher le résultat de leur somme quand on clique sur un bouton « = » : Pour utiliser un Web Service, il faut ajouter une Web Référence. L'ajout de la Web Référence va permettre de créer une class Proxy qui vas faire la jonction entre le service Web et votre code. Cette classe Proxy va vous permettre de faire la relation entre votre application et le WebService. Dans « Solution Explorer » ajouter une « Web Reference » : « Clic droit  Add Web Reference ». 9
  • 10. .NET Compact Framework, Tébourbi Riadh, SUP’COM Dans la fenêtre qui s’ouvre tapez l’URL du Web Service et cliquez sur « Go » : Vous pouvez modifier le nom de référence du service dans votre application (par défaut « localhost »), par exemple « somme ». Une fois le Web Service est « découvert », cliquez sur « Add Reference ». 10
  • 11. .NET Compact Framework, Tébourbi Riadh, SUP’COM Nous voulons à présent appeler la méthode « somme» du web service lorsqu'on clique sur le bouton « = » de l'interface. Pour cela dans la méthode associée au « Click » sur le bouton « = »: - Créez une instance de la classe « somme » qui représente notre WebService : Dim sommeservice As New somme.Service() - Appelez la Web Méthode « somme » à partir de l'instance que vous venez de créer et insérer le résultat dans une TextBox. : Dim r As Integer r = sommeservice.Somme(Integer.Parse(a.Text), Integer.Parse(b.Text)) result.Text = r.ToString Notons que nous utilisons Integer.parse(untexte) pour convertir un texte (« parser ») en un entier. Voici le code entier correspondant à l'événement « Click » du bouton : Public Class Form1 Private Sub egal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles egal.Click Dim sommeservice As New somme.Service() Dim r As Integer r = sommeservice.Somme(Integer.Parse(a.Text), Integer.Parse(b.Text)) result.Text = r.ToString End Sub End Class Enfin, exécuter l’application et tester le Web Service. Il est évident que nous n’avons pas besoins d’un Web Service pour calculer la somme de deux entiers, cet exemple n’est qu’une démonstration de la façon avec laquelle les Web Services sont très simples à développer sur la plateforme .Net. Nous allons créer maintenant un WebService qui effectue des tâches et retourne des données bien plus complexes et nous allons créer un client sur plateforme mobile. IV Création du Web Service pays Nous allons reprendre l’application développée en locale dans la partie II de ce cours utilisant les informations sur des pays. Nous allons non plus utiliser une base de données en locale sur le mobile mais servir les informations d’un pays donné en utilisant un Web Service. L’application cliente envoie une requête au Web Service pour lui demander des informations sur un pays particulier et le Web Service consulte une base de données au format XML sur le serveur et renvoie un objet de type « pays » qui encapsule toutes les données le concernant. Phase I : Création du Web Service Commencez par créer le web service «pays ». Dans « Solution Explorer » du Web Service commencez par ajouter le fichier « pays.xml » dans le répertoire « App_Data ». Créez également un répertoire « flags » et ajoutez-y les fichiers jpeg (les drapeaux des pays) : 11
  • 12. .NET Compact Framework, Tébourbi Riadh, SUP’COM Implémentez ensuite la classe pays comme vous l’avez fait lors de l’application « dbpays_vb » dans la partie II. Dans la méthode setDrapeau(), utilisez la Classe HttpContext.Current.Server et la méthode MapPath pour accéder au répertoire physique sur le serveur d’un répertoire virtuel. Private Sub setDrapeau() Dim MyImg As Image Dim FlagDir As String FlagDir = quot;./flags/quot; If (Nom <> quot;?quot;) Then MyImg = New Bitmap(HttpContext.Current.Server.MapPath(FlagDir + Nom + quot;.jpgquot;)) Else MyImg = New Bitmap(HttpContext.Current.Server.MapPath(FlagDir + quot;unknown.jpgquot;)) End If Dim MemStr As New MemoryStream() MyImg.Save(MemStr, ImageFormat.Jpeg) Me.pDrapeau = MemStr.GetBuffer() End Sub Implémenter enfin la WebMéthode getPays qui prend en argument un nom de pays et retourne un objet de type pays. <WebMethod()> _ Public Function GetPays(ByVal country As String) As pays Dim DataDir As String DataDir = quot;./App_Data/quot; Dim myDs As New DataSet(quot;dbpaysquot;) Dim myDt As DataTable = myDs.Tables.Add(quot;paysquot;) myDt.Columns.Add(quot;NOMquot;, System.Type.GetType(quot;System.Stringquot;)) myDt.Columns.Add(quot;POPULATIONquot;, System.Type.GetType(quot;System.Stringquot;)) myDt.Columns.Add(quot;DEVISEquot;, System.Type.GetType(quot;System.Stringquot;)) myDt.Columns.Add(quot;SURFACEquot;, System.Type.GetType(quot;System.Stringquot;)) myDt.Clear() ' Make the NOM column the primary key column. Dim PrimaryKeyColumns(0) As DataColumn PrimaryKeyColumns(0) = myDt.Columns(quot;NOMquot;) 12
  • 13. .NET Compact Framework, Tébourbi Riadh, SUP’COM myDt.PrimaryKey = PrimaryKeyColumns myDs.ReadXml(HttpContext.Current.Server.MapPath(DataDir + quot;pays.xmlquot;)) Dim myrow As DataRow = myDt.Rows.Find(country) Dim p As pays If myrow IsNot Nothing Then p = New pays(country, Integer.Parse(myrow(quot;POPULATIONquot;).ToString), myrow(quot;DEVISEquot;).ToString(), Integer.Parse(myrow(quot;SURFACEquot;).ToString)) Else p = New pays() End If myDt.Clear() Return p End Function Phase II : Création de l’application cliente sur le mobile Créez une application Vb pour Windows Mobile « pays_client ». Reprenez la même interface graphique que vous avez réalisé lors de la partie II de ce cours afin d’afficher les informations d’un pays et ajoutez-y un « TextBox » (appelé Surl) pour que l’utilisateur puisse entrer l’URL du Web Service (l’URL peut être dynamique): En exercice vous pouvez maintenant vous-même faire appel au web service lorsque l’utilisateur clique sur le bouton « Infos », récupérer un objet de la classe pays et afficher ses informations. Il faut savoir que pour créer une instance de la classe pays dans votre application il faut utiliser votre classe WebService (référencée par pays_service) de la façon suivante : Public pays As pays_service.pays pays = New pays_service.pays 13
  • 14. .NET Compact Framework, Tébourbi Riadh, SUP’COM Ceci est possible grâce au Web Services même si la classe « pays » est déclarée sur le serveur (le fichier WSDl) contient toutes les informations concernant cette classe, ce fichier est « découvert » par votre application lorsque vous ajouter la « Web Reference ». Enfin, pour accéder à l’URL de l’instance de votre Web Service (appelée pservice par exemple), il faut utiliser sa propriété URL : Pservice.Url = votre_url Voici le code de la classe Form1 : Imports System.Drawing Imports System.Drawing.Imaging Imports System.IO Imports System.Data Imports System.xml Public Class Form1 Public pservice As New pays_service.Service() Public pays As pays_service.pays Dim objBitmap As Bitmap Dim strmBuffer As MemoryStream Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load pservice.Url = Surl.Text End Sub Private Sub Rech_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Info.Click pservice.Url = Surl.Text pays = New pays_service.pays pays = pservice.GetPays(Npays.Text) Pop.Text = pays.pPopulation Surf.Text = pays.pSurface Dev.Text = pays.pDevise Npays.Text = pays.pNom.ToString strmBuffer = New System.IO.MemoryStream(pays.pDrapeau) objBitmap = New Bitmap(strmBuffer) Flag.Image = objBitmap End Sub End Class 14