Active Data Objects .NET 3.x (ADO.NET 3.x)
Eintrag zuletzt aktualisiert am: 08.11.2007
Bereits auf der
Professional Developers Conference 2005 sah man Codebeispiele, in denen Microsoft neue ADO.NET-Klassen namens MapConnection und MapCommand verwendet. Im Oktober 2005 wollte Microsoft aber noch keine Details dazu verraten. Nachdem die Firma erste ADO.NET-Enthüllungen vom Mai 2006 zunächst wieder zurückgezogen hatte, gibt es jetzt nicht nur umfangreiche Dokumente, sondern auch eine erste Vorabversion der kommenden ADO.NET-Version zum kostenlosen Download.
Fakten
----
Codename: ADO.NET vNext
Tatsächlicher Name: noch unbekannt
Termin: Mitte 2008
Neuerungen
----
1.
ADO.NET Entity Framework
2.
ADO.NET Data Services
Die kommende Version von ADO.NET dreht sich im Schwerpunkt um das so genannte
ADO.NET Entity Framework, mit dem Microsoft den Datenzugriff um eine zusätzliche Abstraktionsschicht erweitert. Kernelement des
ADO.NET Entity Framework sind das
Entity Data Model (
EDM) und die Sprache
Entity SQL (eSQL) sowie die Integration von eSQL in die .NET-
Programmiersprachen (
Language Integrated Query).
Das
Entity Data Model (
EDM) ist eine
XML-Sprache zur Beschreibung von
Datenstrukturen aller Art (relationale Daten,
XML-Daten, .NET-
Objekte).
EDM unterstützt komplexe Datentypen,
Vererbung und Beziehungen.
EDM-Beschreibungen können auf andere
EDM-Beschreibungen abgebildet werden (
EDM Mapping). Ein Beispiel für ein
EDM Mapping ist die Abbildung einer .NET-Klassenhierarchie auf eine relationale
Datenbank. Für das objekt-relationale Mapping kann man .NET-Klassendefinitionen aus
EDM-Beschreibungen generieren lassen. Die generierten .NET-Klassen erben von der Basisklasse Entity. Ein Entwickler kann die Klassen jedoch um eigene
Attribute und
Methoden anreichern ohne erneut zu erben, da die generierten Klassen die in
.NET 2.0 eingeführte Möglichkeit der partiellen Klassen nutzen.
Zur Abfrage von Informationen aus Datenquellen, die durch
EDM beschrieben werden, verwendet Microsoft eine neue Erweiterung von SQL (
Entity SQL). Die Redmonder kürzen dies mit eSQL ab, obwohl eSQL eigentlich schon als Abkürzung für
Embedded SQL verwendet wird.
Im Programmcode 3.x ist die Ausführung von eSQL mit Hilfe eines neuen
.NET Data Providers möglich, den Microsoft den Map Provider nennt. Im Normalfall stehen die eSQL-Befehle als Zeichenketten im Programmcode. Microsoft ermöglicht durch
Language Integrated Query (
LINQ) aber auch, dass SQL- und eSQL-Befehle wie Befehlswörter im Quelltext von
C# 3.0 und
Visual Basic 9.0 hinterlegt werden und damit auch der Prüfung durch den jeweiligen Sprachcompiler unterliegen.
LINQ ist kein Teil von ADO.NET 3.x, sondern wiederum ein Aufsatz. Die aktuelle Version von
LINQ stammt aus dem Mai 2006.
Durch die im Entity Framework integrierten Object Services kann man Änderungen an Entities auch persistent machen.
LINQ kann man auch auf Datasets anwenden, sodass Datasets endlich auch eine vollständige Abfragesprache erhalten.
Fazit
Das Entity Framework erweitert .NET um einen wichtigen Abstraktionsbereich, in dem
Java bisher einen deutlichen Vorsprung hatte. Sicherlich müssen viele .NET-Entwickler wieder einiges dazulernen. Aber im Entwickleralltag wird das
ADO.NET Entity Framework viele Arbeitsstunden (bei der
Datenzugriffsschicht) einsparen und die Entwicklung der Geschäftslogik einfacher und intuitiver machen. Hoffen wir, dass Microsoft dieses Mal das Produkt zur Ma
rktreife bringt und es dem Entity Framework nicht geht wie den
Objectspaces.