With many new features and improvements, ADO.NET puts a new face on the old ADO model. The most notable of these advances are the elimination of the ADO recordset and that the internal data structures of ADO.NET are now XML based. Having gained support for XML, it should be no surprise that ADO.NET incorporates as much of XML as possible. XML was selected for the core data representation for several reasons: XML offers a wider array of supported data types, data can easily pass through firewalls and internal networks, XML does not care about databases or query languages, and it allows binding to any user-defined interface. ADO.NET replaces the eliminated recordset with a new and more complete object called the DataSet. This object represents a disconnected, cached copy of data that behaves much like a database by storing a collection of hierarchical data tables, rows, columns, relationships, and constraints.
Before you use ADO.NET components, the appropriate namespaces must be included. The System.Data namespace will always need to be included because it contains the core database components. Next, depending on the source of your data, one of two namespaces will need to be included. For best performance for a direct Microsoft SQL Server 2000 connection, the System.Data.SqlClient namespace should be used for best performance. For all other connection types, such as Access and Oracle, the System.Data.OleDb namespace is required.