Utiliser le visualisateur OData avec OGDI

Le service de données du kit de démarrage OGDI (Open Government Data Initiative) constitue essentiellement une « boîte noire » à destination des développeurs souhaitant créer une application qui utilise les données exposées par le service. Dans la pratique, le service de données de type REST (Representational State Transfer) se présente sous la forme d’un point de terminaison OData en façade de stockages Windows Azure qui contiennent les informations publiques, ou données ouvertes (open data), mises à disposition. Il n'y a donc aucun besoin de connaître quoi que ce soit sur les détails internes de mise en œuvre du service pour interagir avec lui.

Le modèle de programmation pour le service est le protocole ouvert de données OData (Open Data Protocol). Le point de terminaison du service décrit la forme des données et tout ce dont vous avez besoin est d’interagir avec le service de données. Toutefois, il est souvent utile de visualiser la forme des données proposées par le service pour en obtenir une meilleure compréhension. Le visualisateur OData a été créé pour tout cela ! C'est en effet une extension pour Visual Studio qui permet une visualisation en lecture seule des types, des propriétés, des associations, et autres objets dans le modèle de données entité (Entity Data Model ou EDM) retournés à partir du point de terminaison des métadonnées OData.

Pour installer le visualisateur depuis Visual Studio 2010, sélectionnez Extension Manager depuis le menu Tools de Visual Studio. Le visualisateur est disponible depuis la galerie en ligne (online gallery), et vous pouvez le trouver facilement en précisant “Open Data Protocol” dans le champ de recherche situé en haut à droite :

image

Cliquez sur le bouton Download pour le télécharger et suivez les instructions de l’assistant. (Le visualisateur OData est disponible directement en téléchargement depuis la galerie Visual Studio à l’adresse https://visualstudiogallery.msdn.microsoft.com/en-us/f4ac856a-796e-4d78-9a3d-0120d8137722.)

Une fois le visualisateur installé, créez depuis l’environnement Visual Studio 2010 par exemple un projet Silverlight 4 en C#.

image

Dans notre contexte, Silverlight 4 inclut en effet une bibliothèque cliente Services de données WCF (WCF Data Service) qui vous permet d'accéder facilement aux données d’un service exposant des flux OData comme le service de données OGDI. Comme souligné ci-avant, OData est fondé sur un modèle d'entité et de relation qui vous permet d'accéder aux données dans le style des ressources REST. Les applications Silverlight peuvent ainsi accéder à ces données et notamment les requêter grâce au protocole http. Pour plus d'informations sur les Services de données WCF, consultez le site MSDN dédié ainsi que le blog MSDN du groupe produit.

Une fois votre projet créé, il est nécessaire d’ajouter une référence au service de données OGDI. Pour cela, dans Visual Studio, faites un clic-droit sur le projet Silverlight et sélectionnez Add Service Reference. Un assistant vous guide dans le processus de création d’une référence de service. L’information principale à fournir vis-à-vis d’une référence de service est l’URI du service à référencer depuis l’application Silverlight. La capture suivant montre un exemple d’ajout de référence sur le service de données OGDI France disponible à l’adresse https://ogdifrancedataservice.cloudapp.net/v1/frOpenData.

image

L’assistant d’ajout de référence de service crée une classe de contexte côté client utilisée pour interagir avec le service de données. Le contexte client vous abstrait des détails de mise en œuvre avec http et les URIs avec le modèle de programmation proposé et vous permet de vous concentrer dans le cas présent sur les classes C# et XAML. Le contexte client intègre également une implémentation d’un fournisseur (provider) LINQ et, de ce fait, les requêtes LINQ sont prises en charge au niveau du proxy. L’assistant d’ajout de référence de service génère également un jeu de classes proxy client qui reflète les types qui sont exposées par le service référencé.

// OGDI France data service context

OGDIFrance.frOpenDataDataService OGDIService = new OGDIFrance.frOpenDataDataService(new Uri("https://ogdifrancedataservice.cloudapp.net/v1/frOpenData"));

Une fois la référence ajoutée au service de données OGDI France, faites un clic-droit sur celle-ci et sélectionnez View in Diagram :

image

Le visualisateur OData consiste en deux composants principaux, à savoir :

  1. Le diagramme (diagram) qui peut visualiser tout ou partie du modèle sous la forme d’un graphique en deux dimensions,
  2. Le navigateur de modèle (model browser) model browser, qui s’affiche sous la forme d’une fenêtre outil Visual Studio et qui présente l’intégralité du modèle dans un arbre hiérarchique.

L’activation du visualisateur conduit à l’affichage d’un écran de vue d’ensemble sous la forme d’une nouvelle fenêtre document. Cet écran fournit un ensemble de liens rapides pour rapidement constituer un diagramme :

Lien

Comportement

Open Data Protocol Model Browser

Rend la fenêtre du navigateur de modèle visible.

Namespaces add all

Ajoute tous les types d'entité et les types complexes et par extension, toutes les associations, au modèle.

Entity Types add all

Ajoute tous les types d'entité et toute association entre eux, au diagramme.

Entity Types add all hubs

Ajoute les types d'entité dont le nombre d'associations est dans le top 25% dans le modèle sur le diagramme. Ceci vise à fournir un point de départ utile en donnant un sens au modèle en ajoutant que les types les plus connectés.

Complex Types add all

Ajoute tous les types complexes au diagramme.

Associations add all

Ajoute toutes les associations et leurs types d'entité au diagramme.

La capture suivante montre le service dans son ensemble.

image

Le visualisateur représente les jeux d’entité sous forme de boîtes, et les relations entre les entités comme des lignes reliant les boîtes. Comme vous pouvez le constater, le service de données OGDI est complètement plat et ne contient aucune relation en l’absence de lignes entre les boîtes. Ceci constitue simplement une caractéristique du service de données OGDI et n’est pas représentatif des services OData en général.

Vous pouvez zoomer à l’intérieur pour n’afficher que quelques boîtes. Vous pouvez ainsi voir les clés et propriétés pour chacun des types.

image

Pour afficher le navigateur de modèle, sélectionnez Data Services Model Browser depuis le menu View dans Visual Studio. Vous pouvez également faire un clic droit dans le visualisateur et sélectionnez Show In Model Browser, ce qui amène le navigateur de modèle dans la vue et sélectionne l’objet situé sous la souris.

image

Le navigateur de modèle propose une vue non filtrée du modèle. Sa racine contient un nœud schéma pour chaque espace de noms présent dans le modèle, ainsi qu’un nœud Conteneur Entité.

Ceci conclut ce rapide tour d’horizon du visualisateur OData pour Visual Studio. Vous pouvez visionnez à titre de complément la vidéo How-To: Open Data Protocol [OData] Visualizer Extension for VS2010 sur le site https://odataprimer.com.