As mentioned earlier, you can divide ADO.NET functionality into two categories: connected and disconnected. In Chapter 3, you examined the disconnected functionality provided by the .NET Framework that resides in the System.Data and System.Data.Common namespaces. In disconnected environments, the data is stored in memory.
In this chapter, we explain ADO.NET functionality in connected environments, which means reading and storing data in data sources. Specifically, you access data from a data source and save data back to the data source with the help of a bridge between the application and the data source; in ADO.NET this bridge is a data provider. ADO.NET provides many data providers for different data sources to make data access fast, reliable, and easy to use. Each data provider has data components (classes) that let you connect to a data source, as well as read, write, add, delete, and update data. In this chapter, you'll learn about these components and how to work with them.
So what are the ADO.NET data providers? Technically, an ADO.NET data provider is a set of classes that enables you to connect to a data source in order to read and write data from a data source. A data provider also has components that serve as conduits between the data source and the DataSet. In this way, the architecture isolates the manipulation of data from the data source.