7.9 Where Are We?
You've completed your in-depth exploration of ADO.NET by looking at the XML capabilities built into the data access stack at all levels. You've looked at integration of ADO.NET and XML in DataSet (including using XSD schemas to generate typed DataSets) and the XmlDocument/DataSet hybrid called XmlDataDocument, including its implementation of an XPathNavigator class. Finally, you've seen that SQL Server directly supports SELECT, INSERT, UPDATE, and DELETE operations using XML. This support is built into two data providers: the SqlClient data provider and the new SqlXml managed classes.
What I hope you take away from this exposition is that ADO.NET not only supports relational data through the data provider, DataSet, and Adapter architecture but also adds support for all types of nonrelational data through its integration with XML. ADO.NET provides a wide integration layer between relational and nonrelational data via XML and also provides direct XML support of relational data.
You've learned the basic concepts of ADO.NET, but unless you started programming data access yesterday, you already have some data access code written using some other API. You may even have code that exposes your data through OLE DB providers. Chapter 8 discusses strategies for provider writers in the new .NET world and explores the ways existing OLE DB providers work with the OleDb managed provider. Chapter 9 explains migration strategies for consumer writers who use existing APIs.