Sie sind hier

ASP.NET Core 7.0

Eintrag zuletzt aktualisiert am: 24.05.2022


ASP.NET Core 7.0 wird zusammen mit .NET 7 im November 2022 erscheinen.

Pläne
https://github.com/dotnet/aspnetcore/issues/39504

Neuerungen in Preview 1 (18.2.2022)
Die in Version 6 eingeführten "Minimal APIs" bekommen in .NET 7 Preview 1 mit den Schnittstellen IFormFile und IFormFileCollection Unterstützung für den Datei-Upload. Allerdings funktioniert dieser in Minimal APIs noch nicht zusammen mit einer Authentifizierung im HTTP-Header. Ein Dateiupload war in ASP.NET Core auch zuvor möglich, allerdings nur mit der ausführlicheren Syntax. Zudem unterstützen die Minimal APIs nun auch die Entgegenname von Daten über die Klassen Stream und PipeReader.

Für ASP.NET Core SignalR gibt es einen neuen Source Code Generator im NuGet-Paket Microsoft.AspNetCore.SignalR.Client.SourceGenerator. Dieser erzeugt auf Basis eines typisierten SignalR-Hubs nun Programmcode für einen C#-basierten SignalR-Client. Die bisherige, fehleranfällige Verwendung von Zeichenketten bei SendAsync("Methodename") und On("Methodennamen") entfällt damit.

Mit .NET 7 Preview 1 baut Microsoft erstmals eine Brücke zwischen den REST-APIs in ASP.NET Core in der dort ebenfalls enthaltenen Implementierung von gRPC [https://entwickler-lexikon.de/GoogleRemote_ProcedureCall/lex/9576.aspx]. Das neue NuGet-Paket Microsoft.AspNetCore.Grpc.HttpApi [https://www.nuget.org/packages/Microsoft.AspNetCore.Grpc.HttpApi], dessen Quellcode und Dokumentation man auf GitHub [https://github.com/aspnet/AspLabs/tree/main/src/GrpcHttpApi] findet, erlaubt es, gRPC-basierte Dienste wie REST-Dienste aufzurufen. Microsoft übersetzt dazu die HTTP-Verben, die URL-Parameter sowie die Nutzlast mit einem Transcoding zwischen den Formaten JSON und Protocol Buffers. Entwicklern, die beide Dienstarten anbieten wollen, können somit eine Doppelimplementierung vermeiden.

Das in .NET 6 und Visual Studio 2022 eingeführte Hot Reloading [https://www.heise.de/news/Microsoft-liefert-NET-6-aus-6261722.html] zur Änderung von laufenden Anwendungen ist bisher sehr eingeschränkt und unterstützt eine Vielzahl von typischen Änderungen am Programmcode nicht. Microsoft hatte aber versprochen, die erlaubten Änderungen auszudehnen. In .NET 7 Preview 1 ist nun das Hinzufügen von Klassen und das Hinzufügen statischer Klassenmitglieder möglich.

Die Ausgabe des alternativ oder in Verbindung mit Visual Studio einsetzbaren Kommandozeilenwerkzeugs dotnet watch hat der Hersteller nun mit Emojis attraktiver gemacht. Per Umgebungsvariable DOTNETWATCH_RESTART_ON_RUDEEDIT = true kann der Entwickler nun steuern, dass dotnet watch bei Änderungen, die kein Hot Reloading unterstützen (sogenannte "Rude Edits"), die Anwendung automatisch neu startet.

Zudem setzt Microsoft in .NET 7 die Arbeiten an der verbesserten Unterstützung für die schon in C# 8 eingeführten Nullable Reference Types fort. Seit .NET 6 sind Nullable Reference Types im Standard in allen Projektvorlagen aktiviert, was bedeutet, dass der Compiler vor möglichen Nullreference-Laufzeitfehlern warnt. Nun in .NET 7 Preview 1 sind auch einige .NET-Klassenbibliotheken aus dem Namensraum Microsoft.Extensions (z.B. Microsoft.Extensions.Configuration) mit den sogenannten "Nullable Annotations" versehen, was die Zusammenarbeit mit Nullable Reference Types vereinfacht. Bis zum Erscheinen von .NET 7 will Microsoft alle Bibliotheken im Namensraum Microsoft.Extensions erledigt haben [https://github.com/dotnet/runtime/issues/43605]. Nun ebenfalls mit einem Fragezeichen für die mögliche Null-Übergabe deklarierbar sind die Modelltypangaben in ASP.NET MVC Views und Razor Pages (@model Typname?).