Nouveautés de .NET 5

.NET 5 est la prochaine version majeure de .NET Core après la version 3.1. Nous avons nommé cette nouvelle version .NET 5 au lieu de .NET Core 4 pour deux raisons :

  • Nous avons ignoré les numéros de version 4.x pour éviter toute confusion avec .NET Framework 4.x.
  • Nous avons supprimé « Core » du nom pour souligner le fait 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 et nouvelles fonctionnalités suivantes par rapport à .NET Core 3.1 :

.NET 5 ne remplace pas .NET Framework

.NET 5 et les versions ultérieures sont la principale implémentation de .NET désormais, 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 :

Technology Alternative recommandée
Web Forms 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. Il existe toutefois un port client disponible à partir de .NET Foundation. C’est entièrement open source, multiplateforme et pris en charge par Microsoft. Les packages NuGet de base sont répertoriés ci-dessous :

Les composants serveur qui complètent les bibliothèques clientes mentionnées précédemment 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 moniker de framework cible net5.0.

Pour les applications et les bibliothèques .NET 5, le moniker de framework cible net5.0 combine et remplace les monikers de framework cible netcoreapp et netstandard. 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 votre moniker de framework cible netstandard2.0. Pour plus d'informations, consultez .NET Standard.

Mises à jour C#

Les développeurs écrivant des applications .NET 5 auront accès aux dernières version et fonctionnalités C#. .NET 5 est associé à C# 9, ce qui apporte de nombreuses fonctionnalités inédites au langage. Voici quelques points forts :

  • Enregistrements : types référence avec la sémantique d’égalité basée sur la valeur et mutation non destructrice prise en charge par une nouvelle expression with.

  • Critères spéciaux relationnels : étend les fonctionnalités de critères spéciaux aux opérateurs relationnels pour les évaluations et expressions comparatives, y compris les modèles logiques, les nouveaux mots clés and, or et not.

  • 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 et calli.

Pour plus d’informations sur les fonctionnalités C# 9 disponibles, consultez Nouveautés de C# 9.

Générateurs de sources

En plus de certaines des nouvelles fonctionnalités C# mises en surbrillance, les générateurs de source s’imposent dans les projets de développement. Les générateurs de source permettent au code exécuté 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 de source, consultez Présentation des générateurs de source 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. Les chaînes interpolées sont une des nouvelles fonctionnalités. Elles sont semblables 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 semblable à 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ôles 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 de System.Text.Json

Il existe de nouvelles fonctionnalités dans et pour System.Text.Json :

Voir aussi