Beiträge

Das .NET Framework ist tot, lang lebe .NET!

Auf der diesjährigen Microsoft Entwickler- Konferenz Build, wurde neben der aktuellen .NET Core Version 3 bereits die nächste Version mit dem neuen Namen .NET 5 angekündigt. Um eines gleich zu Anfang klarzustellen, .NET 5 ist nicht der direkte Nachfolger vom .NET Framework 4.8 sondern der direkte Nachfolger von .NET Core 3. Scott Hunter (Director Program Manager für .NET) hat dies ebenfalls in einem Blogpost bestätigt.

Was ist noch einmal .NET Core?

.NET Core ist eine neue Implementierung des .NET Frameworks, welche in Version 1.0 im November 2014 erschienen ist. Mit den Erfahrungen der letzen 12 Jahren am .NET Framework, wurden viele Teile neu implementiert und verbessert. Mit einer modulareren Architektur ist es erstmalig möglich mehrere .NET Core Versionen systemweit nebeneinander betreiben zu können. Dadurch kann eine neuere Version von .NET Core installiert werden, ohne bestehende Anwendungen im Betrieb zu beinflussen. Alternativ zur systemweiten Installation ist es jetzt auch möglich, die .NET Core Runtime mit einer Anwendung selbst mit auszuliefern ohne sie systemweit installieren zu müssen.

Die Release der aktuellen Version .NET Core 3 erfolgte übrigens am 23. September 2019 während der .NET Conf 2019 und für November 2019 ist bereits die Release für .NET Core 3.1 geplant. Diese wird vor allem eine Bugfix- Release werden, welche dann auch als LTS- Version (Long Term Support) gekennzeichnet wird. Long Term Support bedeuted, dass Microsoft für 3 Jahre lang nach der ursprünglichen Release kritische und kompatible Fehlerbehebungen zur Verfügung stellt. Nicht LTS Versionen, welche als Current bezeichnet werden, werden bis zu 3 Monate nach dem Release der nächsten Version offiziell unterstützt.

Ein weiterer großer Unterschied zum .NET Framework ist, dass .NET Core komplett als Open Source Software entwickelt wird und es nicht nur auf Windows, sondern auch auf Linux und Mac OS läuft.

Was ist neu an .NET 5 außer die Versionsnummer?

.NET 5 ist die nächste Evolutionsstufe von .NET Core und vereint alle bisher unterstützten Platformen unter einem .NET. Ob das Windows, Linux, Mac OS, iOS, Android, tvOS, watchOS oder WebAssembly, alle laufen unter der gleichen Runtime und Framework.

Zusätzlich kommen Features von anderen Implementierungen (z.B. Xamarin) in .NET. Das wären unter anderem Java, Objective-C und Swift Interoperabilität und statisches Kompilieren (AOT, Ahead Of Time).

Wann kommt .NET 5 und was kommt danach?

Microsoft plant .NET 5 im November 2020 zu veröffentlichen. Um es für uns EntwicklerInnen leichter zu machen, hat sich Microsoft dazu entschieden ein Release pro Jahr zu veröffentlichen. Ab November 2020 erscheint jedes Jahr im November eine neue Version von .NET.

Jedes zweite Jahr erfolgt die Veröffentlichung einer LTS (Long Term Support) Version, für welche Microsoft länger Support garantiert. Wie lange ist noch nicht klar, ich vermute dass es bei den jetzigen 3 Jahren bleibt. Man hat also von LTS zu LTS Versions-Upgrade ein Jahr Zeit dieses durchzuführen.

Mehr Details zu .NET 5 inkl. Schedule findet man im Blogpost von Richard Lander (Program Manager .NET Team).

Was verwende ich jetzt für meine neuen Anwendungen?

Die kurze Antwort ist: .NET Core.

Die etwas längere Antwort ist: es hängt davon ab, aber wahrscheinlich .NET Core in der Version 3.

Microsoft selbst hat einen kurzen Leitfaden erstellt, wann .NET Core oder .NET Framework verwenden werden soll. Nach diesem Leitfaden soll .NET Framework nur dann verwendet werden, wenn Abhängigkeiten auf Technologien oder Bibliotheken bestehen, welche heute noch nicht oder nicht mehr in .NET Core unterstützt werden.

Was mach ich jetzt mit meinen bestehenden .NET Framework Anwendungen?

Kurzfristig ändert sich für .NET Framework nichts. Als Teil des Betriebssystems wird Microsoft weiterhin Sicherheitspatches für .NET Framework bereitstellen. Detailierte Information finden sich in der offiziellen Lifecycle FAQ. Innovationen finden heute bereits ausschließlich unter .NET Core statt.

Mittel- bis langfristig sollte man sich überlegen, ob es sich lohnt bestehende Anwendung auf .NET Core zu portieren.

Mit dem .NET Portability Anlazer stellt uns Microsoft ein Werkzeug bereit, mit dem Entwickler bestehende Bibliotheken und Software auf Kompatibilität mit .NET Core analysieren können.

Mit der aktuellen Version von .NET Core ist es erstmals möglich auch bestehende WPF und Winforms Desktop Anwendungen nach .NET Core zu portieren und zukünftig mit .NET 5 weiterzuentwickeln.

Fazit

Mit dem Ausblick auf .NET 5 im November 2020 ist jetzt der richtige Zeitpunkt sich Gedanken über eine Portierung von bestehenden .NET Framework Applikationen zu machen.

Gerne unterstützen wir Sie hands-on bei der Planung und Analyse Ihres konkreten Vorhabens.


Wenn Sie Unterstützung bei der Architektur Ihrer nächsten .NET Anwendung brauchen, können Sie sich gerne direkt an mich wenden. Gerne beantworte ich Ihre Fragen. Kontakt: daniel.sack@techtalk.at