One of the the coolest things about Data Services is its provider model.
Any data-source can be exposed as an OData Data Service simply by implementing a few interfaces. SharePoint 2010 implements these interfaces to expose list data, and you can too, to expose just about anything: Facebook? Twitter? You name it.Once you've done that you can query the data using any of the OData clients, including PowerPivot, LINQ over Data Services etc etc. Now Data Services ships a couple of providers in the box, including one for the Entity Framework and one that works against in memory objects using reflection. In this series of posts I will walk through creating a Custom Data Service Provider (DSP) slowly layering in more and more capabilities.
There are 5 new interfaces:
If you simply want a read-only service you only need to implement IDataServiceMetadataProvider and IDataServiceQueryProvider.
In Part 2 we'll see how Data Services learns about your custom DSP and gets hold of your implementation of these interfaces...