Dans la première partie de ce tutoriel, nous nous sommes intéressés à l’environnement de développement et à ses prérequis, et vous avez ensuite créé sur cette base le projet Visual Studio 2010 de l’application Silverlight pour Windows Phone.

Il convient de générer à présent les classes proxy qui vous permettent de vous abstraire du protocole OData et ainsi de pouvoir manipuler directement des objets métiers.

image

Dans ce tutoriel et comme mentionné dans la première partie, nous souhaitons créer avec vous une application fondée sur les données ouvertes de la ville de Rennes, données ouvertes sur lesquelles nous nous sommes déjà appuyés dans d’autres billets.

Le but consiste à développer une application qui liste les places de stationnement réservées aux personnes handicapées et situées dans un rayon de 200 mètres. La finalité étant de permettre aux personnes concernées de trouver le plus rapidement et efficacement possible la place la plus proche au travers d’une interface simple (ce genre d’application est susceptible d’être utilisée par des conducteurs, il faut donc que l’interface suscite le moins d’interactions possible de la part du conducteur pour ne pas le déconcentrer).

Pour consommer un service de données exposé par OGDI, il faut donc dans un premier temps trouver l’adresse du point de terminaison du service OData qui publie ces données. Si on se rend sur l’instance française d’OGDI à l’adresse http://ogdifrance.cloudapp.net, en cliquant sur l’onglet Données et en cherchant parmi les ensembles de données, on constate que l’adresse du service de données qui nous intéresse est la suivante : http://ogdifrancedataservice.cloudapp.net/v1/frOpenData/.

Si vous ouvrez cette URL avec Internet Explorer, vous pouvez constater qu’à la racine du service, vous avez tous les ensembles de données exposés par l’instance française d’OGDI (sachant que celui qui nous intéresse ici est StationnementHandicapes).

image

Maintenant que vous avez l’adresse du service OData, vous allez pouvoir générer les classes proxy. Suivant la version de votre SDK Windows Phone, l’approche est légèrement différente.

Windows Phone SDK 7.0

Si vous avez installé le SDK 7.0, il vous faut suivre la démarche suivante. Téléchargez les bibliothèques WCF Data Services pour Windows Phone (OData) et l’utilitaire de génération de code pour Windows Phone à l’adresse suivante (ODataClient_BinariesAndCodeGenToolForWinPhone.zip) : http://odata.codeplex.com/releases/view/54698#DownloadId=161862

Une fois le téléchargement terminé, veuillez extraire le fichier .zip à l’endroit de votre choix. Ouvrez ensuite une invite de commande et à l’aide de la commande cd, rendez-vous au dossier où vous avez dé-zippé votre fichier .zip. Ensuite, tapez la commande suivante pour générer les classes proxy.

Datasvcutil.exe /uri:http://ogdifrancedataservice.cloudapp.net/v1/frOpenData

/DataServiceCollection /Version:2.0 /out:RennesStationnementHandiSvc.cs

image

(Le plus simple pour cela est de télécharger le .bat suivant et de le copier dans le répertoire dans lequel vous avez téléchargé le client WCF Data Services pour Windows Phone 7 et de l’exécuter.)

Cette commande génère un fichier RennesStationnementHandiSvc.cs contenant les classes proxy permettant de manipuler des données provenant du service OData de l’instance OGDI France.

Une fois le fichier RennesStationnementHandiSvc.cs généré, insérez-le dans votre projet Visual Studio en faisant un clic-droit sur votre projet puis Add, Existing Item et allez pointer vers le fichier RennesStationnementHandiSvc.cs que vous venez de créer.

image

Une fois le fichier inclus dans votre projet, vous devez ajouter une référence vers la bibliothèque System.Data.Services.Client.dll qui se trouve dans le même répertoire que là où vous avez créé le fichier RennesStationnementHandiSvc.cs.

Pour cela, faites un clic-droit sur votre projet, puis choisissez Add Reference. Dans la fenêtre qui s’ouvre, cliquez sur l’onglet Browse et allez jusqu’au dossier où se trouve l’assemblage System.Data.Services.Client.dll et ajoutez la référence.

Windows Phone SDK 7.1 (Mango)

Si vous avez installé le SDK dans sa version 7.1 la procédure est beaucoup plus simple, comme vous allez tout de suite pouvoir le constater.

Faites simplement un clic-droit sur votre projet puis choisissez Add Service Reference. Dans la boite de dialogue qui s’ouvre, remplissez le champ Address avec http://ogdifrancedataservice.cloudapp.net/v1/frOpenData/, cliquez sur Go, choisissez un espace nom pour votre service (ogdisafe.frOpenData) pour rester consistent avec la partie précédente consacrée au SDK 7.0 puis finalement validez en cliquant sur OK.

image

Voilà, c’en est terminé pour la génération des classes proxy. Vous êtes prêts à consommer les données du service OGDI France et à les afficher dans votre interface. Ceci est l’objet des troisième et quatrième parties de ce tutoriel.