Microsofts neuer Versuch eines objekt-relationalen Mappers heißt ADO.NET Entity Framework

Eine erste Alpha-Version der nächsten Version von Microsofts ADO.NET ist jetzt verfügbar. In der neuen Version dreht sich alles um das objekt-relationale Mapping (ORM). Microsoft spricht von Entity Data Model, Entity Framework und Entity SQL.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 4 Min.
Von
  • Dr. Holger Schwichtenberg

Eine erste Alpha-Version der nächsten Version von Microsofts Datenzugriffsschnittstelle ADO.NET ist jetzt verfügbar. In ihr dreht sich alles um das objekt-relationale Mapping (ORM). Microsoft spricht von Entity Data Model, Entity Framework und Entity SQL (eSQL).

Bereits auf der Professional Developers Conference 2005 sah man Codebeispiele, in denen Microsoft neue ADO.NET-Klassen namens MapConnection und MapCommand verwendete. Im Oktober 2005 wollte die Firma aber noch keine Details dazu verraten. Nachdem sie 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.

Name

Die nächste Version von ADO.NET nennt Microsoft derzeit "ADO.NET vNext" oder "ADO.NET 3.x". Gemäß früheren Ankündigungen ist die Versionsnummer "3.5" wahrscheinlich. Nicht anzuschließend ist aber auch der Name "ADO.NET 4.0".

Neuerungen

Die kommende Version von ADO.NET dreht sich komplett 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 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.

Das war eine stark verkürzte Fassung der neuen Features. Wer Details wissen möchte, sollte folgende Artikel lesen:

  1. http://msdn.microsoft.com/data/default.aspx?pull=/library/en-us/dnvs05/html/nxtgenda.asp
  2. http://msdn.microsoft.com/data/default.aspx?pull=/library/en-us/dnvs05/html/ADONETEnFrmOvw.asp
  3. http://msdn.microsoft.com/data/default.aspx?pull=/library/en-us/dnvs05/html/ADONET_EDM.asp

Außerdem gibt es ein Weblog des ADO.NET Teams.

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 Marktreife bringt und es dem Entity Framework nicht geht wie den Objectspaces. ()