Objektrelationale Brücke für .NET

Objektrelationale Brücke für .NET

10. Oktober 2008 - Nach mehreren gescheiterten Anläufen kann Microsoft mit dem Entity Framework nun endlich mit einem objektrelationalen Mapper für ADO.NET aufwarten.
Artikel erschienen in IT Magazine 2008/18

Die fehlende Object/Relation-Mapping-Technologie (ORM) war lange Zeit eine der grossen Schwächen im .NET-Framework. Nachdem man bei Microsoft das Bedürfnis nach einer ORM-Lösung in der Anfangsphase von .NET schlichtweg verschlafen oder ignoriert hat, unternahm man vor einigen Jahren mit ObjectSpaces und WinFS gleich zwei Anläufe in diesem Bereich. Mit beiden Ansätzen scheiterte der Branchenriese kläglich, und man musste in den Redmond-Labors praktisch wieder von vorne anfangen. Paradoxerweise bietet Microsoft inzwischen gleich zwei objektrelationale Mapper parallel an. Nachdem mit LINQ to SQL im Rahmen von Visual Studio 2008 (siehe InfoWeek 11/08) bereits eine relativ einfache ORM-Lösung für den SQL-Server eingeführt wurde, steht seit August mit dem Release des SP1 für das .NET-Framework 3.5 und Visual Studio 2008 nun mit dem ADO.NET Entity Framework (ADO.NET EF) eine umfangreichere und vor allem auch datenbankunabhängige objektrelationale Technologie bereit.


Was ist ORM?

Ziel des objektrelationalen Daten-Mapping ist es, die unter Fachkreisen als Impedance Mismatch oder Semantic Gap genannte Problematik auszuräumen. Wer eine objektorientierte Programmiersprache einsetzt, möchte durchgängig mit Objekten arbeiten, auch dann wenn es um die Verarbeitung von Daten geht, welche in einer relationalen Datenbank gespeichert sind. Ziel dabei ist es, mit Geschäftsobjekten (auch Business Objects oder Geschäftsentitäten) zu arbeiten, die möglichst der Realität (Rechnung, Kunde, Artikel etc.) entsprechen. Das bringt gleich eine Reihe von Vorteilen mit sich: Mit Geschäftsobjekten lässt es sich aus programmiertechnischer Sicht – vor allem auch im Team – intuitiver arbeiten.

Ausserdem lassen sich n:m-Beziehungen einfacher abbilden und es kann auf typische objektorientierte Techniken wie die Vererbung zurückgegriffen werden


Die Problematik dabei ist allerdings, dass Daten in der überwiegenden Zahl der verwendeten Datenbanken nicht in Form von Objekten, sondern normalisiert in relational verknüpften Tabellen abgelegt werden. Die Daten für eine Rechnung können beispielsweise über verschiedene Tabellen hinweg verteilt sein. Die Daten eines Objekts sind daher in den meisten Fällen nicht direkt auf die Tabellenstruktur übertragbar. Und genau hier kommt das objektrelationale Mapping ins Spiel: Es fungiert als Übersetzer zwischen relationalen Tabellen und den gewünschten Geschäftsobjekten.


Neben den Vorzügen, welche das Objektmodell mit sich bringt, hat der Einsatz eines O/R-Mapper einen weiteren Vorteil: Der Entwickler muss weniger Datenzugriffscode schreiben. Für das Persistieren der Daten ist der O/R-Mapper zuständig, der den notwendigen SQL-Code im Hintergrund generiert und an die Datenbank absetzt. Das bedeutet auch, dass sich der verwendete Datenbankserver beim Einsatz einer ORM-Lösung relativ einfach austauschen lässt.

 
Seite 1 von 5

Neuen Kommentar erfassen

Anti-Spam-Frage Wie hiess im Märchen die Schwester von Hänsel?
Antwort
Name
E-Mail
SPONSOREN & PARTNER