Wie geht es weiter mit LINQ-to-SQL und dem ADO.NET Entity Framework?

Der Dotnet-Doktor  –  1 Kommentare

Eine für unsere aktuellen Softwareentwicklungs- und Beratungsprojekte auf der PDC 2008 war, wie Microsoft die Zukunft seiner ORM-Produkte sieht. Seit dem Service Pack 1des .NET Framework gibt es ja mit dem LINQ-to-SQL und dem ADO.NET Entity Framework ( mit der Abfragesprache LINQ-to-Entities) direkt zwei LINQ-fähige OR-Mapper aus dem Hause Microsoft, die konkurrieren. Zwar beteuern manche Microsoft-Evangelisten, die beiden Produkte seien ja etwas "ganz verschiedenes". Aber nicht nur die Kunden, sondern auch das Entwicklungsteam in Redmond selbst sieht die großen Überschneidungen beider Produkte.

Entstanden ist die Konkurrenzsituation durch eine ungeplante Parallelentwicklung: LINQ-to-SQL entstammt dem C#-Team, das Entity Framework dem ADO.NET-Team. Schon seit einiger Zeit ist bekannt, dass beide Teams für .NET 4.0 zusammengelegt wurden. Die spannende Frage ist, was das für die Weiterentwicklung bedeutet.

Aufgrund eines Non-Disclosure Agreements mit Microsoft kann ich zum jetzigen Zeitpunkt noch nicht alle Informationen, die ich habe, hier niederschreiben. Aber ich kann einige offensichtliche Fakten als Indizien nennen:

  • Es gab auf der PDC 2008 einen Vortrag zur "Version 2" des ADO.NET Entity Framework im Rahmen von .NET 4.0 und Visual Studio 2010. Darin wurde angekündigt, dass EF zahlreiche Funktion unterstützen wird, die bisher nur in dem hausinternen Konkurrenten LINQ-to-SQL enthalten waren: die Erzeugung von Datenbank auf Basis von Objektmodellen ("Forward Engineering"), die Verwendung einfacher .NET-Objekt zum Mapping ("Persistence Ignorance") und das automatische Nachladen von Objekten ("Transparent Lazy Loading").
  • Es gab keinen Vortrag zu LINQ-to-SQL und es gibt auch bisher keine Ankündigungen für neue Funktionen in .NET Framework 4.0 und Visual Studio 2010.

Zwar wurde auch nicht angekündigt, dass LINQ-to-SQL aus dem .NET Framework wieder verschwinden wird. Aber was wollen Sie mit einem Produkt, das auf seinem niedrigen Niveau verharrt? Selbst wenn Microsoft schreibt "We are listening to customers regarding LINQ to SQL and will continue to evolve the product based on feedback we receive from the community as well.", gibt es drei klare Argumente für das Entity Framework:

  • Das ADO.NET Entity Framework ist heute schon mächtiger als LINQ-to-SQL und wird mit der Version auch alle Bereiche anbieten, in denen LINQ-to-SQL bisher einen Vorsprung hatte. Microsofts langfristige Ankündigung ist, das Entity Framework auch in den Microsoft SQL Server einzubauen, z.B. als Basis für die SQL Server Reporting Services.
  • Das ADO.NET Entity Framework ist nicht komplizierter als LINQ-to-SQL, wenn man einfache Mapping-Szenarien betrachtet. Es ist nur komplizierter für komplexere Szenarien, die aber LTS sowie gar nicht kann.
  • In einem Beitrag vom 31.10.2008 empfiehlt das ADO.NET-Team: "LINQ to Entities will be the recommended data access solution for LINQ to relational scenarios".