AccueilActualités informatiqueLa série d'aperçus pour .NET 7 démarre avec de nouvelles fonctionnalités web

La série d’aperçus pour .NET 7 démarre avec de nouvelles fonctionnalités web

Alors que Microsoft livre une version stable de .NET 6 depuis le 8 novembre 2021 et célèbre actuellement le vingtième anniversaire du lancement de .NET, la première version de prévisualisation de .NET 7 est disponible depuis la nuit dernière sur la page de téléchargement de .NET. Les développeurs doivent utiliser comme EDI la version 17.2 Preview 1 de Visual Studio 2022, qui est sortie le 15 février 2022.

Après l’installation du SDK .NET 7, Visual Studio propose « .NET 7.0 (Preview) » (voir fig. 1). Il est également possible de modifier manuellement le framework cible dans un fichier de projet existant en le remplaçant par

<TargetFramework>net7.0</TargetFramework>

Les développeurs doivent mettre à jour les bibliothèques intégrées par NuGet vers 7.0.0-preview.1.*.

Visual Studio 2022 Version 17.2 Preview bietet nach der Installation des .NET 7 SDK auch die Entwicklung mit .NET 7.0 Preview an (Abb. 1).

Visual Studio 2022 Version 17.2 Preview propose également le développement avec .NET 7.0 Preview après l’installation du SDK .NET 7 (ill. 1).

Sommaire

La première version d’aperçu ne contient que peu de nouveautés – la plupart concernent ASP.NET Core. Les « Minimal APIs » introduites dans la version 6 reçoivent dans .NET 7 Preview 1 le support pour le téléchargement de fichiers avec les interfaces IFormFile et IFormFileCollection. Toutefois, celui-ci ne fonctionne pas encore dans les API minimales avec une authentification dans l’en-tête HTTP. L’upload de fichiers était déjà possible dans ASP.NET Core, mais uniquement avec une syntaxe plus détaillée. En outre, les API minimales prennent désormais en charge la réception de données via les classes Stream et PipeReader.

Un nouveau générateur de code source pour ASP.NET Core SignalR est disponible dans le package NuGet Microsoft.AspNetCore.SignalR.Client.SourceGenerator. Celui-ci génère désormais du code pour un client SignalR basé sur C# sur la base d’un hub SignalR typé. L’utilisation de chaînes de caractères, jusqu’à présent sujette à erreurs, pour les SendAsync("Methodename") et On("Methodennamen") est supprimé.

Avec .NET 7 Preview 1, Microsoft construit pour la première fois un pont entre les API REST d’ASP.NET Core dans l’implémentation de gRPC (Google Remote Procedure Call) qu’il contient également. Le nouveau paquet NuGet Microsoft.AspNetCore.Grpc.HttpApi, dont le code source et la documentation se trouvent sur GitHub, permet d’appeler des services basés sur gRPC comme des services REST. Pour ce faire, Microsoft traduit les verbes HTTP, les paramètres URL ainsi que la charge utile avec un transcodage entre les formats JSON et Protocol Buffers. Les développeurs qui souhaitent proposer les deux types de services peuvent ainsi éviter une double mise en œuvre.

La fonction Hot Reloading introduite dans .NET 6 et Visual Studio 2022 pour modifier les applications en cours d’exécution est jusqu’à présent très limitée et ne prend pas en charge un grand nombre de modifications typiques du code du programme. Microsoft avait toutefois promis d’élargir les modifications autorisées. Dans .NET 7 Preview 1, il est désormais possible d’ajouter des classes et des membres de classe statiques.

L’éditeur a rendu la sortie de l’outil de ligne de commande dotnet watch, utilisable en alternative ou en combinaison avec Visual Studio, plus attrayante en y ajoutant des emojis (voir ill. 2). Par la variable d’environnement DOTNET_WATCH_RESTART_ON_RUDE_EDIT = true les développeurs peuvent désormais contrôler que dotnet watch redémarre automatiquement l’application en cas de modifications ne supportant pas le rechargement à chaud (appelées « Rude Edits »).

Emojis lockern die Textwüste auf, die dotnet watch ausgibt (Abb. 2).

Les emojis égayent le désert de texte affiché par dotnet watch (ill. 2).

Dans .NET 7, Microsoft poursuit également le travail d’amélioration de la prise en charge des Nullable Reference Types, déjà introduits dans C# 8. Depuis .NET 6, les Nullable Reference Types sont activés par défaut dans tous les modèles de projet – le compilateur avertit donc des éventuelles erreurs d’exécution de Nullreference.

Maintenant dans .NET 7 Preview 1, certaines bibliothèques de classes .NET de l’espace de noms Microsoft.Extensions (par ex. Microsoft.Extensions.Configuration) sont également dotées de ce que l’on appelle des « Nullable Annotations », ce qui facilite la collaboration avec Nullable Reference Types. D’ici à la sortie de .NET 7, Microsoft veut avoir mis à jour toutes les bibliothèques de l’espace de noms Microsoft.Extensions. Désormais, les indications de type de modèle dans ASP.NET MVC Views et Razor Pages peuvent également être déclarées avec un point d’interrogation pour le transfert possible de zéro (@model Nom du type ?).

Parmi les premières nouvelles fonctionnalités de la version 11 de la syntaxe du langage C# à venir avec .NET, .NET 7 Preview 1 fournit de nouvelles possibilités de syntaxe pour les chaînes de caractères. Une « Raw Literal String » est une nouvelle forme de chaîne de caractères avec des ruptures. Dans ce cas, la chaîne de caractères commence par trois guillemets ou plus et se termine par le même nombre de guillemets :

var rawLiteralString = """" 
 heise Developer-Schnelltest
 der ersten Preview von .NET 7
 in Visual Studio 2022 17.1 Preview 1
 """";

Les anciennes formes syntaxiques « Regular String » (ruptures avec \n) et « Chaîne verbale » (commençant par @) restent toutefois autorisées :

var regularString = "\r\nheise Developer-Schnelltest\n der ersten Preview von .NET 7\n in Visual Studio 2022 17.1 Preview 1\r\n ";
 
var verbatimString = @"
 heise Developer-Schnelltest
 der ersten Preview von .NET 7
 in Visual Studio 2022 17.1 Preview 1
 ";

Visual Studio 2022 17.2 Preview propose déjà des fonctions de refactoring pour convertir entre les trois formes de chaînes de caractères. Lorsque l’on essaie de sélectionner un mot avec le double-clic habituel, Visual Studio sélectionne actuellement toute la chaîne de caractères dans la Raw Literal String.

Une autre nouveauté de C# 11 est que les retours à la ligne sont autorisés à l’intérieur des expressions d’interpolation de chaînes de caractères entre accolades.

string name = "Dr. Holger Schwichtenberg";
var text = $"Vorname: {name
                       .Split(" ")
                       .ElementAt(1)}";

La version .NET 7 Preview 1 ne contient qu’une petite partie des nouveautés prévues pour .NET 7. Microsoft révèle à différents endroits ce qui est prévu. Dans le cadre de la célébration du 20e anniversaire, les chefs de produit ont laissé échapper quelques mots clés sur les fonctionnalités prévues dans .NET 7 : création plus facile d’applications .NET dans des conteneurs directement via MSBuild, Blazor WebAssembly également en dehors du navigateur (avec WASI), multi-threading et déploiement de fichier unique pour Blazor, authentification simplifiée dans ASP.NET Core, opérateur de vérification zéro paramètre avec double point d’exclamation (!!) et des attributs génériques en C# 11, ainsi qu’un générateur de code source pour les expressions régulières.

Lire aussi

Une recherche permet d’obtenir des images GitHub pertinentes. En outre, certaines équipes de développement ont publié des feuilles de route, par exemple pour C# 11, ASP.NET Core 7.0 et Entity Framework Core 7.0.

L’équipe de développement d’OR-Mapper s’est à nouveau fixé pour objectif de réduire l’écart qui subsiste avec l’Entity Framework classique. Ainsi, le support de l’Entity Splitting, l’héritage Table-per-Concrete-Type, le mapping sur les types primitifs, le contrôle de la génération de code lors de la rétro-ingénierie via T4-Template ainsi que l’insertion, la modification et la suppression lors de la création d’un nouveau type d’application sont prévus. SaveChanges() via Stored Procedure sera finalement disponible dans Entity Framework Core 7. De plus, l’équipe prévoit de nouvelles fonctionnalités telles que les mises à jour en vrac et les nouveaux opérateurs LINQ introduits dans .NET 6, tels que MinBy() et MaxBy() et les colonnes JSON (cette dernière était déjà prévue pour la version 6). L’équipe prévoit également de livrer le nouveau pilote de base de données Microsoft SQL Server SqlServer.Core, plus performant, prévu sous le nom de code « Woodstar ».

.NET 7 apportera de nouveaux changements par rapport à .NET 6. Microsoft en a déjà dressé une liste, mais elle est pour l’instant très courte (six entrées). .NET 7 devrait être disponible en novembre 2022 et sera une version Current avec seulement 18 mois de support.

Plus d'articles