Most applications will need to manage data, sooner or later, and the .NET Framework provides ADO.NET as a data-handling API that's available to all .NET applications. You can think of ADO.NET as the latest evolution of Microsoft's database APIs, and it supplements the existing support for DAO, ADO, and other data-management object models. ADO.NET has been designed to make it possible to support multitiered, distributed applications. In addition, ADO.NET provides strong support for working with XML data.
Basically, ADO.NET is an object model that lets you build sets of data in memory. You can create DataSets from data you hard-code in a program, retrieve them from a text file, an Exchange server, or a database system. ADO.NET does not "care" where the data comes from as long as you can fit it into rows and columns within its objects.
In this chapter, you will learn about the different classes available in ADO.NET. You will learn which classes just deal with data in memory and which classes are used to retrieve data from databases. Two distinct namespaces provide the various ADO.NET objects: One allows you to work with data from any OLE DB data source, and one is solely for working with data from Microsoft SQL Server 7.0 or later.