As an evolution to ActiveX Data Objects (ADO) Technology, it has been part of .net framework right from version first. The framework to access data stores from managed code. It supports two kinds of architectures :
- Fast, forward and connected model for read only access using Readers and Updates using commands.
- Disconnected model using DataSets where you want to cache data locally and do aggressive manipulations on data.
- Base-Class-Based Provider Model : While in ADO.NET 1.x the db specific providers implemented the base interface, 2.0 comes with a base implementation which implements the common functionality across databases.
- Tracing : Generalized Tracing and Instrumentation integrated with ADO.NET to ease diagnostics.
- Total Four Providers : For SQL Server, Oracle, Ole DB and ODBC
- Asynchronous Command Execution : Support asynchronous command execution using Begin and End methods for long running commands.
- Multiple Active Resultsets (MARS) : In 1.x it was possible to have only one active resultset on a connection. With 2.0 you can have multiple active resultsets on a single connection provided resultsets have been populated from different commands. Available only for SQL Server 2005
- Data change notification : For SQL Server 2005 and with SQL Server Service Broker, applications can register for notifications whenever data changes in db.
- Batch Updates : Batch Updates supported from Datasets.
- Entity Framework : Based on Entity Data Model (EDM) exposes logical relational data model as conceptual business model and provides Enity SQL (ESQL) to work directly against entities.
- Codename "Jasper" : A tool to create data-serving applications which generate data classes at runtime instead of design time code generation. It uses Enity Framework.
- Codename "Astoria" : Enables applications to expose data as data services over http in formats like XML. Helps in integration of client applications with data stores over web without developing a complicated server layer.
- LINQ to SQL (formerly known as DLinq) : Enables LINQ to work directly on SQL db objects like tables, rows etc.
- LINQ to Dataset : Use LINQ to directly query datasets.
- LINQ to Entities : Like ESQL, LINQ can also be used to query Entities exposed by entity framework.