Skip to content

.NET 11 ships C# 15 unions; .NET 8 and 9 support ends

.NET 11 and C# 15 shipped November 10, the day .NET 8 and 9 lost support. In a hands-on test, a missed union case only warned, then crashed at runtime.

By

5 min read

XLinkedIn

Drafted with AI from the sources linked in this article, then fact-checked and edited by Claire Whitmore before publishing. How we work

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.

By the numbers

end of support for both .NET 8 and .NET 9
Nov 10, 2026
end of support for both .NET 10 and .NET 11
Nov 14, 2028
of support for .NET 11, a Standard Term Support release
2 years

Microsoft released .NET 11 on November 10, 2026, with C# 15 and its new union types. On the same day, .NET 8 and .NET 9 reached the end of their support, according to Microsoft's support policy page. Microsoft's .NET is a free, open-source platform for building apps, and C# is its main language. Apps still running on .NET 8 or 9 no longer get security fixes from Microsoft.

The .NET Blog announcement came on the first day of .NET Conf 2026, which runs November 10 to 13. Thurrott.com notes that .NET 11 is a Standard Term Support (STS) release, supported for two years. Long Term Support (LTS) releases such as .NET 10 get three years.

What is in .NET 11 and C# 15

The headline is the language. C# 15 is the default for any project that targets .NET 11, so no extra setting is needed. Microsoft's "What's new in C# 15" page lists these features:

FeatureWhat it doesNeeds a preview flag
Union typesOne type that holds exactly one of a fixed list of typesNo
Closed hierarchiesA base class whose subclasses the compiler knows in fullNo
Collection expression argumentsPass constructor settings, such as a capacity, inside [...]No
Extension indexersAdd [index] access to a type you do not ownNo
Labeled break and continueJump out of an outer loop from an inner oneNo
Static interface members on older runtimesPlain static methods in interfaces, without newer runtime supportNo
Memory safety rulesNew rules for unsafe pointer codeYes

A union is useful when a value can be one of several shapes, such as a payment that is a card, a bank transfer or a voucher. The compiler then checks that code handles every shape.

The rest of the release is tooling and libraries. The .NET Blog lists a native command-line host and a warm MSBuild server for faster builds. It also lists OpenAPI 3.2 support in ASP.NET Core and AI building blocks with MCP, the Model Context Protocol that links AI models to tools. The app framework for phones and desktops, .NET MAUI, now runs on CoreCLR by default. Microsoft cites "hundreds of runtime optimizations" but gives no figures in the announcement.

Which .NET versions are still supported

The table below comes from Microsoft's support policy page, last updated November 10, 2026. The page says even-numbered releases are LTS and odd-numbered ones are STS.

VersionTypeReleasedLatest patchEnd of support
.NET 11STSNovember 10, 202611.0.0November 14, 2028
.NET 10LTSNovember 11, 202510.0.15November 14, 2028
.NET 9STSNovember 12, 20249.0.23November 10, 2026
.NET 8LTSNovember 14, 20238.0.34November 10, 2026

One detail stands out. Both .NET 11 and .NET 10 lose support on the same day, November 14, 2028. So choosing the STS release no longer means a shorter life than the LTS one. Microsoft's policy also says only the latest patch of a version is supported, and the last six months of each version get security fixes only.

Tech AI Wire test: C# 15 unions in the .NET 11 SDK

In a Tech AI Wire test on macOS 26, the official mcr.microsoft.com/dotnet/sdk:11.0 container image (Ubuntu 26.04.1, arm64) reported SDK 11.0.100. A new console project targeted net11.0 with no language setting. Microsoft's own C# 15 examples then compiled and ran as written, plus a small grid added for the labeled break:

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);

The first run of dotnet run, build included, took 2.6 seconds. The other features worked too. A HashSet built with a case-insensitive comparer kept one of "Hello", "HELLO" and "hello", and a labeled break left both loops at once.

Next, the test deleted the Bird line from the switch. The build still succeeded. It printed warning 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." When the program later got a Bird, it crashed with a SwitchExpressionException and exit code 134.

The fix took one setting. With -p:WarningsAsErrors=CS8509, the same build failed with error CS8509 and exit code 1. So the safety check is there, but by default it is only a warning.

What this means for developers

Two things need attention this week: old versions and new habits.

  • Move off .NET 8 and .NET 9. Both stopped getting patches on November 10. The last versions Microsoft lists are 8.0.34 and 9.0.23. Any security flaw found from now on stays open in them.
  • Pick 10 or 11 on features, not support length. Both are supported until November 14, 2028. .NET 11 gets you C# 15; .NET 10 is the smaller jump for a team on .NET 8.
  • Make CS8509 an error before you use unions. Add <WarningsAsErrors>CS8509</WarningsAsErrors> to the project file, the same setting that made the test build fail. Without it, a new case added to a union can compile cleanly and fail only in production.
  • Leave the memory safety rules alone for now. They still need a preview flag, so they may change before a later release.
  • Update container builds. In the test, the sdk:11.0 tag pulled SDK 11.0.100. Pin the image by its digest in your Dockerfiles, so each build uses the SDK you tested.

Teams on .NET 10 have no deadline. They can try C# 15 in a branch and move when the libraries they rely on support .NET 11.

Sources

  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

Related articles

The weekly digest

One email every Friday with the week's top stories from all six desks: AI, dev tools, coding, the tech industry, startups and what's next. Free, no spam.

Unsubscribe anytime with one click.