OData, c’est le nom court de l’Open Data Protocol. C’était un des sujets de la keynote du MIX ce matin (avec entre autres… IE9…): il s’agit d’un protocole qui repose sur ATOM et JSON pour permettre d’accéder à des flux de données de la même manière quelle que soit la donnée exposée!. Sauf que ce qu’il permet de faire en plus, c’est intégrer une requête (de filtrage par exemple) directement dans l’URL. Et ça c’est génial pour les développeurs Windows Phone parce que:

  • On économise de la bande passante en ne téléchargeant que les données nécessaires
  • On économise de la batterie en déportant le filtrage sur le serveur

Et en plus on récupère les données sous formes de flux XML (ATOM) facilement manipulables avec Silverlight :)

La meilleure partie de la nouvelle reste que la stratégie de Microsoft autour de ce protocole est de le rendre le plus ouvert et utilisable sur toutes les plateformes possibles et imaginables..

Coté client (consommateur de contenu) par exemple il existe déjà des librairies pour .NET (et donc Windows Phone) bien entendu mais aussi Javascript, PHP, Java, iPhone (Objective-C), et même PowerPivot de Excel qu’on peut télécharger sur la page du SDK Odata

Coté serveur (producteur de contenu), Sharepoint 2010, IBM Websphere, SQL Azure et Azure Table Storage, ainsi que SQL Reporting Services supportent déjà l’exposition de flux OData. Dallas, la “marketplace de l’information ouverte” de chez Microsoft, supporte également OData… et l’intégration de plusieurs flux en même temps, pour manipuler des datasets ultra complexes! La richesse des données qu’on va pouvoir retrouver dans Dallas va surement ouvrir encore plein de portes pour des applications mobiles innovantes!

Bien entendu vous pouvez également toujours en utilisant le SDK exposer des flux OData depuis votre application :)

Ce type d’ouverture cross-platform permet aux développeurs d’exposer une seule fois le même flux de données indépendamment du client qui va la consommer: IPhone, Android, Windows Phone, Browser web… Indubitablement une best practice :)

Le système de requête est simple et permet non seulement la récupération de donnée, mais aussi la mise à jour, l’insertion, la suppression… permettant par exemple d’éditer et de se servir de listes hébergées dans un Sharepoint hyper simplement!

Pour la partie intégration dans Silverlight, un killer feature à mes yeux est qu’on peut traduire directement des requêtes LINQ en requêtes OData: vous écrivez votre code comme d’habitude et vous utilisez les API OData pour sérialiser votre requête. Super simple et vraiment puissant et plaisant!

Il y aura indubitablement plus de contenu OData sur ce blog dans les prochaines semaines.. surement des petites démos avec Azure et Sharepoint :)