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

SpecFlow 3 – unterstützt .NET Core

Für alle die SpecFlow noch nicht kennen: Unser Ziel ist es, die Kommunikationslücke zwischen Domänenexperten und Entwicklern durch verbindliche, lesbare Verhaltensspezifikationen mit der zugrunde liegenden Implementierung zu überbrücken.

SpecFlow ist ein Open Soure Projekt und wird auch von Entwicklern bei TechTalk vorangetrieben. Mit SpecFlow+ bieten wir eine Reihe von Erweiterungen die es ermöglicht SpecFlow am optimalsten zu nützen. Jetzt ist es endlich soweit die öffentliche Preview Version von SpecFlow 3 ist verfügbar:

Support for .NET Core is now available.

Für die Version 3 ist eine Aktualisierung der Visual Studio-Erweiterung für SpecFlow notwendig. Da die Erweiterung normalerweise automatisch aktualisiert wird, sobald eine neue Version veröffentlicht wird, kann diese Änderung alle Benutzer betreffen, und nicht nur die, die auf Version 3 upgraden! Die neue Erweiterung ist nicht mit allen alten Versionen kompatibel. Bitte lesen Sie die folgenden Informationen im Detail. Sie können die automatische Aktualisierung der Erweiterung auch deaktivieren, falls nötig.

Die größte Neuerung von diesem Release ist die Unterstützung für .NET Core! Wenn Sie die neue Version ausprobieren möchten, lesen Sie bitte die folgenden Informationen sorgfältig durch. Bevor Sie die öffentliche Vorschau verwenden können, sind einige Schritte erforderlich.