.NET Core 2.1

Eintrag zuletzt aktualisiert am: 30.06.2019

.NET Core 2.1 ist am 30.5.2018 erschienen.

Runtime

.NET Core 2.1 kann schneller Kompilieren (sowohl im Sprachkompiler zur Entwicklungszeit als auch zur Laufzeit im Just-in-Time-Compiler). Ebenso die Netzwerk-Bibliotheken (u.a. die Klasse System.Net.HttpClient) hat das Entwicklungsteam optimiert. Die "Tiered Compilation", durch die der Just-In-Time-Compiler zunächst den Fokus auf schnelle Übersetzung statt optimalem Ergebnis legt und dann für häufiger verwendete Methode die Übersetzung nachträglich optimiert, ist in .NET Core 2.1 aber nur in einer Vorschau-Version enthalten [https://docs.microsoft.com/de-de/dotnet/core/whats-new/dotnet-core-2-1]. Diese Funktion muss der Anwendungsbetreiber explizit durch das Setzen einer Umgebungsvariablen aktivieren: COMPlus_TieredCompilation="1". Unglaublich, dass "COMPlus" als Name auch 17 Jahre nach dem Erscheinen der ersten .NET-Version noch weiterlebt.

Neue Klassen

Neben Klassen aus dem klassischen .NET Framework hat Microsoft auch ganz neue Klassen mit .NET Core 2.1 eingeführt. Dazu gehören die Datenstrukturen Span<T>, ReadOnlySpan<T>, Memory<T> und ReadOnlyMemory<T>, die ab C# 7.2 ein direktes Adressieren von Teilen von Arrays und anderen Speicherbereichen ermöglichen. Neu ist auch die die Brotli-Komprimierung nach RFC 7932 im Paket System.IO.Compression.Brotli [https://blogs.msdn.microsoft.com/dotnet/2017/07/27/introducing-support-for-brotli-compression/]. Bei den Kryptografie-APIs gibt es viele kleine Neuerungen (siehe [https://docs.microsoft.com/de-de/dotnet/core/whats-new/dotnet-core-2-1]).

Ein wesentliches Thema in den 2.1-Versionen ist die Erweiterung der Funktionen, insbesondere durch die Übernahme weiterer Klassen aus dem klassischen .NET Framework. Das "Windows Compatibility Pack for.NET Core" bringt viele hundert Klassen aus der bisherigen .NET Framework Class Library als Nuget-Paket in die .NET Core Welt. Das Nuget-Paket "Microsoft.Windows.Compatibility" [https://www.nuget.org/packages/Microsoft.Windows.Compatibility], ist ein Meta-Paket über viele andere Nuget-Pakete.