Nouveautés de .NET 5
.NET 5 est la prochaine version majeure de .NET Core après la version 3.1. Cette version a été nommée .NET 5 au lieu de .NET Core 4 pour deux raisons :
- Les numéros de version 4.x ont été ignorés pour éviter toute confusion avec .NET Framework 4.x.
- « Core » a été supprimé du nom pour souligner qu’il s’agit de l’implémentation principale de .NET à l’avenir. .NET 5 prend en charge plus de types d’applications et plus de plateformes que .NET Core ou .NET Framework.
ASP.NET Core 5.0 est basé sur .NET 5, mais conserve le nom « Core » pour éviter de le confondre avec ASP.NET MVC 5. De même, Entity Framework Core 5.0 conserve le nom « Core » pour éviter de le confondre avec Entity Framework 5 et 6.
.NET 5 inclut les améliorations suivantes et les nouvelles fonctionnalités par rapport à .NET Core 3.1 :
- Mises à jour C#
- Mises à jour F#
- Les mises à jour (Visual Basic)
- System.Text.Json nouvelles fonctionnalités
- Applications à fichier unique
- Découpage d’application
- Intrinsèques Windows Arm64 et Arm64
- Prise en charge des outils pour le débogage d’image mémoire
- Les bibliothèques de runtime sont annotées à 80 % pour les types référence Nullable
- Améliorations des performances :
- Collecte de déchets (GC)
- System.Text.Json
- System.Text.RegularExpressions
- Regroupement ValueTask asynchrone
- optimisations de taille de conteneur
- De nombreux autres domaines
.NET 5 ne remplace pas .NET Framework
.NET 5 et versions ultérieures sont la principale implémentation de .NET à l’avenir, mais .NET Framework 4.x est toujours pris en charge. Il n’existe aucun plan de portage des technologies suivantes de .NET Framework vers .NET 5, mais il existe des alternatives dans .NET :
Technologie | Alternative recommandée |
---|---|
Formulaires web | ASP.NET Core Blazor ou Razor Pages |
Windows Workflow (WF) | Elsa-Workflows |
Windows Communication Foundation
L’implémentation d’origine de windows Communication Foundation (WCF) n’a été prise en charge que sur Windows. Toutefois, il existe un port client disponible à partir de .NET Foundation. Il est entièrement open source, multiplateforme et pris en charge par Microsoft. Les packages NuGet de base sont répertoriés ci-dessous :
- System.ServiceModel.Duplex
- System.ServiceModel.Federation
- System.ServiceModel.Http
- system.ServiceModel.NetTcp
- System.ServiceModel.Primitives
- System.ServiceModel.Security
Les composants serveur qui complètent les bibliothèques clientes mentionnées ci-dessus sont disponibles via CoreWCF. Depuis avril 2022, CoreWCF est officiellement pris en charge par Microsoft. Toutefois, vous pouvez envisager gRPC comme alternative à WCF.
.NET 5 ne remplace pas .NET Standard
Le développement de nouvelles applications peut spécifier le moniker de framework cible net5.0
pour tous les types de projets, y compris les bibliothèques de classes. Le partage de code entre les charges de travail .NET 5 est simplifié : tout ce dont vous avez besoin est le TFM net5.0
.
Pour les applications et bibliothèques .NET 5, le module TFM net5.0
combine et remplace les netcoreapp
et netstandard
TFMs. Toutefois, si vous envisagez de partager du code entre les charges de travail .NET Framework, .NET Core et .NET 5, vous pouvez le faire en spécifiant netstandard2.0
en tant que TFM. Pour plus d’informations, consultez .NET Standard.
Mises à jour C#
Les développeurs écrivant des applications .NET 5 auront accès à la dernière version et fonctionnalités C#. .NET 5 est associé à C# 9, ce qui apporte de nombreuses nouvelles fonctionnalités au langage. Voici quelques points forts :
Enregistrements : types de référence avec des sémantiques d’égalité basées sur la valeur et une mutation non destructive pris en charge par une nouvelle expression
with
.Correspondance de modèles relationnels: Étend les capacités de correspondance de modèles aux opérateurs relationnels pour les évaluations et les expressions comparatives, y compris les modèles logiques - nouveaux mots-clés
and
,or
etnot
.instructions de niveau supérieur: comme moyen d’accélérer l’adoption et l’apprentissage de C#, la méthode
Main
peut être omise et une application aussi simple que l’exemple suivant est valide :System.Console.Write("Hello world!");
Pointeurs de fonction : constructions de langage qui exposent les opcodes de langage intermédiaire (IL) suivants :
ldftn
etcalli
.
Pour plus d’informations sur les fonctionnalités C# 9 disponibles, consultez Nouveautés de C# 9.
Générateurs de code source
En plus de certaines des nouvelles fonctionnalités C# mises en surbrillance, les générateurs sources font leur chemin dans les projets de développement. Les générateurs sources permettent au code qui s’exécute pendant la compilation d’inspecter votre programme et de produire des fichiers supplémentaires compilés avec le reste de votre code.
Pour plus d’informations sur les générateurs sources, consultez Présentation des générateurs sources C# et exemples de générateur de source C#.
Mises à jour F#
F# est le langage de programmation fonctionnelle .NET et avec .NET 5, les développeurs ont accès à F# 5. L’une des nouvelles fonctionnalités est des chaînes interpolées, similaires aux chaînes interpolées en C#, et même JavaScript.
let name = "David"
let age = 36
let message = $"{name} is {age} years old."
Outre l’interpolation de chaîne de base, il existe une interpolation typée. Avec l’interpolation typée, un type donné doit correspondre au spécificateur de format.
let name = "David"
let age = 36
let message = $"%s{name} is %d{age} years old."
Ce format est similaire à la fonction sprintf
qui met en forme une chaîne basée sur des entrées de type sécurisé.
Pour plus d’informations, consultez Nouveautés de F# 5.
Mises à jour Visual Basic
Il n’existe aucune nouvelle fonctionnalité de langage pour Visual Basic dans .NET 5. Toutefois, avec .NET 5, la prise en charge de Visual Basic est étendue à :
Description | paramètre dotnet new |
---|---|
Application console | console |
Bibliothèque de classes | classlib |
Application WPF | wpf |
Bibliothèque de classes WPF | wpflib |
Bibliothèque de contrôles personnalisés WPF | wpfcustomcontrollib |
Bibliothèque de contrôle utilisateur WPF | wpfusercontrollib |
Application Windows Forms (WinForms) | winforms |
Bibliothèque de classes Windows Forms (WinForms) | winformslib |
Projet de test unitaire | mstest |
Projet de test NUnit 3 | nunit |
Élément de test NUnit 3 | nunit-test |
Projet de test xUnit | xunit |
Pour plus d’informations sur les modèles de projet à partir de l’interface CLI .NET, consultez dotnet new
.
Nouvelles fonctionnalités System.Text.Json
Il existe de nouvelles fonctionnalités dans et pour system.Text.Json:
- Conserver les références et gérer les références circulaires
- Méthodes d’extension de sérialisation sur HttpClient
- Autoriser ou écrire des nombres entre guillemets
- Prise en charge des types immuables et des enregistrements C# 9
- Prise en charge des accesseurs de propriété non publics
- Prise en charge des champs
- Ignorer conditionnellement les propriétés
- Prendre en charge les dictionnaires à clés non textuelles
- Autoriser les convertisseurs personnalisés à gérer la valeur Null
- Copier JsonSerializerOptions
- Créer JsonSerializerOptions avec les paramètres web par défaut