Question
In the spirit of
Current LINQ providers:
- LINQ to Objects.
- LINQ to SQL.
- LINQ to XML.
- LINQ to Entities.
- LINQ to WMI.
- LINQ to LDAP.
- LINQ to Internet.
- LINQ to Dataset.
- LINQ to nHibernate.
So, what is after LINQ? Does there any data source LINQ not cable of querying it?
[Edit] From Adam Robinson's answer: What sort of data source (if any) doesn't lend itself toward a formal query definition?
Solution
This isn't after Linq as such, but it's probably after Linq as you currently think about it acting as a pull mechanism on a sequence.
The new .NET 4.0 IObservable<T>
and IObserver<T>
interfaces (a.k.a. the Rx framework) extend Linq's capabilities to allow a push mechanism and simpler construction of event driven asynchronous workflows. There's plenty more about it if you follow the other posts on the blog I linked to.
So Linq wasn't capable of querying events. But now it is!
OTHER TIPS
You're forgetting LINQ-to-Datasets, et al. However, the question isn't so much about whether or not LINQ is capable of querying a particular data source, since exposing something to LINQ (in a provider-specific way instead of falling back on LINQ-to-objects) just relies on interface implementation. The real question would be what sort of data source (if any) doesn't lend itself toward a formal query definition.
- LINQ to WMI
- LINQ to LDAP
- LINQ to Internet - query the Internet (from Google)
Linq to nHibernate has also just been completed
You asked:
What sort of data source (if any) doesn't lend itself toward a formal query definition?
Linq is a provider so as long as the data source has a way of querying it then it should be possible to create a Linq provider for it. In my mind if you have a data source you also have a "formal query definition" or can create one. If not, is it really a data source or just of blob?