ADO.NET Data Services (nom de code Astoria) est un framework permettant l’exposition de services d’accès au données accessibles à distance.

Ce type de service permet notamment aux applications riches internet (Silverlight, ASP.NET AJAX Framework) et desktop (Windows Forms) d’accéder à des données sans s’adresser directement à la base de données, ce qui est souvent impossible dans de tels scénarios.

La sortie d’ADO.NET Data Services est prévue pour juin ou juillet 2008.

Principes généraux

ADO.NET Data Services fournit un service générique permettant d’exposer des données issues d’ADO.NET Entity Framework, et éventuellement d’autres sources de données. Les données exposées sont également décrites par des métadonnées publiées par le service. Le service générique est implémenté en s’appuyant sur WCF (Windows Communication Fondation) qui permet le support de JSON et d’Atom dans .NET 3.5.

On communique avec ce service générique en adressant des requêtes qui permettent de :

  • Consulter les entités (filtres, tris …)
  • Créer des entités
  • Mettre à jour des entités
  • Supprimer des entités

Ce service générique est fondé sur une architecture REST :

  • Utilisation de HTTP et des verbes standards (POST, GET, PUT, DELETE)
  • Utilisation de l’URL et de divers paramètres pour exprimer les requêtes de consultation des entités
  • Utilisation des attributs du POST pour les requêtes de création, mise à jour, et suppression d’entités
  • Utilisation de JSON (JavaScript Object Notation) ou d’Atom pour la réponse.

Le client du service utilise une API différente selon sa nature :

  • Pour les clients Windows Forms et Silverlight 2.0, on peut accéder aux données en utilisant LINQ avec le provider LINQ for HTTP.
  • Pour les clients Web ou Silverlight 1.0, il existe également un API client JavaScript qui permet d’accéder aux services ADO.NET Data Services.

Sécurité des données

Il est possible de restreindre l’accès aux entités, selon l’utilisateur, et de gérer les droits en consultation, modification, création et suppression. Il est également possible de filtrer les données, selon l’utilisateur, via un système à base d’intercepteur, très similaire à ce celui de Spring Security (ex Spring Acegi) dans le monde Java.

Le filtrage des données est formulé grâce à LINQ avec une rare élégance. C’est bluffant !

En guise de conclusion

ADO.NET Data Services est une technologie très prometteuse, à surveiller de prêt ! Rendez-vous en juin ou juillet, si tout va bien.

Billets sur le même thème