ADO.NET makes it possible to establish a connection with a data source, send queries and update statements to the data source, and process the results.
ADO.NET has several key components:
Application or component; processes and calls ADO.NET functions to submit SQL statements and retrieve results.
DataSet; as in-memory cache of data which functions like a disconnected XML data cache. The overall functions of the DataSet closely recall those of an in-memory database. The DataSet is designed to run in the application space wherever the logic requires local data. This helps increase scalability of systems by reducing load on the major database backends and enabling local processing of data across whatever tier the application requires. For flexibility, the DataSet provides XML and relational interfaces of the data to the developer.
DataReader; which provides a direct, read-only SQL interface to the backend. The DataReader is a component of the data provider.
ADO.NET Data Provider; connects an ADO.NET application to the backend data store. The data provider comprises the Connection, Command, DataReader and DataAdapter objects. The data provider supplies connection information through the Connection object.
The following figure shows a scenario in which the application and the ADO.NET data provider are both built with managed code. The application can connect to a database using either a DataSet and a DataAdapter or using a DataReader.