Wednesday, March 16, 2011

Disconnected Data Access Architecture in ADO.NET

Have you ever faced the question that the Application stays connected to the DataBase system even when it is not using the DB services. It really is a headache to the Database as well as to the developer, because it will waste the Database resources and it will decease the performance of the Database. For this ADO.NET has provided us a nice concept called Disconnected Data Access Architecture.

First of all I will give you a basic idea about what ADO.NET is. I am sure most of you might have used or currently using ADO.NET. ADO.NET is a Object Oriented set of libraries or components which allows developers to fill the gap between Application and the data source, which simply means it provides the interface for the Application to Retrieve, Update and Manipulate data in the data source.

ADO.Net Primary Objects

Disconnected Data Access Architecture in ADO.NET

In traditional data access components, first we initiate a connection to the Database and pass SQL queries to the database and make things happen. But the problem here is, Application is always connected to the Database even when it is not communicating with the Database and if the Database is communicating with the Database most of the time it is for querying and viewing data.

To overcome this ADO.NET uses DataSets. When the Application needs to contact Database, it automatically connects to the Database and retrieve data from the Database and stores data in a DataSet which is a local buffer of persistent data. As soon as storing data is completed in the DataSet the connection gets terminated. Then the Application can do all the retrieving, updating and manipulating data from and to the DataSet, which relies completely out side of the Database. After the manipulation data in the DataSet is completed, we can synchronize them back with the Database.

And that is a brief introduction about how Disconnected Data Access Architecture works in ADO.NET. Please feel free to correct me.

Happy Coding.

Regards,
Jaliya