Zum Inhalt springen

.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

5 Min. Lesezeit

XLinkedIn

Maschinell übersetzt aus dem englischen Original, das Claire Whitmore auf Fakten geprüft und redigiert hat. Es gilt die englische Fassung. So arbeiten wir

Screenshot of Microsoft's .NET and .NET Core Support Policy page, with a supported versions table listing .NET 11 (STS) and .NET 10 (LTS), both supported until November 14, 2028.

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:

FunktionWas sie tutBraucht ein Preview-Flag
Union-TypenEin Typ, der genau einen aus einer festen Liste von Typen enthältNein
Geschlossene HierarchienEine Basisklasse, deren Unterklassen der Compiler vollständig kenntNein
Argumente für Collection ExpressionsKonstruktor-Einstellungen wie eine Kapazität in [...] übergebenNein
Extension-Indexer[index]-Zugriff für einen fremden Typ ergänzenNein
break und continue mit LabelAus einer inneren Schleife die äußere verlassenNein
Statische Interface-Member auf älteren RuntimesNormale statische Methoden in Interfaces, ohne Unterstützung neuerer RuntimesNein
Regeln für SpeichersicherheitNeue Regeln für unsicheren Zeiger-CodeJa

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.

VersionTypVeröffentlichtNeuester PatchSupportende
.NET 11STS10. November 202611.0.014. November 2028
.NET 10LTS11. November 202510.0.1514. November 2028
.NET 9STS12. November 20249.0.2310. November 2026
.NET 8LTS14. November 20238.0.3410. 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.0 das 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

  1. Announcing .NET 11 - .NET Blog
  2. .NET and .NET Core Support Policy - Microsoft
  3. What's new in C# 15 - Microsoft Learn
  4. Microsoft Releases .NET 11 - Thurrott.com

Ähnliche Artikel