Das bringt die neue Beta des Entity Frameworks

Entity Framework 7 Beta 6 erschienen: EF hält Einzug auf anderen Plattformen
Kommentare

Seit dem 27. Juli ist die Beta 6 des Entity Framework 7 verfügbar. Version 7 ist nicht einfach nur eine neue Version mit neuen Features, vielmehr ist sie eine neue Generation des Frameworks, das auf einer noch breiteren Palette von Plattformen eingesetzt werden kann und das mit vielen Problemen aus der Vergangenheit Schluss machen soll. Beta 6 bringt einige Neuerungen – werfen wir einen Blick darauf.

Vor einiger Zeit berichteten wir über die neue Version 7 des objektrelationalen Mappers Entity Framework aus dem Hause Microsoft, mit dem Entity Framework 6 abgelöst werden soll. Die Berichterstattung liegt schon einige Zeit zurück, was dem längeren Pre-Release-Zyklus des Frameworks geschuldet ist. Grund dafür ist der Umbau bzw. Neubau des OR-Mappers.

Was ist in der Zwischenzeit geschehen?

Aufgrund der Neugestaltung des OR-Mappers und des engen Zeitplans, musste Microsoft viele Funktionen für das erste Release von EF 7 streichen, die bereits in den älteren Versionen 6.x enthalten waren. Diese Features sollten dann im Nachgang via Updates nachgeliefert werden. Darunter sollte es z.B. keine Unterstützung für Lazy Loading geben. Auch die Provider für SQLite, Azure Table Storage und Redis wurden gestrichen. Eines der wichtigsten Anforderungen ist, den OR-Mapper auf anderen Plattformen verfügbar zu machen. Daher rühren auch die signifikanten Umbauarbeiten. Unterstützung für Windows Phone und Windows Store Apps waren dennoch für das erste Release von EF 7 nicht vorgesehen, nicht zuletzt wegen dem fehlenden Provider für SQLite. Was hat sich nun in der Zwischenzeit getan, was gibt es Neues in der Beta 6? Um es vorwegzunehmen: so einiges!

  1. Dokumentation! Das Team hat erstmals damit begonnen, eine Dokumentation für das neue Entity Framework aufzusetzen. Diese Dokumentation ist natürlich aufgrund des initialen Standes noch recht lückenhaft, wird sich aber in den kommenden Wochen aufbauen. Gefunden werden kann die Doku hier. Zum Release wird sich diese Adresse aber noch ändern.
  2. Auf NuGet.org stehen nun eine Reihe neuer Provider mit Unterstützung für EF 7 Beta 6 zur Verfügung. Darunter gibt es Provider für SQLite, SQL Server, In-Memory, SQL Server Compact 3.5 und 4. Das Team um den OR-Mapper hat also ein wenig aufholen können, und bietet nun Provider an, die eigentlich für die erste Version gestrichen worden sind.
  3. Die Beta 6 kann nun in ASP.NET 5-Anwendungen verwendet werden. Dabei ist es egal, ob die ASP.NET 5-Anwendung .NET Core oder das volle .NET Framework adressiert. EF 7 Beta 6 unterstützt beide Spielarten. Ausprobiert werden kann das mit der „Web Site“-Projektvorlage für ASP.NET 5 Anwendungen.
  4. EF 7 Beta 6 kann ebenfalls in Konsolenanwendungen, WPF-, WinForms- und ASP.NET 4-Anwendungen verwendet werden, die das .NET Framework 4.5 oder höher adressieren.
  5. EF 7 Beta 6 kann nun in Anwendungen für Mac und Linux verwendet werden, die Mono 3.12.1 oder höher adressieren.
  6. Mit der Veröffentlichung der Windows 10 Developer Tools RTM wird das EF 7 Beta 6 nun auch auf der Universal Windows Platform (UWP) unterstützt. Auch an dieser Stelle konnte Microsoft wohl etwas aufholen.

Was gibt es Neues im EF 7 Beta 6?

Die folgenden Funktionalitäten sind mit der Beta 6 neu hinzugekommen:

  1. Die neue Version unterstützt nun wieder Datenannotationen. Mit den aus dem Namespace System.ComponentModel.DataAnnotations bekannten Attributen lassen sich Eigenschaften von Entitäten genauer beschreiben bzw. einschränken. So kann für Zeichenketten z.B. eine minimale und eine maximale Länge festgelegt werden.
  2. Das Zurückführen von Datenbanken in Entitätsklassen kann mittels Vorlagendateien angepasst werden.
  3. Auch das direkte Ausführen von SQL-Kommandos kann nun via Database.ExecuteSqlCommand durchgeführt werden.
    Funktionen, die bereits in vorhergehenden Pre-Release-Versionen veröffentlicht wurden, sind auch in der Beta 6 enthalten. Die meisten davon mit einigen Verbesserungen. Darunter fallen z.B.:
    – Change Tracking
    – LINQ Queries
    – Tabellen-basierte CUD-Operationen, einschließlich Batching
    – Migrationen
    – Transaktionen (automatische Transaktionssteuerung über SaveChanges, sowie über Transaktions-APIs)
    – Raw SQL Queries
    – Logging

Woran arbeitet das Team gerade?

Das Team um den OR-Mapper von Microsoft hat vor dem initialen RTM noch einiges auf der Liste. So wird momentan z.B. an Datenannotationen für Beziehungen, der Unterstützung für Vererbung in der Spielart „Table per Hierarchy“ (TpH) und am kaskadierenden Löschen von Datensätzen gearbeitet. Ebenso sind die Microsoft-Entwickler mit Bugfixing, Performance-Optimierungen, API Reviews und der Dokumentation beschäftigt.

Fazit

Wie so oft gibt es noch eine Menge zu tun für den Softwarekonzern aus Redmond. Dennoch scheint Microsoft große Sprünge in der Entwicklung des Entity Frameworks 7 zu machen. Auch das Ziel der Offenheit und Plattformunabhängigkeit des OR-Mappers scheint Microsoft sehr ernst zu nehmen. Wir sehen EF 7 nicht nur auf dem vollen .NET Framework laufen, sondern auch auf .NET Core, der Universal Windows Platform und mit Mono unter Mac und Linux.
Es wird Zeit, das neue Framework einmal auszuprobieren. An dieser Stelle sei aber noch einmal erwähnt, dass Microsoft davon abrät, EF 7 in Produktivsystemen einzusetzen bzw. ältere Anwendungen von EF 6.x auf 7 zu migrieren. Für einen Beta-Stand ist das natürlich nachvollziehbar. Folgend der neuen Offenheit von Microsoft, erhofft sich das Team natürlich sehr frühes Feedback aus der Community, um seine Arbeiten am Entity Framework entsprechend lenken zu können.

Aufmacherbild: cubes blue background von Shutterstock / Urheberrecht: zuzazuz

 

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -