Galin Iliev's blog

Software Architecture & Development

Indexed LINQ

With the upcoming Visual Studio 2008 and new C# and VB syntax the abbreviature LINQ is already wide spread. With LINQ are mentioned a few branches- LINQ to SQL (the most popular one), LINQ to Objects, LINQ to XML.

But adding features for working with data to object oriented language brings its questions. Let's see the definition of LINQ to Objects from

"LINQ to Objects allows .NET developers to write “queries” over collections of objects. Out of the box there is a large set of query operators that provide a similar depth of functionality to what we expect from any SQL language working with a relational database, and if what we need isn’t present out-of-the-box, we can add our own."

Sounds good, isn't it? But the question arises: By having collection of objects (similar to tables) and language that allow writing queries (similar to SQL) is is there a way to speed up processing (similar to indexes)?

This is reasonable question and there are articles on the subject already. This is called i4o (indexes 4 objects). Here are some articles and links:

I think this is interesting and there is a future for it but in low market segment. I know there is such thing as Object Database and this sounds like one. In the posts I read it seems that MS won't put effort on something that would compete SQL Server 2005 Express if it grows enough. They'll rather improve SQL Server to support mapping and with this they'll achieve part if the goal while having SQL Server in the shape we know it. This is not in far future. It is already known that MS SQL Server 2008 will have Entity Framework built in.