Yesterday Microsoft launched a mini-wave of data access related technology in a new way. Normally these types of announcements would be made at a PDC or Tech·Ed. This time a combination of blog entries, papers on MSDN, a screencast and a Channel 9 video was used. Nevertheless it appears to be a quite low key announcement, since it doesn’t appear yet on the MSDN front page.
So what is it all about? Microsoft announced its plans for ADO.NET 3.0 and simultaneously released a new CTP preview release of LINQ.
Microsoft is bringing Object-Relational Mapping (OR/M) to the masses in ADO.NET 3.0. The goal is to raise the data access programming model to a new conceptual level. This new conceptual level is much closer to how you would model the problem domain in objects than how you would model this in a normalized relational database.
The excellent paper Next-Generation Data Access: Making the Conceptual Level Real on MSDN explains Microsoft's vision for raising the level of abstraction from the logical (relational) level to the conceptual (entity) level to eliminate the impedance mismatch for both applications and data services.
There is another excellent paper which gives a more technical view: ADO.NET Tech Preview: Overview. It explains how Microsoft intends to fill the gap between the relational database and objects by building a new conceptual model on top of ADO.NET 2.0.
The May 2006 LINQ CTP includes updated versions of both the C# 3.0 and the VB 9.0 compilers and new versions of the LINQ library classes that are mostly contained in the namespaces. System.Query, System.Xml.XLinq and System.Data.DLinq. Also included are lots of samples and a lot of documentation on how to use LINQ.
I can also recommend watching the Channel9 video where Scoble talks with a bunch of program managers on What’s coming in ADO.NET? It answers what has happened to OPath. This query language, which was used in WinFS, is not just succeeded by LINQ. Queries can also be expressed in a new SQL derived language called eSQL. There are more videos coming up on this topic in the near future.
Some related blog entries are:
And finally you can watch a screencast with a demo of the mapping technology and a demo of a prototype of a graphical mapping tool. It maps the database schema to the entity schema.