Menü
Developer

Build 2019: Microsoft führt Mono und .NET Core zusammen zu .NET 5.0

Im November 2020 soll ein neues Produkt unter dem Namen ".NET 5.0" erscheinen, das die Produktlinien .NET Framework, .NET Core und Mono zusammenführt.

vorlesen Drucken Kommentare lesen 152 Beiträge

Microsoft hat auf der am Montag startenden Build-Konferenz abermals eine gravierende Änderung der Strategie zu .NET angekündigt, der wichtigsten Entwicklungsplattform des Herstellers. Im November 2020 soll ein neues Produkt unter dem Namen ".NET 5.0" erscheinen, das die bisherigen Produktlinien .NET Framework, .NET Core und Mono zusammenführt. Danach soll es im jährlichen Rhythmus deterministisch immer im November Folgeversionen unter dem Namen .NET 6.0, .NET 7.0, .NET 8.0 usw. geben.

.NET 5.0 soll laut Aussage von Microsoft-Mitarbeitern "das Beste von .NET Framework, .NET Core und Mono" zusammenführen. Technisch gesehen, hinsichtlich der Werkzeugkette und des agilen und offenen GitHub-basierten Entwicklungsmodells wird .NET 5.0 der Nachfolger von .NET Core sein. Die Klassenbibliothek folgt weiterhin dem .NET Standard.

Microsoft wird die meisten, aber nicht alle Funktionen aus Mono und klassischem .NET Framework in .NET 5.0 übernehmen. Aus Mono fließen unter anderem die Lauffähigkeit auf Android und iOS sowie die Ahead-of-Time-Kompilierung (AOT) als Alternative zu der bisherigen Just-in-Time-Kompilierung (JIT) ein. Entwickler sollen künftig zwischen JIT und AOT wählen können, wobei AOT kleinere Deployment-Pakete und schnellere Startzeiten bietet, aber naturgemäß eben keine plattformunabhängigen Pakete.

.NET 5.0 ist der Nachfolger von .NET Core 3.x, .NET Framework 4.x und Mono 5.x – aber nicht alle Funktionen aus den beiden letztgenannten werden enthalten sein.

Aus dem klassischen .NET Framework werden in .NET 5.0 noch einige Klassen einfließen, wobei die Anzahl eher gering sein wird, weil Microsoft schon in .NET Core 2.x viele Klassen übernommen hat (vgl. Veröffentlichung des Windows Compatibility Pack im November 2017) und in .NET Core 3.0 zahlreiche weitere Klassen übernehmen wird.

.NET Core 3.0 wird – wie schon auf der Build 2018 angekündigt – die GUI-Frameworks Windows Presentation (WPF) und Windows Forms umfassen und damit erstmals klassische Desktop-Programmierung in .NET Core ermöglichen, allerdings nicht plattformunabhängig, sondern nur auf Windows (ab Version 7 bzw. Server 2012 R2).

Von .NET Core, in das auch schon das neue Webentwicklungsframework "Server-Side ASP.NET Blazor" integriert ist, ist im Rahmen der Build 2019 die Preview-5-Version von .NET Core 3.0, ASP.NET Core 3.0 und Entity Framework Core 3.0 erschienen. Als Termin für die endgültige Version nannte Microsoft den September 2019 – da gibt es dann wieder eine .NET Conf". Im November dieses Jahres soll noch eine .NET-Core-Version 3.1 folgen, die auch – wie bei .NET Core 2.1 – den Status einer LTS-Version (Long-Term Support) mit drei Jahren Unterstützung seitens des Herstellers erhalten wird.

(Bild: Holger Schwichtenberg)

Nach der Version 3.1 verschwindet der Name "Core" dann aber wieder von der Bildfläche (genau wie bei PowerShell Core 6.x und Windows PowerShell 5.1, deren Nachfolger PowerShell 7.0 sein wird). Microsoft hat dabei im Sinn, die Kommunikation zu vereinfachen und insbesondere neuen Softwareentwicklern den Einstieg zu erleichtern. Zu den geplanten Vereinfachungen gehört auch der deterministische jährlich Erscheinungstermin für Hauptversionen, sodass sich die Softwareentwicklungsabteilungen besser auf den Versionswechsel einstellen können.

Jede zweite Hauptversion (mit geraden Nummern) soll den LTS-Status erhalten. Zwischenversionen mit Fehlerbehebungen (Änderungen an der dritten Stelle der Versionsnummer) und auch neue Funktionen (Änderungen an der zweiten Stelle der Versionsnummer) soll es zwischendurch weiterhin bei Bedarf, folglich unregelmäßig, geben.

Zeitplan für die kommenden .NET-Versionen

(Bild: Microsoft)

.NET 5.0 soll die Basis für alle auf .NET aufbauenden Anwendungsmodelle werden, also Webanwendungen (ASP.NET), Desktopanwendungen (Windows Forms und WPF), mobile Apps (Universal Windows Platform und Xamarin) sowie Spiele (Unity). Während .NET 5.0 grundsätzlich plattformunabhängig sein wird, gilt für Desktopanwendungen mit WPF und Windows Forms auch weiterhin in .NET 5.0, dass diese ausschließlich auf Windows laufen können, auch wenn es Windows Forms im Rahmen von Mono bereits seit langem plattformneutral gibt.

Als ganz neues Feature in .NET 5.0 will Microsoft erstmals auch eine Code-Integration mit Java, Objective-C und Swift anbieten. Bislang offen bleibt aber, wie diese Integration aussehen soll und welche Systemanforderungen dafür gelten werden.

Das klassische .NET Framework wird nicht mehr signifikant weiterentwickelt. Die im April erschienene Version 4.8 soll die letzte Version mit neuen Funktionen gewesen sein. Nur noch Sicherheitsupdates und kritische funktionale Probleme will Microsoft in zukünftigen kleineren Updates beheben. In einem Blogeintrag vom Oktober 2018 sprach der Hersteller auch davon, dass man bei Bedarf noch Netzwerkprotokolle auf den aktuellen Stand bringen wollen.

Das an Windows gebundene .NET Framework gibt es seit 2002, das plattformneutrale .NET Core ist in der ersten Version im Jahr 2016 erschienen und läuft auf Windows, Linux, macOS und Tizen. Im gleichen Jahr hat Microsoft die Firma Xamarin inklusive des gleichnamigen Cross-Platform-App-Entwicklungsframeworks Xamarin und der zugrunde liegenden .NET-Variante "Mono" (Version 1.0 von Mono gab es 2004) übernommen. Mono läuft bisher auf Windows, Linux, Android, macOS, iOS, tvOS, watchOS, XBoxOne, Sony Playstation, IBM AIX, IBM i, Sun Solaris und BSD-Varianten.

Eine Herausforderung stellt dar, das .NET Core 1.0 zwischen November 2014 und Januar 2016 den Namen ".NET Core 5.0" trug. Es gibt im Internet noch viele Quelle aus dieser Zeit, die bei der Suche nach ".NET 5" gefunden werden. Auch einige Softwareprodukte, einschließlich der Windows Universal Platform (UWP) melden, dass ihre Basis, ".NET Core 5.0" wäre, das es mit diesem Namen aber nie als fertige Version gegeben hat.

[Update, 06.05.19, 21:00 Uhr]: Die Plattformen, auf denen Mono bisher lief, wurden um ein fehlendes "Android" ergänzt. (Holger Schwichtenberg) / (ane)