Kommentar von Holger Schwichtenberg zu .NET Core 1.0, ASP.NET Core 1.0 und Entity Framework Core 1.0
Kommentar von Holger Schwichtenberg zu .NET Core 1.0, ASP.NET Core 1.0 und Entity Framework Core 1.0
Da ist das Ding, auf das wir jetzt bereits seit der ersten Ankündigung im Mai 2014 gewartet haben! .NET Core, ASP.NET Core und Entity Framework Core haben nach vielen Verschiebungen und fortwährenden Änderungen nun endlich das stabile Produktstadium \"Version-1.0- RTM\" erreicht.
Jubeln wir jetzt wie einst Oli Kahn? Nein, ich fühle mich nicht wie beim Gewinn der Meisterschaft, sondern noch wie beim ersten Saisonsieg. Denn objektiv betrachtet bringen uns plattformunabhängige Konsolenanwendungen und Webserveranwendungen nicht wirklich viel. Das Hauptproblem, das wir .NET-Softwarehersteller haben, ist der Kundenwunsch, dass die Software auch auf iPhone, iPad und Android läuft. Dafür bietet .NET Core jedoch keinerlei Lösung, denn ein plattformunabhängiges GUI-Framework ist da gar nicht enthalten.
.NET Core bietet – in Zusammenhang mit der Übernahme von Xamarin – lediglich die Perspektive, dass wir mit .NET irgendwann einmal eine echte „Universal App“ schreiben können. Damit meine ich eine, die nicht auf das Windows-10-Universum begrenzt ist: „Write once, run anywere“ mit XAML und .NET als (bessere) Alternative zum „Gefrickel“ mit HTML und JavaScript-Bibliotheken – das wollen wir!
Vielleicht ist mein Blick in die Zukunft einfach auch zu weit. Aber selbst wenn ich bei .NET Core 1.0 RTM einmal genauer hinsehe, sehe ich da immer noch einige Herausforderungen für die Praxis. „RTM“ ist nur bezogen auf die Laufzeitumgebung. Alle Werkzeuge (.NET-Core-SDK, ASP.NET- und Entity-Framework-Tools, Visual-Studio-Erweiterungen) haben zunächst weiterhin den Preview-Status mit der Ungewissheit, ob man Projektdateien zukünftig nicht doch wieder ändern muss. Auch die Dokumentation ist nicht auf dem Stand, auf dem man sie brauchen würde. Es fehlen viele der neuen Klassen in den API-Referenzen und an einigen Stellen findet man auch in den Tutorials nur Platzhalterseiten.
Sehr gravierend ist, dass in den Core-Produkten Funktionen und APIs fehlen, die man aus den bisherigen Produkten gewohnt ist. Microsoft hat angekündigt, dass in den nachfolgenden Versionen hier Einiges nachgerüstet wird. Aber jetzt muss ich als Entwickler erst einmal um diese Lücken herumprogrammieren oder sie selbst füllen. Und fehlende Funktionen bedeutet auch, dass viele bestehende Erweiterungsbibliotheken zunächst nicht auf .NET Core laufen.
Bleibt also am Ende die Frage, ob man bereits jetzt ein neues Projekt mit .NET Core starten sollte. Wir haben begonnen, ein Projekt mit ASP.NET Core und Entity Framework Core zu schreiben, allerdings mit dem .NET „Full“ Framework als Basis, damit wir viele bestehende Bibliotheken und Vorgehensweisen weiterverwenden können. Ob und wann wir dann auf .NET Core als Basis umsteigen, wird sich aus dem Fortschritt ergeben, den Microsoft und das Ökosystem drumherum bei den APIs macht. Einen tieferen Einstieg in das Erstellen von Webanwendungen gebe ich übrigens in meiner Session „Schlanke und modulare Webanwendungen mit ASP.NET Core 1.0„.
Entity Framework Core läuft jetzt auch auf Mobilgeräten und wird daher für lokale Datenbanken eine gute Lösung. Eine Windows-Anwendung schreibt man aufgrund der Lücken in Entity Framework Core aber doch besser mit dem großen Entity Framework. Umstellen von Entity Framework 6.1 auf Entity Framework Core 1.0 in bestehenden Webanwendungen kommt auch erst einmal nicht in Frage, da zu viel Code neu geschrieben werden muss.
Für eine ASP.NET-Core-Webanwendung auf Basis von .NET Core anstelle von .NET „Full“ Framework bleibt aber eigentlich nur der eine Fall, dass man heute eine Webanwendung schreiben will, die auf dem Server nicht nur auf Windows, sondern auch Linux und Mac OS/X laufen soll. Diese Anforderung ist in der bisherigen .NET-Nutzergemeinde doch eher selten.
Um in der Fußballanalogie zu bleiben: Schauen wir in der Rückrunde noch mal, wo wir dann stehen! Ein Vergleich zur Europameisterschaft wäre hier übrigens nicht passend: Denn so schnell wie die vorbei sein wird, werden sich die Core-Produkte nicht entwickeln.
Aufmacherbild: Earth core structure von Shutterstock / Urheberrecht: Vadim Sadovski