.NET 11 bringt Union-Typen in C# 15; Support für .NET 8 und 9 endet
.NET 11 und C# 15 erschienen am 10. November, dem Tag, an dem der Support für .NET 8 und 9 endete. Im Praxistest gab ein fehlender Union-Fall nur eine Warnung und stürzte dann ab.
Von Claire Whitmore
5 Min. Lesezeit
Maschinell übersetzt aus dem englischen Original, das Claire Whitmore auf Fakten geprüft und redigiert hat. Es gilt die englische Fassung. So arbeiten wir

Die Zahlen
- Supportende für .NET 8 und .NET 9
- 10. Nov. 2026
- Supportende für .NET 10 und .NET 11
- 14. Nov. 2028
- Support für .NET 11, ein Standard-Term-Support-Release
- 2 Jahre
Microsoft hat .NET 11 am 10. November 2026 veröffentlicht, mit C# 15 und den neuen Union-Typen. Am selben Tag endete der Support für .NET 8 und .NET 9, wie Microsofts Seite zur Support-Richtlinie zeigt. Microsofts .NET ist eine kostenlose Open-Source-Plattform für die App-Entwicklung, und C# ist ihre Hauptsprache. Apps, die noch auf .NET 8 oder 9 laufen, bekommen von Microsoft keine Sicherheitsupdates mehr.
Die Ankündigung im .NET Blog kam am ersten Tag der .NET Conf 2026, die vom 10. bis 13. November läuft. Thurrott.com merkt an, dass .NET 11 ein Standard-Term-Support-Release (STS) ist, mit zwei Jahren Support. Long-Term-Support-Releases (LTS) wie .NET 10 bekommen drei Jahre.
Was in .NET 11 und C# 15 steckt
Das Wichtigste ist die Sprache. C# 15 ist der Standard für jedes Projekt, das auf .NET 11 zielt, eine extra Einstellung ist also nicht nötig. Microsofts Seite "Neuerungen in C# 15" nennt diese Funktionen:
| Funktion | Was sie tut | Braucht ein Preview-Flag |
|---|---|---|
| Union-Typen | Ein Typ, der genau einen aus einer festen Liste von Typen enthält | Nein |
| Geschlossene Hierarchien | Eine Basisklasse, deren Unterklassen der Compiler vollständig kennt | Nein |
| Argumente für Collection Expressions | Konstruktor-Einstellungen wie eine Kapazität in [...] übergeben | Nein |
| Extension-Indexer | [index]-Zugriff für einen fremden Typ ergänzen | Nein |
break und continue mit Label | Aus einer inneren Schleife die äußere verlassen | Nein |
| Statische Interface-Member auf älteren Runtimes | Normale statische Methoden in Interfaces, ohne Unterstützung neuerer Runtimes | Nein |
| Regeln für Speichersicherheit | Neue Regeln für unsicheren Zeiger-Code | Ja |
Eine Union ist nützlich, wenn ein Wert eine von mehreren Formen haben kann, etwa eine Zahlung per Karte, Überweisung oder Gutschein. Der Compiler prüft dann, ob der Code jede Form behandelt.
Der Rest des Releases betrifft Werkzeuge und Bibliotheken. Der .NET Blog nennt einen nativen Kommandozeilen-Host und einen dauerhaft laufenden MSBuild-Server für schnellere Builds. Er nennt auch OpenAPI 3.2 in ASP.NET Core und KI-Bausteine mit MCP, dem Model Context Protocol, das KI-Modelle mit Werkzeugen verbindet. Das App-Framework für Smartphones und Desktops, .NET MAUI, läuft jetzt standardmäßig auf CoreCLR. Microsoft spricht von "Hunderten Laufzeit-Optimierungen", nennt in der Ankündigung aber keine Zahlen.
Welche .NET-Versionen noch unterstützt werden
Die Tabelle stammt von Microsofts Seite zur Support-Richtlinie, zuletzt aktualisiert am 10. November 2026. Laut der Seite sind gerade Versionsnummern LTS und ungerade STS.
| Version | Typ | Veröffentlicht | Neuester Patch | Supportende |
|---|---|---|---|---|
| .NET 11 | STS | 10. November 2026 | 11.0.0 | 14. November 2028 |
| .NET 10 | LTS | 11. November 2025 | 10.0.15 | 14. November 2028 |
| .NET 9 | STS | 12. November 2024 | 9.0.23 | 10. November 2026 |
| .NET 8 | LTS | 14. November 2023 | 8.0.34 | 10. November 2026 |
Ein Detail fällt auf. Sowohl .NET 11 als auch .NET 10 verlieren den Support am selben Tag, dem 14. November 2028. Wer das STS-Release wählt, hat also kein kürzeres Leben als mit dem LTS-Release. Die Richtlinie sagt außerdem, dass nur der neueste Patch einer Version unterstützt wird. In den letzten sechs Monaten gibt es für jede Version nur noch Sicherheitsupdates.
Tech-AI-Wire-Test: Unions aus C# 15 im .NET-11-SDK
In einem Tech-AI-Wire-Test unter macOS 26 meldete das offizielle Container-Image mcr.microsoft.com/dotnet/sdk:11.0 (Ubuntu 26.04.1, arm64) das SDK 11.0.100. Ein neues Konsolenprojekt zielte auf net11.0, ohne Spracheinstellung. Microsofts eigene Beispiele für C# 15 ließen sich danach unverändert kompilieren und ausführen, ergänzt um ein kleines Raster für das break mit Label:
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);
Der erste Lauf von dotnet run dauerte samt Build 2,6 Sekunden. Auch die anderen Funktionen liefen. Ein HashSet mit einem Vergleicher, der Groß- und Kleinschreibung ignoriert, behielt nur einen der Werte "Hello", "HELLO" und "hello". Ein break mit Label verließ beide Schleifen auf einmal.
Danach löschte der Test die Zeile für Bird aus dem Switch. Der Build gelang trotzdem. Er gab die Warnung CS8509 aus: "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." Sinngemäß: Der Switch-Ausdruck deckt nicht alle Werte seines Eingabetyps ab, zum Beispiel fehlt 'Bird'. Als das Programm später einen Bird bekam, stürzte es mit einer SwitchExpressionException und Exit-Code 134 ab.
Die Lösung war eine Einstellung. Mit -p:WarningsAsErrors=CS8509 schlug derselbe Build mit Fehler CS8509 und Exit-Code 1 fehl. Die Sicherheitsprüfung ist also da, standardmäßig aber nur eine Warnung.
Was das für Entwickler bedeutet
Zwei Dinge brauchen diese Woche Aufmerksamkeit: alte Versionen und neue Gewohnheiten.
- Verlassen Sie .NET 8 und .NET 9. Beide bekommen seit dem 10. November keine Patches mehr. Die letzten Versionen, die Microsoft nennt, sind 8.0.34 und 9.0.23. Jede Sicherheitslücke, die ab jetzt gefunden wird, bleibt darin offen.
- Wählen Sie zwischen 10 und 11 nach Funktionen, nicht nach Supportdauer. Beide werden bis zum 14. November 2028 unterstützt. Mit .NET 11 bekommen Sie C# 15; .NET 10 ist für ein Team auf .NET 8 der kleinere Sprung.
- Machen Sie CS8509 zum Fehler, bevor Sie Unions nutzen. Fügen Sie
<WarningsAsErrors>CS8509</WarningsAsErrors>in die Projektdatei ein, dieselbe Einstellung, mit der der Test-Build fehlschlug. Ohne sie kann ein neuer Fall in einer Union sauber kompilieren und erst in der Produktion scheitern. - Lassen Sie die Regeln für Speichersicherheit vorerst liegen. Sie brauchen noch ein Preview-Flag und können sich bis zu einem späteren Release ändern.
- Aktualisieren Sie Container-Builds. Im Test lud der Tag
sdk:11.0das SDK 11.0.100. Fixieren Sie das Image in Ihren Dockerfiles über seinen Digest, damit jeder Build das getestete SDK nutzt.
Teams auf .NET 10 haben keine Frist. Sie können C# 15 in einem Branch ausprobieren und umsteigen, sobald ihre Bibliotheken .NET 11 unterstützen.
Quellen
- 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
Ähnliche Artikel
C++26 scheitert an ISO-Abstimmung über Contracts, getestet in GCC 16
C++26 ist an der ISO-Abstimmung über Contracts gescheitert. Ein Test von Tech AI Wire prüfte alle vier Modi in GCC 16.2; einer gab für 10 / 0 ohne Warnung 0 aus.

CPythons JIT soll nach dem Rückzug von PEP 836 entfernt werden
Die Autoren von PEP 836 haben den Vorschlag am 19. Oktober 2026 zurückgezogen. Daher dürfte der experimentelle JIT-Compiler von CPython nun aus dem Main-Branch entfernt werden.

TypeScript 7.1 Beta bringt eine neue API und Content Mapper
TypeScript 7.1 Beta bringt eine programmatische API für Werkzeuge zurück, die auf 6.0 festsaßen, ergänzt Content Mapper für .vue-Dateien und prüft Typen bis zu 1,9-mal schneller als 7.0.