ADO.NET

Template:Nofootnotes

**ADO.NET** is a set of computer software components that programmers can use to access data and data services. It is a part of the base class library that is included with the Microsoft .NET Framework. It is commonly used by programmers to access and modify data stored in relational database systems, though it can also access data in non-relational sources. ADO.NET is sometimes considered an evolution of ActiveX Data Objects (ADO) technology, but was changed so extensively that it can be considered an entirely new product.

 File:DotNet3.0.svg

## ADO.NET and Visual Studio

Functionality exists in the Visual Studio IDE to create specialized subclasses of the DataSet classes for a particular database schema, allowing convenient access to each field through strongly-typed properties. This helps catch more programming errors at compile-time and makes the IDE's Intellisense feature more beneficial.

## Entity Framework

Main article: ADO.NET Entity Framework
**ADO.NET Entity Framework** is a set of data-access APIs for the Microsoft .NET Framework, similar to the Java Persistence API, targeting the version of ADO.NET that ships with .NET Framework 3.5. ADO.NET Entity Framework is included with .NET Framework 3.5 Service Pack 1 and Visual Studio 2008 Service Pack 1, released on 11 August 2008. An Entity Framework *Entity* is an object which has a key representing the primary key of a logical datastore entity. A conceptual *Entity Data Model* (Entity-relationship model) is mapped to a datastore schema model. Using the Entity Data Model, the Entity Framework allows data to be treated as entities independently of their underlying datastore representations.

*Entity SQL*, a SQL-like language, serves for querying the Entity Data Model (instead of the underlying datastore). Similarly, Linq extension *Linq-to-Entities* provides typed querying on the Entity Data Model. Entity SQL and Linq-to-Entities queries are converted internally into a *Canonical Query Tree* which is then converted into a query understandable to the underlying datastore (e.g. into SQL in the case of a Relational database). The entities can use their relationships, with their changes committed back to the datastore.

## Third-party data providers

A wide range of data providers can give access to the database engines like Oracle, Microsoft SQL Server, MySQL, PostgreSQL, SQLite, DB2, and others. Such data-providers include:

* Connector/Net: native data provider for MySQL database server (free)
* DataDirect Connect for ADO.NET: data providers for Oracle, DB2, SQL Server, and Sybase database servers from DataDirect (commercial)
* DB2 .NET: data provider for DB2 database server from IBM (free)
* dotConnect: data providers for Oracle, MySQL, PostgreSQL, SQL Server, and SQLite database servers from Devart (free and commercial)
* Npgsql: open source data povider for PostgreSQL database server (free)
* Oracle Data Provider for .NET (ODP.NET): data provider for Oracle database server from Oracle (free)
* VistaDB: 100% managed ADO.NET provider with SQL Server like syntax
* EffiProz: open source ADO.NET provider for EffiProz pure c# database
* RDM Server: data provider for the RDM Server database system from Birdstep Technology, Inc (free)
* System.Data.SQLite: open source ADO.NET provider for SQLite databases (free)

## See also

* ADO (ADO vs ADO.NET)
* ODBC
* OLE DB
* XML
* ADO.NET Entity Framework

Data Access and Synchronization* ADO.NET Data Services
* Microsoft Codename "Jasper"
* Microsoft Sync Framework

## External links

Template:Col-3### ADO.NET

* ADO.NET Overview on MSDN
* ADO.NET with Windows Forms using Visual C#
* ADO.NET for the ADO Programmer
* ADO.NET Connection Strings
* ADO.NET Team Blog

Template:Col-3

### Entity Framework

* Entity Framework
* Entity Data Model

Template:Col-3

### Incubation Projects

* Data Access Incubation Projects
* Jasper, download

1. REDIRECT Template:.NET