Présentation
.NET 11 est publié en tant que version Standard Term Support (STS) avec deux ans de prise en charge, conformément à la politique de support .NET. La version précédente, .NET 10, reste disponible en LTS. Cette mise à jour se veut plus rapide et plus productive grâce à plusieurs centaines d’optimisations du runtime et à un SDK allégé.
Nouvelles du langage
C# 15 devient la version par défaut pour les projets .NET 11. Le principal ajout est le type union, qui permet de déclarer une valeur pouvant appartenir à un ensemble de types explicite, avec vérification d’exhaustivité dans les switch. Le code suivant illustre cette fonctionnalité :
public sealed record Product(int Id, string Name);
public sealed record ProductNotFound(int Id);
public union ProductLookup(Product, ProductNotFound);
ProductLookup result = new Product(42, "Mechanical keyboard");
string message = result switch {
Product p => $"Found {p.Name}",
ProductNotFound n => $"No product with ID {n.Id}"
};
Console.WriteLine(message);
Le langage introduit aussi les hiérarchies fermées, limitant la dérivation aux assemblages déclarants, ce qui donne au compilateur les informations nécessaires pour valider les motifs de pattern matching. D’autres ajouts, comme les arguments d’expression de collection, les indexeurs d’extension et les instructions break/continue étiquetées, améliorent la lisibilité du code sans nécessiter de version preview.
Améliorations du SDK et du runtime
Le SDK active par défaut un hôte CLI Native AOT, permettant d’exécuter des commandes d’aide ou de version sans lancer le CLR géré. Le serveur MSBuild reste « warm » entre les invocations, réduisant le temps de démarrage. Les installateurs Linux/macOS sont plus compacts grâce à la déduplication d’assemblages. De nouvelles options CLI, comme #:include pour répartir les applications sur plusieurs fichiers source et la création de filtres de solution, facilitent la gestion de gros projets.
Le runtime JIT intègre plusieurs optimisations : suppression de vérifications de limites redondantes, amélioration de la dévirtualisation et pliage de constantes supplémentaires. Ces changements permettent de générer du code plus compact sans modification du code source. Les bibliothèques standard gagnent la compression Zstandard intégrée, une API de processus simplifiée, un support JSON enrichi et des structures de données en mémoire qui évitent les copies inutiles.
Impacts sur le développement d’applications
ASP.NET Core ajoute la validation asynchrone, la prise en charge d’OpenAPI 3.2 et de nouvelles capacités pour Blazor et SignalR. Des composants Blazor expérimentaux s’intègrent au protocole Agent User Interaction (AG‑UI) pour des expériences web agentiques. Le framework Microsoft.Extensions.AI (MEAI) expose des modèles d’IA, tandis que le Microsoft Agent Framework (MAF) orchestre agents et workflows. Des outils comme .NET Skills, .NET MAUI DevFlow et le canvas .NET Upgrade offrent un guidage ciblé et un suivi de la modernisation.
.NET MAUI adopte CoreCLR comme runtime par défaut, améliore l’itération XAML et les contrôles natifs, renforçant ainsi la création d’applications multiplateformes. Enfin, la publication de conteneurs génère des empreintes d’image reproductibles via SOURCE_DATE_EPOCH et évite les couches redondantes, tandis que NuGet introduit un paramètre d’âge minimum pour les paquets, limitant la visibilité immédiate des nouvelles versions.