.NET 11 apporte les unions de C# 15 ; fin du support de .NET 8 et 9
.NET 11 et C# 15 sont sortis le 10 novembre, jour de la fin du support de .NET 8 et 9. Lors d'un test pratique, un cas d'union oublié n'a donné qu'un avertissement, puis un plantage.
Par Claire Whitmore
5 min de lecture
Traduit automatiquement de l'original anglais, vérifié et édité par Claire Whitmore. La version anglaise fait foi. Notre méthode

En chiffres
- fin du support de .NET 8 et de .NET 9
- 10 nov. 2026
- fin du support de .NET 10 et de .NET 11
- 14 nov. 2028
- de support pour .NET 11, une version Standard Term Support
- 2 ans
Microsoft a publié .NET 11 le 10 novembre 2026, avec C# 15 et ses nouveaux types union. Le même jour, .NET 8 et .NET 9 sont arrivés en fin de support, selon la page de politique de support de Microsoft. Le .NET de Microsoft est une plateforme gratuite et open source pour créer des applications, et C# en est le langage principal. Les applications qui tournent encore sous .NET 8 ou 9 ne reçoivent plus de correctifs de sécurité de Microsoft.
L'annonce sur le .NET Blog est parue le premier jour de la .NET Conf 2026, qui se tient du 10 au 13 novembre. Thurrott.com note que .NET 11 est une version Standard Term Support (STS), prise en charge pendant deux ans. Les versions Long Term Support (LTS) comme .NET 10 ont droit à trois ans.
Ce que contiennent .NET 11 et C# 15
L'essentiel, c'est le langage. C# 15 est le langage par défaut de tout projet qui cible .NET 11, aucun réglage n'est donc nécessaire. La page « Nouveautés de C# 15 » de Microsoft liste ces fonctionnalités :
| Fonctionnalité | Ce qu'elle fait | Exige un indicateur de préversion |
|---|---|---|
| Types union | Un type qui contient exactement un type parmi une liste fixe | Non |
| Hiérarchies fermées | Une classe de base dont le compilateur connaît toutes les sous-classes | Non |
| Arguments d'expressions de collection | Passer des réglages de constructeur, comme une capacité, dans [...] | Non |
| Indexeurs d'extension | Ajouter un accès [index] à un type qui ne vous appartient pas | Non |
break et continue étiquetés | Sortir d'une boucle extérieure depuis une boucle intérieure | Non |
| Membres d'interface statiques sur d'anciens runtimes | Des méthodes statiques simples dans les interfaces, sans le soutien d'un runtime récent | Non |
| Règles de sûreté mémoire | De nouvelles règles pour le code à pointeurs non sécurisé | Oui |
Une union est utile quand une valeur peut prendre plusieurs formes, par exemple un paiement par carte, par virement ou par bon d'achat. Le compilateur vérifie alors que le code traite chaque forme.
Le reste de la version concerne les outils et les bibliothèques. Le .NET Blog cite un hôte natif en ligne de commande et un serveur MSBuild maintenu actif pour accélérer les builds. Il cite aussi la prise en charge d'OpenAPI 3.2 dans ASP.NET Core et des briques d'IA avec MCP, le Model Context Protocol qui relie les modèles d'IA à des outils. Le framework d'applications pour mobiles et ordinateurs, .NET MAUI, tourne désormais sur CoreCLR par défaut. Microsoft évoque « des centaines d'optimisations du runtime », sans donner de chiffres dans l'annonce.
Quelles versions de .NET sont encore prises en charge
Le tableau ci-dessous provient de la page de politique de support de Microsoft, mise à jour le 10 novembre 2026. Selon cette page, les versions paires sont LTS et les impaires STS.
| Version | Type | Sortie | Dernier correctif | Fin du support |
|---|---|---|---|---|
| .NET 11 | STS | 10 novembre 2026 | 11.0.0 | 14 novembre 2028 |
| .NET 10 | LTS | 11 novembre 2025 | 10.0.15 | 14 novembre 2028 |
| .NET 9 | STS | 12 novembre 2024 | 9.0.23 | 10 novembre 2026 |
| .NET 8 | LTS | 14 novembre 2023 | 8.0.34 | 10 novembre 2026 |
Un détail ressort. .NET 11 comme .NET 10 perdent leur support le même jour, le 14 novembre 2028. Choisir la version STS ne signifie donc plus une durée de vie plus courte que la version LTS. La politique de Microsoft précise aussi que seul le dernier correctif d'une version est pris en charge. Les six derniers mois de chaque version ne reçoivent plus que des correctifs de sécurité.
Test Tech AI Wire : les unions de C# 15 dans le SDK .NET 11
Lors d'un test Tech AI Wire sous macOS 26, l'image de conteneur officielle mcr.microsoft.com/dotnet/sdk:11.0 (Ubuntu 26.04.1, arm64) a indiqué le SDK 11.0.100. Un nouveau projet console ciblait net11.0, sans réglage de langage. Les exemples C# 15 de Microsoft ont ensuite été compilés et exécutés tels quels, avec une petite grille ajoutée pour le break étiqueté :
Pet pet = new Dog("Rex");
string name = pet switch
{
Dog d => d.Name,
Cat c => c.Name,
Bird b => b.Name,
};
public union Pet(Cat, Dog, Bird);
Le premier dotnet run, build compris, a pris 2,6 secondes. Les autres fonctionnalités ont aussi marché. Un HashSet créé avec un comparateur insensible à la casse n'a gardé qu'une valeur parmi "Hello", "HELLO" et "hello". Un break étiqueté a quitté les deux boucles d'un coup.
Le test a ensuite supprimé la ligne Bird du switch. Le build a quand même réussi. Il a affiché l'avertissement CS8509 : "The switch expression does not handle all possible values of its input type (it is not exhaustive). For example, the pattern 'Bird' is not covered." Autrement dit, l'expression switch ne couvre pas toutes les valeurs de son type d'entrée, par exemple 'Bird'. Quand le programme a ensuite reçu un Bird, il a planté avec une SwitchExpressionException et le code de sortie 134.
La correction a tenu en un réglage. Avec -p:WarningsAsErrors=CS8509, le même build a échoué avec l'erreur CS8509 et le code de sortie 1. Le contrôle de sécurité existe donc, mais par défaut ce n'est qu'un avertissement.
Ce que cela signifie pour les développeurs
Deux sujets demandent de l'attention cette semaine : les anciennes versions et les nouvelles habitudes.
- Quittez .NET 8 et .NET 9. Les deux ne reçoivent plus de correctifs depuis le 10 novembre. Les dernières versions listées par Microsoft sont 8.0.34 et 9.0.23. Toute faille trouvée à partir de maintenant y restera ouverte.
- Choisissez entre 10 et 11 selon les fonctionnalités, pas la durée du support. Les deux sont pris en charge jusqu'au 14 novembre 2028. .NET 11 vous donne C# 15 ; pour une équipe sous .NET 8, .NET 10 est le saut le plus court.
- Faites de CS8509 une erreur avant d'utiliser les unions. Ajoutez
<WarningsAsErrors>CS8509</WarningsAsErrors>au fichier projet, le même réglage qui a fait échouer le build du test. Sans lui, un nouveau cas ajouté à une union peut compiler sans bruit et n'échouer qu'en production. - Laissez de côté les règles de sûreté mémoire pour l'instant. Elles exigent encore un indicateur de préversion et peuvent changer d'ici une prochaine version.
- Mettez à jour vos builds de conteneurs. Dans le test, le tag
sdk:11.0a téléchargé le SDK 11.0.100. Épinglez l'image par son digest dans vos Dockerfiles, pour que chaque build utilise le SDK testé.
Les équipes sous .NET 10 n'ont pas d'échéance. Elles peuvent essayer C# 15 dans une branche et migrer quand les bibliothèques dont elles dépendent prendront en charge .NET 11.
Sources
- Announcing .NET 11 - .NET Blog
- .NET and .NET Core Support Policy - Microsoft
- What's new in C# 15 - Microsoft Learn
- Microsoft Releases .NET 11 - Thurrott.com
Articles liés
C++26 échoue au vote ISO à cause des Contracts, testé dans GCC 16
C++26 a échoué à son vote ISO à cause des Contracts. Un test de Tech AI Wire a essayé les quatre modes dans GCC 16.2 ; l'un a affiché 0 pour 10 / 0 sans alerte.

Le JIT de CPython va être supprimé après le retrait de la PEP 836
Les auteurs de la PEP 836 l'ont retirée le 19 octobre 2026. Le compilateur JIT expérimental de CPython devrait donc désormais être supprimé de la branche main.

TypeScript 7.1 Beta ajoute une nouvelle API et des mappeurs de contenu
TypeScript 7.1 Beta rétablit une API programmatique pour les outils bloqués sur la 6.0, ajoute des mappeurs de contenu pour les fichiers .vue et vérifie les types jusqu'à 1,9 fois plus vite que la 7.0.