Microsoft legt nach

.NET 7 Preview 6 und Entity Framework Core 7 Preview 6 veröffentlicht

.NET 7 Preview 6 und Entity Framework Core 7 Preview 6 veröffentlicht

Microsoft legt nach

.NET 7 Preview 6 und Entity Framework Core 7 Preview 6 veröffentlicht


Das Jahr 2022 schreitet voran und am Horizont steht schon die finale Veröffentlichung von .NET 7. Daher hat Microsoft auf dem hauseigenen Blog die neuesten Previews zu .NET 7 und Entity Framework Core 7 vorgestellt. Wir werfen einen Blick darauf.

Mit den letzten .NET-7-Previews hat uns Microsoft unter anderem Generic Math sowie Verbesserungen für Cloud-Native-Apps und Observability präsentiert. Nun hat Microsoft die .NET 7 Preview 6, die ASP.NET Core Updates in .NET 7 Preview 6 und die Entity Framework Core 7 Preview 6 veröffentlicht. Wir möchten mit euch einen Blick auf ausgewählte Features werfen. Alle weiteren Informationen findet ihr wie immer unter den entsprechenden Verlinkungen.

.NET 7 Preview 6

Im Fokus der sechsten Preview zum kommenden .NET 7 stehen neben anderen Themen autorenseitige Beschränkungen für .NET-Templates, Anpassung des JSON Contract,Verbesserungen von Typen Konvertern, Updates für die System.Formats.Tar APIs und Performanceverbesserungen im CodeGen-Bereich

Anpassung des JSON Contract

Anpassungen am JSON Contract können es Nutzer:innen ermöglichen, mehr Kontrolle über Serialisierungs- und Deserialisierungprozesse von Typen zu erhalten, ohne Wrapper oder eigene Konverter schreiben zu müssen, die nicht nur mehr Arbeit machen, sondern auch die Serialisierung verlangsamen. Microsoft stellt hierbei in der Preview zwei Optionen vor, Anpassungen zu ermöglichen und geht auch darauf ein, was verändert werden kann.

Updates für die System.Formats.Tar APIs

In Preview 4 wurde die Komponente System.Formats.Tar eingeführt. Sie bietet einige APIs, um die TAR-Archive zu beeinflussen. In .NET 7 Preview 6 sind nun einige Veränderungen dazugekommen, um den einen oder anderen Spezialfall abzudecken.

Es ist aufgefallen, dass TAR-Archive, anders als beim Projektdesign angedacht, mehrere Global-Extended-Attributes-(GEA-)Einträge enthalten können und GEA-Einträge nicht nur in Archiven erscheinen, die PAX-Einträge enthalten, sondern auch in Archiven, die Einträge verschiedener Formate vermischen. Daher wurde eine neue Klasse eingeführt, um GEA-Einträge zu beschreiben.

Da, wie bereits erwähnt, die Einträge einzelner Formate innerhalb eines Archives vermischt werden können, wurde der Enumerationstyp TarFormat zu TarEntryFormat geändert und zu TarEntry eine neue Eigenschaft hinzugefügt.

Autorenseitige Beschränkungen für .NET-Templates

Mit Preview 6 wird es Autor:innen von Templates ermöglicht zu definieren, in welchem Kontext ihre Templates verwendet werden können. Es gibt hierbei drei Arten von Beschränkungen:

  • Betriebssysteme – manche Templates sind nur für bestimmte Betriebssysteme verfügbar.
  • Installierte Workloads – .NET SDK Workload muss installiert sein, damit das Template verfügbar ist.
  • Template Engine Host – beschränkt die verfügbaren Templates, je nachdem welche Host die Template Engine ausführt.

Dieses neue Feature soll dazu beitragen, die Vorraussetzungen für die Nutzungen von Templates besser vor Augen zu führen und die Template-Liste für häufig genutzte Szenarien aufzuräumen.

ASP.NET Core in .NET 7 Preview 6

Mit der sechsten Preview für .NET 7 ergeben sich auch einige Verbesserung für das Open Source Webframework ASP.NET Core. Alle Updates für ASP.NET Core Neuerung findet Ihr im .NET-Blog.

Middleware

In Preview 6 werden zwei neue Arten der Middleware, die Request Decompression Middleware und die Output Chaching Middleware vorgestellt.

Die Output Caching Middleware hilft dabei, die Ergebnisse aus einer Web-App zu speichern und sie ausgehend von einem Zwischenspeicher zu liefern, anstatt sie jedes Mal neu zu verarbeiten, was die Performances deutlich steigert und Ressourcen für andere Aktivitäten bereitstellt. Die Request Decompression Middleware verwendet den HTTP-Header Content-Encoding, um automatisch Anfragen mit komprimiertem Inhalt zu identifizieren und dekomprimieren, damit dieser Prozess nicht manuell ausgeführt werden muss.

Außerdem wurde die Rate Limiting Middleware nun um eine Funktion erweitert, die Rate Limiting für einen spezifischen Endpunkt ermöglicht. Diese kann auch mit einem globalen Limiter kombiniert werden, der für alle Anfragen aktiv ist.

Leere Blazor-Projektvorlagen

Für alle, die bei ihren Projekten ganz von vorne anfangen wollen, bietet Blazor jetzt zwei neue Projektvorlagen. „Blazor Server App Empty“ und „Blazor WebAssembly App Empty“ funktionieren genauso wie ihre Gegenstücke, nur eben ohne Beispiel-Code. Die neuen Templates sind, wenn das .NET 7 SDK installiert ist, über Visual Studio oder ansonsten über die Befehle dotnet new blazorserver-empty bzw. dotnet new blazorwasm-empty verfügbar.

Unterstützung von WebSockets über HTTP/2 durch Kestrel

Mit der neuesten .NET 7 Preview ist der ursprünglich für HTTP/1.1 entwickelte Webserver Kestrel überarbeitet worden. Die Unterstützung von Websockets über HTTP/2 soll den Vorteil bringen, dass neue Features, wie Header Compression und Multiplexing, genutzt werden können, die bei mehreren Anfragen an den Server Zeit und Ressourcen sparen können.

Performance in Entity Framework Core 7

Entity Framework Core 7 Preview 6 ist nun ebenfalls als NuGet Package verfügbar, und das Entwickler:innenteam hat sich zur Veröffentlichung in einem Blog-Post den Verbesserung an der Update-Performance gewidmet. Alle Veränderung in Preview 6 können auf GitHub nachgelesen werden. In EF 7 wurden einige Verbesserungen an der Update-Pipeline vorgenommen. Allgemein sollen unnötige Network Roundtrips zur Datenbank vermieden werden. In einigen der gezeigten Beispiele werden bis zu 74% Zeitersparnis erreicht.

Alle Ausführungen dazu finden sich in der Performance Edition der Entity Framework Core 7 Preview 6.