Immo Landwerth
24.03.2020, 11:03 Uhr

Zukünftige Framework-Namen von .NET 5 und seinen Nachfolgern

Microsoft hat sich Gedanken darüber gemacht, wie es neue Framework-Versionen benennen sollte, um das Namens-Chaos möglichst klein zu halten. Ein Beispiel: Das künftige .NET 10 soll .NET 10.0 heißen, um es von .NET Framework 1.0 (auch .NET 10) unterscheiden zu können.
(Quelle: github.com/dotnet/designs/)
Microsoft möchte die Target Framework Namen (TFMs), die Entwickler in Projektdateien und NuGet-Paketen verwenden müssen, drastisch vereinfachen. Dazu gehört die Zusammenführung des Konzepts von .NET 5 und .NET Standard, wobei eine #if-Unterscheidung weiterhin zur Verwendung betriebssystemspezifischer APIs verwendet werden kann.
#if ANDROID
        ...
#elif IOS
        ...
#elif WINDOWS
        ...
...
Ein Dokument von Immo Landwerth, Program Manager im .NET Framework Team bei Microsoft, erläutert die Motivation und die daraus resultierende Erfahrung der Entwickler. Er räumt ein, dass .NET – wie die wie die meisten Technologien, die zwei Jahrzehnte alt sind – ein umfangreiches Erbe, insbesondere bei der Produktbenennung und den Editionen hat: .NET Framework, .NET Compact Framework, Silverlight, .NET Micro Framework, .NET Portable Class Libraries, .NET for Windows Store, .NET Native, .NET Core, .NET Standard. Dazu kommen die Bezeichnungen, welche die Mono-Community aufgebaut hat. Landwerth bezeichnet die Namen auch als "Boxen".
Wenn Sie neu bei .NET sind, wo würden Sie anfangen? Was ist der neueste Stack? Sie können sagen: "Natürlich ist das der .NET Core", aber wie kann man das wissen, wenn man sich nur die Namen ansieht? Mit .NET-Standard hat Microsoft versucht, den Überblick zu vereinfachen, in dieser Klasse müssen sich die Bibliotheksautoren keine Gedanken über all die verschiedenen "Boxen" machen, die verschiedene Implementierungen von .NET repräsentieren. Dies wurde durch die Vereinheitlichung der API-Oberfläche der verschiedenen .NET-Implementierungen erreicht. Ironischerweise führte dies dazu, dass noch eine weitere Box hinzugefügt werden musste, nämlich .NET-Standard.
Um die Zukunft vernünftiger zu gestalten, will Microsoft die Anzahl der Boxen reduzieren. .NET soll nicht weniger flexibel werden, aber es sollen unsinnige Unterschiede reduziert werden, die rein darauf zurückzuführen sind, dass .NET nicht früh genug Open Source waren. So basieren beispielsweise Mono/Xamarin/Unity auf einem anderen Satz von Runtimes und Frameworks als .NET Framework/Silverlight/UWP/.NET Core. Mit .NET-Standard wurde begonnen, die Unterschiede in der API-Oberfläche zu beseitigen. Mit .NET 5 ist es das Ziel von Microsoft, diese Abstammungslinien in einem einzigen Produktstapel zusammenzuführen und so zu vereinheitlichen.
Insbesondere für Entwickler, die auf diesem Stack beginnen und Anwendungen für jede der Plattformen schreiben wollen, für die .NET Unterstützung bietet. Das derzeitige Branding ist für sie kaum sinnvoll, es trägt eher zur Verwirrung bei. Das Ziel ist: Um Dokumentation und Tutorials zu finden, sollten Entwickler nur zwei Dinge wissen müssen: den Namen und die Version ihres Technologiestacks.
Den kompletten Beitrag von Immo Landwerth finden Sie auf GitHub. Ein Video zum Thema finden Sie hier.


Das könnte Sie auch interessieren