[ADO.NET] Utiliser Astoria (ADO.NET Data Services)
Une nouvelle technologie est apparue avec le framework 3.5 SP1: Data Services (ou anciennement appelée Astoria).
En quelques mots, ce nouvel outil va nous permettre d'exposer nos données par un service en quelques clics.
Fini la création à la main de votre service WCF avec vos méthodes GetUser, SetUser ... Désormais vous allez pouvoir associer une source de données (linq-to-sql, to-entity etc...) à un service accessible par le web.
Afin d'illustrer parfaitement où se trouve ADO.NET Data Services j'ai emprunté cette illustration d'une présentation MS:
Astoria va s'occuper entièrement de la partie: Hosting/Création d'interface & méthodes/Exposition mex.
Après un peu de thoérie passons à l'entraînement:
-Nous avons une table Users
-Un client Winform souhaitant afficher ces users
Nous allons commencer par créer notre projet de type library contenant un élément linq-to-entity (ou sql):
Puis vient s'ajouter un nouveau projet de type service web contenant un élément ADO.NET Data Services:
Nous changeons la classe générique de notre ADO.NET Data Services par le nom de notre source de données, puis nous appliquons le droit "lire pour tous":
A ce stade vous pouvez tester votre service dans votre navigateur web. Il est même possible de requêter dans l'url en ajoutant ?$filter=votre requete.
Maintenant il ne manque plus qu'à dire à mon client (winform, silverlight, asp.net etc) de venir chercher les infos sur ce service.
J'ajoute du coté client la référence au service (clic droit, ajouter service reference).
Puis j'instancie l'objet avec l'url du service et je le passe au datasource de ma gridview:
Résultat final:
Et voilà ! En seulement cinq minutes ont expose nos données grâce à WCF.
Attention cependant à la sécurité, Astoria ne vous dispense pas des authentifications WCF par exemple.
Pour conclure, encore un nouvel outil qui va faciliter la vie aux développeurs.