Utilisation des Web Services dans une application pour Pocket PC sous .NET
Nous allons d’abord apprendre à intégrer un ou plusieurs Websercices dans un projet développé dans l’environnement .NET Compact Framework, pour une utilisation sur Pocket PC et en C#. Vous verrez que grâce à l’environnement .NET, il suffit de quelques lignes de code pour utiliser efficacement les Web Services.
Commencez par créer un nouveau projet, choisissez un projet C# comme type de projet avec le modèle « Application Smart Device » :

Dans la fenêtre qui apparaît ensuite, sélectionnez « Pocket PC » comme plate-forme et « Application Windows » comme type de projet :

Voila, nous sommes maintenant face un formulaire vierge.
Pour illustrer cet article, nous allons utiliser un WebService qui nous permet d’obtenir des informations sur les départements français (numéro, préfecture, code postaux ...).
L’adresse de ce WebService est :
http://www.e-naxos.com/scripts/enwscp.dll/wsdl/IODCODESPOSTAUX
La première étape est donc d’ajouter cette référence à notre projet. Pour cela, dans le menu Projet, cliquez sur « Ajouter une référence Web... ».
La fenêtre qui apparaît vous invite à mettre l’URL du WebSerivice désiré.
Vous pouvez également, à travers cette fenêtre, accéder aux services UDDI (Universal Description Discovery and Integration) de Microsoft, qui est un annuaire de Web Services , qui vous permettra de rechercher un service.
En ce qui concerne notre projet, nous allons directement inscrire l’url ci-dessus. En cliquant ensuite sur « Aller à », vous obtiendrez dans la fenêtre une description du WebService sélectionné :

La zone de gauche indique les différentes méthodes que nous pourrons appeler à partir de ce WebService.
Cliquez sur « Ajouter la référence » pour valider.
Vous voyer alors apparaître cette référence dans l’explorateur de solution :

Dans cet exemple, nous allons donner un numéro de département, et nous voulons récupérer à la fois le nom du département correspondant et sa préfecture. Pour cela nous allons utiliser deux méthodes du WebService :
GetDepartmentForCode() et GetDepartmentAdminCenterForCode() prennent là chaîne de caractère (string) correspondant au numéro du département et rendent respectivement sous forme de string le nom du département et sa préfecture.
Pour cela, nous aurons besoin dans le formulaire, au niveau interface de notre programme :
• d’un TextBox pour inscrire le numéro du département (je l’appellerais « textBoxNumero »)
• de deux Label pour écrire les résultats de la demande (département et villle) (respectivement « labelNomDep » et « labelNomPref »)
• d’un bouton de validation pour lancer la requête (« buttonRechercher »)
• d’autres Label pour expliciter notre interface
Tous ces éléments sont disponibles dans l’onglet « Device Controls » de la fenêtre « Boîte à outils ». Il suffit de les insérés dans votre formulaire (« Form1.cs [Design] » si vous n’avez pas modifié les éléments du projet).
Vous obtenez alors un résultat similaire à :

Maintenant, nous allons passer au code proprement dit. Comme vous allez le voir, c’est simple et rapide.
Double cliquez sur le bouton « Rechercher » pour entrer dans le code au niveau de la méthode reliée à l’événement de clic : buttonRechercher_Click().
Il y a 3 étapes à suivre :
• Création d’une nouvelle instance de la classe correspondant au WebService. Pour connaître le nom de la classe correspondante au WebService, il suffit de regarder le nom dans l’explorateur de solution. Dans notre exemple il s’agit de la classe WebService_PPC.com.e_naxos.www.IODCODESPOSTAUXservice().
• Appel des méthodes souhaitées avec comme argument le texte du « textBoxNumero ».
• Ecriture des résultats dans les labels correspondants.
On obtient donc un code similaire à celui-ci :
private void buttonRechercher_Click(object sender, System.EventArgs e)
{
// Création de l'instance du WebService :
com.e_naxos.www.IODCODESPOSTAUXservice instance_WebService = new WebService_PPC.com.e_naxos.www.IODCODESPOSTAUXservice();
// Lecture du numéro du département inscrit par l'utilisateur :
string numeroDepartement = textBoxNumero.Text;
// Récupération des résultats par appel aux méthodes de l’instance :
string nomDepartement = instance_WebService.GetDepartmentForCode(numeroDepartement);
string nomPrefecture = instance_WebService.GetDepartmentAdminCenterForCode(numeroDepartement);
// Affichage des résultats :
labelNomDep.Text = nomDepartement;
labelNomPref.Text = nomPrefecture;
}
Il ne reste plus qu’à compiler votre programme. Si votre émulateur est bien configuré et qu’il peut bien accéder à Internet, vous obtiendrez alors :


Voilà c’est aussi simple que ça !
Remarque : pour que votre émulateur ait bien un accès vers Internet, veillez à préciser que celui-ci doit utiliser votre la connexion à votre ordinateur de bureau pour se connecter, dans les propriétés avancées des connexions :

puis :

Ne pas oublier de régler le proxy si besoin, aussi dans les propriétés des connexions (Démarrer → Paramètres → onglet Connexions → Connexions → Modifier mon serveur proxy).
Comme annoncé au début de cet article, l’intégration de Web Services dans un projet .NET est vraiment simple. Vous pouvez ainsi facilement et rapidement les utiliser pour vos programmes sur Pocket PC, ce qui peut s’avérer de plus en plus utile au vu de la demande croissante d’accès sans fil à Internet sur ce support (par le biais d’une connexion WiFi ou GPRS par exemple).