Microsoft und das OR-Mapping: Es bleibt kurios

Der Dotnet-Doktor  –  2 Kommentare

Zu den größten Schwächen von .NET 2.0 gehört das Fehlen eines Objekt-Relationalen Mappers (ORM) zur (automatischen) Abbildung von .NET-Objekten im Hauptspeicher auf Tabellen in relationalen Datenbanken. Während man in der Java-Welt direkt mehrere in den Produktkern integrierte ORM-Ansätze hat (vgl. JDO vs. EJB und Java Persistance API in EJB 3.0), muss man mit Microsoft eigenen Bibliotheken man den Datenzugriff immer "zu Fuß" entwickelt.

Microsoft hatte bereits im Jahre 2003 eine Alpha-Version eines ORM für .NET unter dem Namen Object Persistance Framework (alias Objectspaces) als "Technical Preview" vorgestellt. In der Alpha-Version von .NET 2.0 waren die ObjectSpaces in Form des Namensraums System.Data.ObjectSpaces auch enthalten. Später fiel aber in Redmond die Entscheidung, den ORM aus .NET 2.0 zu streichen. Der Hintergrund war, dass es nicht nur Leistungsprobleme gab, sondern man auch in Redmond "feststellte", dass ein anderes Produktteam im Rahmen des datenbankbasierten Dateisystem Windows File System (WinFS) ebenfalls an einem ORM für .NET arbeitete. Eine Weisung "von oben" fusionierte die beiden konkurrierenden Teams.

Auf der Professional Developers Conference (PDC) im September 2005 präsentierte Microsoft dann LINQ (Language Integrated Query). In LINQ sind SQL-ähnliche Abfragebefehle wie Select, Where, From und Order By Teil der Sprachsyntax einer .NET-Sprache. C# 3.0 und Visual Basic 9.0 sollen LINQ-Befehle unterstützen und dabei ist auch OR-Mapping möglich.

Schon am Rande der PDC war zu hören, dass LINQ dabei OR-Mapping-Funktionen nutzt, die als Erweiterung von System.Data als ADO.NET 3.0 erscheinen sollen. Am 10. Mai gab es die ersten Dokumente zu ADO.NET 3.0 auf dem Microsoft Webserver (vgl. Blogeintrag von Erwyn van der Meer). Anfang Juni hat Microsoft diese Dokumente wieder gelöscht. Im Startbildschirm von Visual Studio 2005 erscheinen nur noch tote Links (siehe Bildschirmabbildung).

Tote Links zu ADO.NET 3.0 in Visual Studio 2005

Die spannende Frage bleibt also: Wird es Microsoft dieses Mal gelingen, einen OR-Mapper auf den Markt zu bringen? Ich vermute ja, aber meine Hand lege ich dafür nicht ins Feuer. Ich werde Sie auf dem Laufenden halten!

Wer nicht auf Microsoft warten will, kann sich auf dem Drittanbietermarkt und in der Open Source-Welt bedienen. Eine Marktübersicht über Objekt-Relationale Mapper für .NET gibt es auf meiner Website.