Last Friday a Channel9 video appeared with Anders Hejlsberg and Sam Druker talking about LINQ and Entities. They talk about raising the level of abstraction for programmers when programming against data. Anders makes a very good point at 6m42s that LINQ adds a level of abstraction without taking away capabilities at the bottom level (like writing your own SQL query). The loss of capabilities at the bottom often happens when the level of abstraction is being raised. Anders says: “We are very conscious of not sliding the spectrum up but growing the capabilities.”
At the end of the video (at 21m58s) we get a glimpse into the reason behind the retraction of the MSDN Article called Next-Generation Data Access: Making the Conceptual Level Real which was also about this subject. Microsoft was working on two parallel tracks (ADO.NET vNext and LINQ) on different teams and is now struggling with realigning those efforts.
The Entity concept will be part of the next version of ADO.NET. Note that I no longer call this future version ADO.NET 3.0, since this might cause confusion with the version number of the next version of the .NET Framework itself. LINQ and ADO.NET vNext will NOT be included in the .NET Framework 3.0. Instead .NET 3.0 will contain ADO.NET 2.0. Confusing isn’t it? 🙂