Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Entity Framework Core Grundkurs

Das unterscheidet das Entity Framework Core vom Entity Framework 6

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Das Entity Framework Core wurde vollständig neu entwickelt. Warum diese Entscheidung getroffen wurde und welche neuen Funktionen das EF Core bietet erläutert dieses Video.
07:10

Transkript

Mit dem Entity Framework Core haben wir eine neue Version des Entity Frameworks, die parallel zum Entity Framework 6 entwickelt wurde. In diesem Film wollen wir uns einmal mit der Frage beschäftigen, warum es jetzt zwei Versionen vom Entity Framework gibt und welche für Sie die Richtige ist. Wenn wir über die beiden Entity Framework Versionen sprechen, dann müssen wir uns vor Augen führen, dass beide eine vollständig unterschiedliche Reife der Codebasis haben. Das Entity Framework 6 zum Beispiel wurde ursprünglich in der Version 3.5 2008 entwickelt. Und seitdem gab es eine kontinuierliche Weiterentwicklung. Das bedeutet also, dass wir hier einfach ein Funktionsumfang von mehreren Jahren bereits aufbauen konnten, dass auch viel Erfahrung dort hereingeflossen ist und dass viele Fehler bereits ausgemerzt worden sind. Beim Entity Framework Core hingegen handelt es sich um ein vollständig neues Produkt, was 2016 in der Version 1 veröffentlicht worden ist. Die Codebasis ist vollständig neu entwickelt worden, was bedeutet, dass einfach einige Funktionen, die das Entity Framework 6 hat, noch nicht implementiert worden sind. Das ging einfach aufgrund der Zeit noch nicht. Andere Funktionen waren vielleicht gar nicht mehr so wichtig im neuen Entity Framework. Dafür andere aber. Die Frage ist allerdings: warum macht man das? Wenn man schon ein Produkt hat, was seit mehreren Jahren entwickelt wird, warum erschafft man eine komplett neue Codebasis? Und der Hintergrund dafür ist, dass es heute Anforderungen gibt, die damals beim Design des Entity Frameworks nicht berücksichtigt werden konnten. Denken wir zum einen zum Beispiel an die Unterstützung des Entity Frameworks in Apps. Das war 2008 für das Microsoft Team noch kein Thema. Heute wollen wir natürlich auch in Apps, sprich in Windows Universal Platform Apps, oder vielleicht auch in Xamarin Apps das Entity Framework nutzen können. Und mit der alten Version war dies einfach nicht möglich. Das Gleiche gilt für die Ausrichtung im Web-Umfeld, die Microsoft derzeit vornimmt. Nämlich die Unterstützung von Aspe.Net auf anderen Betriebssystemen, wie Linux oder Mac OS X. Und hier war es auch einfach so, dass das Entity Framework 6 von der Architektur her hier nicht laufen konnte. Deswegen brauchte man also eine neue Codebasis. Und wie gesagt, es gibt einige Funktionen, die sind einfach noch nicht implementiert worden. Andere werden vielleicht auch niemals implementiert werden. Zum Beispiel fehlt aktuell komplett der model oder designerbasierter Ansatz. Beim Entity Framework 6 waren Sie also in der Lage ein graphisches Modell zu designen. Und von diesem Modell konnten Sie sich danach Quellcode, aber auch eine Datenbank generieren lassen. Das geht mit dem Entity Framework Core nicht mehr. Hier können Sie lediglich Code schreiben und aus diesem Code sich dann später eine Datenbank generieren lassen, oder aber Sie können sich aus einer Datenbank Quellcode erstellen lassen. Diese Zwischenschicht des graphischen Modells, die gibt es nicht mehr. Was es aktuell auch nicht gibt, ist Lazy Loading. Bedeutet: das Laden von Daten bei Bedarf. Das steht zwar auf der Roadmap drauf, ist aber noch nicht implementiert worden für die Version 1.0. Auch direkte SQL-Abfragen gegen ungemappte Entitäten funktionieren nicht. Beim Entity Framework 6 konnten Sie zum Beispiel eine beliebige SQL-Anweisung schreiben und das Ergebnis auf eine Klasse mappen lassen, die der Entity Framework Context so nicht kannte. Das ist in der aktuellen Version des Entity Framework Core nicht möglich. Genauso fehlt die Unterstützung für Stored Procedures oder die Ausführung von Group By und Aggregatfunktionen, wie Zoom, Count, Max, Min in der Datenbank. Aktuell wird die komplette Datenmenge auf Ihren kleinen PC geladen und es wird dort im Hauptspeicher gruppiert. Abgesehen von den bisher genannten Punkten, gibt es noch eine Reihe weiterer Punkte, die fehlen, die ich jetzt aber hier nicht mit auf der Folie habe, da ich mich auf die Wichtigsten konzentrieren wollte. Natürlich haben wir nicht nur fehlende Funktionen, sondern es gibt auch einige Funktionen, die das Entity Framework Core hat, die es im Entity Framework 6 nicht gibt. Das gibt zum einen die Möglichkeit einen In Memory Dataprovider zu benutzen. Heißt also, dass wir unsere Daten mit dem Entity Framework gar nicht in der Datenbank speichern würden, sondern nur im Hauptspeicher halten. Das zur Folge hat, dass die Daten wechseln, wenn ich den Rechner ausschalte. Richtet sich das natürlich selten oder eigentlich nie an produktive Szenarien, sondern das ist ein Feature, was besonders wichtig für Unit-Testing ist. Eine Performance Verbesserung können wir durch sogenannte Statement Batching erreichen. Heißt also, dass mehrere SQL Statements in einem Rutsch an die Datenbank geschickt werden. Außerdem kann ich jetzt den Kontext und die Entitäten nicht mehr nur noch über das Visual Studio und ein Wizard generieren, sondern über die Kommandozeile. Und das ist daher interessant, weil ich die Möglichkeit habe Änderungen, die ich in der Datenbank vorgenommen habe, durch einfaches Neugenerieren des Kontextes und der Modell-Klasse, inklusive Überschreiben, sehr schnell in mein Programm übernehmen zu können. Wir haben außerdem jetzt das Konzept der sogenannten Shadow Properties. Bedeutet also, wenn Sie in Ihren Tabellen Eigenschaften haben, die nicht gemappt sind, weil sie keine Eigenschaften ihrer Klasse für dieses Feld in der Datenbank-Tabelle haben, dann können Sie trotzdem auf die Werte dieser Felder zugreifen über eben diese Shadow Properties. Außerdem kommen wir mit dem Entity Framework Core auf Plattformen, auf die man mit dem Entity Framework 6 nicht kam. Zum Beispiel, ASP.NET Core, was ja jetzt nicht nur noch unter Windows, sondern auch unter Linux und Mac OS X läuft. Außerdem Universal Windows Platform Apps für Windows 10. Und in Zukunft, aktuell ist es noch nicht möglich, aber in Zukunft soll noch Xamarin Apps möglich sein. Wie wir gesehen haben, gibt es viel Licht, aber auch viel Schatten. Einige Funktionen, die sind wirklich sehr toll, die sind hinzugekommen. Andere essentielle Funktionen fehlen. Da stellt sich natürlich die Frage: lohnt sich der Umstieg? Und die Antwort bei Bestandsprojekten heißt in der Regel: aktuell noch nicht. Wenn Sie aktuell eine Anwendung haben, die mit dem Entity Framework arbeitet, vor allem wenn es sich um eine Desktop-Anwendung handelt, dann lohnt sich der Umstieg in der Regel nicht. Bei einer Web-Anwendung sieht es ein wenig anders aus. Hier benötigen wir Funktionen wie Lazy Loading häufig zum Beispiel nicht. Trotzdem sollten Sie auch hier sehr genau prüfen, ob Sie einen Vorteil von den neuen Funktionen haben, oder ob die fehlenden Funktionen, wie zum Beispiel "Ausführen" eines Group By in der Datenbank nicht eher dafür ausschlaggebend sind noch zu warten. Wenn Sie eine neue Anwendung schreiben, dann müssen Sie sich überlegen, ob Sie eher auch für eine der neuen Plattformen möchten, oder Universal Windows Platform Apps, in diesem Fall können Sie nur das Entity Framework Core nutzen. Wenn Sie jetzt eine neue Anwendung schreiben, das soll eine ASP.NET MVC 5 Anwendung zum Beispiel werden, die auf dem .NET Framework läuft. Auch dann würde sich aktuell eher noch das Entity Framework 6 anbieten. Wenn wir also zusammenfassen, dann können wir sagen, dass Entity Framework Core ist eine komplette neue Entwicklung, um eben auf neue Plattformen zu kommen. Es gibt einige Funktionen, die noch nicht implementiert sind, was einfach der neue, der Codebasis geschuldet ist. Auf der anderen Seite gibt es einige tolle Funktionen, die das Entity Framework 6 noch nicht hat. Ob Sie umsteigen möchten oder nicht, sollten Sie primär davon abhängig machen, ob es sich um ein Bestandsprojekt handelt und ob Sie bei einem neuen Projekt den auf allen neuen Plattformen möchten.

Entity Framework Core Grundkurs

Lernen Sie die Features von Microsofts O/R-Mapper kennen und wie Sie ihn in praktischen Anwendungen einsetzen.

2 Std. 29 min (29 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!