Active Data Objects .NET (ADO.NET)

Eintrag zuletzt aktualisiert am: 18.11.2009

ADO.NET ist eine Programmierschnittstelle für den Zugriff auf Daten aller Art, insbesondere relationale Datenbanken. ADO.NET ist der Nachfolger der ActiveX Data Objects (ADO) und realisiert durch den Namespace System.Data in der .NET Framework Class Library (FCL).

ADO.NET gehört zu den Teilen der FCL, die nicht Teil des ISO- und ECMA-Standards "CLI" sind.

Die wichtigsten Änderungen gegenüber dem nicht-.NET-basierten Vorgänger ADO sind:

  • Eine Zweiteilung in die beiden Programmierschnittstellen OLEDB und ADO gibt es nicht mehr: ADO.NET ist eine einheitliche Schnittstelle für alle .NET-fähigen Sprachen.
  • Der Zugriff auf Daten erfolgt über so genannte .NET Data Provider (auch Managed Provider).
  • Die Stelle der RecordSet-Klasse im Objektmodell übernehmen die Klassen DataSet, DataTable und DataReader.
  • Ein DataSet kann mehrere Tabellen aufnehmen und auch hierarchische Beziehungen zwischen den enthaltenen Tabellen herstellen. Ein DataSet ist eine Mischung aus dem relationalen und dem hierarchischen Datenmodell.
  • Alle Datenzugriffe sind verbindungslos (engl. Disconnected). Mit ADO.NET wird die Verbindung zur Datenquelle nach dem Einlesen der Daten zunächst getrennt. Die Daten werden "offline", d.h. ohne Verbindung zur Datenquelle bearbeitet. Später ist eine Überführung dieser Daten in die Datenquelle möglich (Batch Update). Damit gibt Architektur, Daten unabhängig und "weit" entfernt von der Datenquelle (z.B. auf der anderen Seite einer Firewall) zu bearbeiten.
  • Es gibt keine explizite Unterscheidung zwischen den zwei Cursor-Typen (clientseitig oder serverseitig) mehr. Ein DataSet arbeitet immer mit einem clientseitigen Cursor, ein DataReader arbeitet immer mit einem serverseitigen Cursor.
  • ADO.NET ist sehr eng mit dem Standard Extensible Markup Language (XML) verbunden. Relationale Daten können mit den Möglichkeiten von XML bearbeitet werden. Umgekehrt können XML-Daten in ein DataSet eingelesen werden und bearbeitet werden - selbst dann, wenn die Daten hierarsch sind. Eine Beschränkung auf "flache" XML-Daten wie im klassischen ADO gibt es nicht mehr. Durch Verwendung einer Selbstbeschreibung in Form eines XSD-Schemas können Daten verlustfrei zwischen einem DataSet und einem XML-Dokument hin- und herkonvertiert werden.

Neuerungen in ADO.NET Version 2.0

  • ADO.NET wird vom Funktionsumfang gleichmächtig wie ADO 2.7, einschließlich der DDL-Funktionen aus ADOX
  • ADO.NET soll mit OLEDB und ODBC hinsichtlich der Funktionalität mithalten können
  • Es gibt Vereinfachungen für den Zugriff auf Daten (SQLDataTable alternativ zu Command-DataAdapter)
  • Spezielle Version von ADO.NET zum Datenzugriff innerhalb von Yukon
  • Innerhalb vom SQL Server laufendes ADO.NET greift über SQLContext.GetConnection und SQLContext.GetCommand auf laufenden Vorgang zu
  • Neue Namespaces System.Data.SQLServer und System.Data.SQLTypes
  • Multiple Active Resultsets (MARS)
  • Server Cursor
  • Bulk Update
  • Paging support
  • UDT support (early oder late binding)