- Mitsu Furuta – Microsoft France
- Pierre Lagarde – Microsoft France

Troisième session… Troisième « nouveauté » et évidemment, c’est toujours en beta pour ne pas changer :)

Microsoft Astoria… Ou plutôt ADO.NET Data Services (qui semble être le nom définitif) est un framework, respectant la technologie REST, qui permet d’exposer des sources de données sur le web sous forme de services dans le but de les requêter. Et pour une session comme celle la, des speakers de marque qui sont Mitsu et Pierre Lagarde, un duo vraiment plaisant à suivre.

Avec l’introduction précédente, vous avez du tilter deux fois. Premièrement, j’ai parlé de « services » ce qui signifie que WCF va être présent. Deuxièmement, j’ai dit qu’il allait être possible de « requêter » ces services et là on pense tout de suite à Linq ou plus précisément Linq To HTTP car c’est réellement des URL qui vont être construites via Linq dans le but de récupérer des données. Pour ceux qui iront plus loin dans cette nouvelle technologie, vous apprendrez que les données renvoyées pourront être soit sous le format JSON (JavaScript Object Notation), soit sous le format Atom/App.

On va donc pouvoir accéder à ces services par simple requête HTTP en passant des ordres tels que GET, POST, PUT et DELETE fournissant toutes les opération nécessaires pour lire, écrire, modifier et supprimer sur les données exposées au travers des services.

Du côté des sources de données, ADO.NET Data Services se base sur l’ADO.NET Entity Framework via l’Entity Data Model qui offre une couche d’asbtraction des données.

Preuve à l’appui, je vais vous donner un exemple extrêmement basique et sûrement pas nécessairement correcte mais le principe sera là. Imaginez qu’un service donné expose une méthode qui permet de récupérer des clients via son interface. On pourra donc entrer l’URL suivante dans un navigateur web:

http://localhost/servicey.svc/Customers

Et rien qu’en appelant cette URL, on va récupérer notre liste de clients avec leurs informations liées le tout sous format XML. Allons plus loin, on va pouvoir récupérer un client donné via son index :

http://localhost/servicey.svc/Customers(0)

Et pourquoi pas ne demander que le nom du client à l’index 0 ?!…

http://localost/servicey.svc/Customers()/Name

Je vais arrêter les exemples là mais le système va encore plus loin en permettant de spécifier des conditions tel que : « Je ne veux que les clients dont le nom commence par ‘A’ ».

Dans l’exemple que je viens de vous donner, j’ai requêter mon service via des URL mais ne vous inquiétez pas car grâce à Linq To HTTP vous allez passer par un proxy pour que ce formatage d’URL soit totalement transparent pour vous. L’URL « http://localhost/servicey.svc/Customers » donnera en Linq :

var q = from c in servicey.Customers
select c;

Le résultat sera exactement le même.

J’espère que cet avant goût vous a donner l’envie d’en apprendre bien plus car ça en vaut le coup, croyez moi.

A noter que ce framework est disponible directement avec les ASP.NET Futures.

Les liens à ne pas rater :

Présentation d’ADO.NET Data Services par notre Thomas
Téléchargez ASP.NET Futures July 2007
Téléchargez ADO.NET Entity Framework beta 3