Share via


WCF Data Services Toolkit, une belle boite à outils !

Le protocole ouvert de données OData fondé sur des technologies Web existantes comme http, AtomPub (Atom Publishing Protocol) et JSON est utilisé pour exposer et accéder aux informations de diverses sources de données, y compris les bases de données relationnelles, les systèmes de fichiers, les systèmes de gestion de contenu (CMS) et des sites Web traditionnels. OData permet de requêter, filtrer, paginer, trier des données mais aussi de modifier ou supprimer ces mêmes données au travers d’une simple URI et en REST (put/post/get/delete). Les données sont donc accessibles par toute plateforme cliente supportant http.

Si la requête est une URI, la réponse est un flux de données Atom ou JSON, ce qui permet, dans le même temps, d’interpréter facilement le résultat (voire même à l’extrême d’en faire l’analyse (parsing) à la main). Ceci se traduit aujourd’hui par la disponibilité de très nombreux kits de développement logiciel (SDK) et bibliothèques OData côté client qui vous faciliteront la manipulation.

Les services de données WCF (WCF Data Services), une composante du Microsoft .NET Framework, constituent un framework qui offre une solution clé en main pour la création de services Web OData et inclut une bibliothèque cliente avec laquelle vous pouvez construire des clients qui consomment des flux de données OData. Il ne s’agit pas juste d’un simple protocole pour les applications RIA (Rich Internet Application). Ce framework a aussi été conçu pour les développeurs de services à grande échelle et possèdent, à ce titre, de nombreuses fonctionnalités nécessaires dans un tel contexte, comme les limites de pagination serveur, le support de la mise en cache HTTP, les services sans état (stateless), la prise en charge du streaming ou encore un modèle de fournisseur (provider) enfichable.

Vous pouvez consulter le Centre de développement MSDN dédié qui propose un guide de démarrage et les liens vers les différentes ressources.

S’il existe d’autres producteurs OData, la plateforme Microsoft SharePoint 2010, le service Microsoft SQL Azure en sont une illustration, la boite à outils des services de données WCF (WCF Data Services Toolkit), née à des besoins de services réels en production tels que Netflix, eBay, Facebook, Twitpic, etc., constitue une extension intéressante des services de données WCF précédents.

Celle-ci se propose, en effet, de faciliter la création et l’exposition de services OData au dessus de n’importe quelle source de données arbitraires, et ce sans avoir une connaissance poussée de la technologie LINQ. Si les services de données WCF rendent trivial l’ajout d’OData au-dessus de données en mémoire et relationnelles et fournissent en tant que tels une extensibilité pour offrir un service OData au-dessus de toute source de données, l’approche proposée, bien que techniquement possible, requiert une connaissance poussée de LINQ (p. ex. arbres d’expressions et interface IQueryable). Ceci rend la barrière d'entrée trop élevée pour le développement de services dans de nombreux scénarios client.

Que vous souhaitiez offrir un service OData au-dessus de fichiers XML, d'une API Web existante (SOAP, RESTful, etc.), d’une agrégation (mash-up) entre le service de stockage Microsoft Windows Azure et Microsoft SQL Azure, d’une base de données héritée (legacy) pour laquelle vous souhaitez réorganiser le schéma exposé et donc la restructurer sans toucher à ladite base, etc., la boite à outils des services données WCF va vous y aider significativement même si cela ne signifie pas que chaque scénario sera rendu trivial.

Par ailleurs, en plus de cette fonctionnalité, la boite à outils fournit également un ensemble d’aides et de raccourcis bienvenus vis-à-vis des tâches courantes requises par chaque service OData du monde réel. Vous disposez ainsi d’une prise en charge de JSONP, d’une mise en cache en sortie, d’une « désinfection » (sanitization) des URI et plus encore…

Nous vous invitons à visionner la session vidéo MIX11 OData Roadmap: Exposing Any Data Source as an OData qui en donne un bon aperçu.

La boite à outils des services de données WCF est disponible sur la forge Codeplex sous licence libre Microsoft Public License (Ms-PL) à l’adresse https://wcfdstoolkit.codeplex.com.

La disponibilité d’une telle boite étend au final virtuellement à l’infini la liste des producteurs OData existants.

Vous pouvez ensuite facilement valider le service OData résultant avec l’outil en ligne de validation de service OData. La disponibilité d’un tel service permet aux développeurs de services OData de tester leurs implémentations vis-à-vis de la spécification.

La capture suivante montre le résultat de l’analyse du service de données OGDI.

image