I wrote this article on the Data Access Support in Visual Studio.NET code named “Whidbey” in order to provide and overall positioning paper to describe the data access technologies introduced at the PDC. It describes the strenghs and the primary target scenarios for each data acces technology that has been incorporated into ADO.NET - Relational, Objects and XML. It is in effect a distillation of the Data Access Design Patterns: Navigating the Data Access Maze talk given by Mike Pizzo.

In reality applications will start to use a combination of data access technologies depending on the business problems being addressed. There is a clear trend where the data access is layer is evolving to provide better levels of abstraction, to ease the data model impedence mismatch and continue to provide powerful features for ultimate control. The data access layer still continues to be the pivotal point of development for the majority of applications today.

My favorite highlights of the "Whidbey" data access technologies in ADO.NET are;

  1. Streaming based XML queries over data stored in SQL Server. This provides the ease of heirachary data visualization using an XML schema without requiring to know the complexities of the SQL query language.
  2. XPathDocument as a better DOM. The XPathDocument has faster queries, significantly improved load and save times, typed storage and the sexist bit - databinding to UI controls.
  3. Objectspaces. This and SQLXML in ADO.NET are simply manifestations of the same technology. One is Object-Relational and the other is XML-Relational. Beneath the API facade lies a single common mapping and querying engine. They are twins, born from the same genetics.
  4. Paging support in ADO.NET. One of my first UI pieces of code that I wrote (after having spent 2 years on VAX systems) was paging code for a listbox control on the Windows 3.1 platform. The code became complex to achieve smooth scrolling and caching just the right amount so as to not hit the server whilst remaining  responsive. It was horrible code to write. Now it is a simple matter of calling the ExecutePageReader method and you are able to page results sets back to the client. Superb!

Comments on this article are welcomed. I am also writing a more detailed article to cover the XML support in "Whidbey".