Das sind die Überarbeitungen von .NET Core, ASP.NET Core und Entity Framework Core in Version 2.1

Microsoft hatte die Veröffentlichung für den Sommer 2018 angekündigt. Nun scheint der Sommer auch in den USA schon früh begonnen zu haben, denn die 2.1-Versionen von Microsofts Core-Produkten sind schon zum 31. Mai erschienen und bieten viele Neuerungen.

Werkzeuge  –  0 Kommentare
.NET Core, ASP.NET Core und Entity Framework Core 2.1 sind fertig

Wie üblich hat Microsoft am gleichen Tag nicht nur die Laufzeitumgebung .NET Core, sondern auch das Webserverframework ASP.NET Core und den objekt-relationalen Mapper Entity Framework Core in einer neuen Version 2.1 veröffentlicht. Neun Monate sind vergangen seit dem Erscheinen der 2.0-Versionen – das ist relativ lang, verglichen mit den fünf Monaten zwischen Version 1.0 und 1.1. Der Zeitraum drückt aber aus, dass Microsoft in die Version 2.1 sehr viele Neuerungen einbringt. Nach dem Prinzip des Semantic Versioning repräsentiert die Versionsnummernänderung zwischen 2.0 und 2.1 nicht den Umfang der Neuerungen, sondern die vorhandene Kompatibilität. Bestehende .NET-Core-2.0-Anwendungen sollen auf .NET Core 2.1 ohne Änderungen laufen können, verspricht Microsoft in einem Blogeintrag mit dem "Minor-Version Roll-forward". Für .NET-Core-1.x-Anwendungen gilt dies aber nicht.

Die Version 2.1 will Microsoft in den kommenden zwei bis drei Monaten – nach einigen kleineren Updates – als neue Long-Term-Support-Version (LTS) deklarieren. Langzeit ist aber relativ: Während Microsoft auf das klassische .NET Framework zehn Jahre Support gab, bedeutet Langzeit bei .NET Core nur drei Jahre. Wichtig ist aber, dass mit dieser bald kommenden Erklärung der "LTS"-Version dann alle Anwender der Version 2.0 schnell umsteigen müssen, denn die Version 2.0 ist ein "Current"-Release, dessen Support 12 Monate nach dem LTS-Release enden wird. Der Support für .NET Core 1.0 und 1.1 endet sowieso am 27. Juni 2019.

Laut Microsoft lag der Fokus von .NET Core 1.1 auf der Erhöhung der Übersetzungsgeschwindigkeit (s. Abb. 1). Auch der Just-in-Time-Compiler sowie die Netzwerk-Bibliotheken (u.a. die Klasse System.Net.HttpClient) hat das Entwicklungsteam erheblich überarbeitet, was der Laufzeitperformance von .NET Core-Anwendungen zu Gute kommt. Die angekündigte "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 Methoden die Übersetzung nachträglich optimiert, ist aber nur in einer Vorschau-Version enthalten. Diese Funktion muss der .NET-Core-2.1-Nutzer explizit durch das Setzen einer Umgebungsvariablen aktivieren, die kurioserweise noch "COMPlus" im Namen trägt – das war der Name, den der Vorläufer von .NET Ende der 1990er Jahre trug: COMPlus_TieredCompilation="1".

Schnellere Übersetzung bei .NET Core 2.1 (Bild: Microsoft)

.NET Core 2.1 unterstützt nun auch die Brotli-Komprimierung nach RFC 7932. Mit der Unterstützung der Datenstrukturen Span<T>, ReadOnlySpan<T>, Memory<T> und ReadOnlyMemory<T>, die ein direktes Adressieren von Teilen von Arrays und anderen Speicherbereichen ermöglichen, können Entwickler zudem die Bearbeitung großer Datenstrukturen optimieren.