# Microsoft releases .NET 11 with C# 15 union types, Native AOT CLI, and Runtime Async preview

> **Key takeaway:** .NET 11 introduces C# 15 with union types and closed class hierarchies, switches to a Native AOT-based CLI host by default, and adds an opt-in Runtime Async execution model that moves async suspension from compiler-generated state machines into the runtime itself.

**Published:** 2026-11-11T23:44:30+00:00 
**Source:** Linuxiac 
**Category:** distro-news 
**Canonical URL:** https://fosswire.org/news/microsoft-releases-net-11-with-c-15-union-types-native-aot-c.html 

## Summary
Microsoft has released .NET 11, a Standard Term Support (STS) release with two years of support, alongside the end-of-support dates for .NET 8 and .NET 9 on November 10, 2026. The release brings C# 15 with union types enabling exhaustive switch expression checking, closed class hierarchies restricting inheritance to the declaring assembly, extension indexers, and labeled break/continue statements. Performance improvements span the JIT compiler with enhanced bounds check elimination and devirtualization, Native AOT interface dispatch optimization, and FP16 hardware acceleration on compatible x64 and Arm64 processors.

For Linux specifically, SDK installers are smaller due to assembly deduplication, and in-process crash reporting now captures managed stack traces and runtime state. The SDK defaults to a Native AOT-based CLI host for faster command-line startup, backed by a persistent MSBuild server. Web developers gain ASP.NET Core 11 with asynchronous validation, OpenAPI 3.2 defaults, and SignalR credential refresh; Blazor adds a CacheView component and session pausing; and .NET MAUI 11 switches to CoreCLR as its default runtime across platforms.

## What changes in .NET 11 for Linux and runtime performance
- **C# 15 language features:** Union types allow values representing one of several specified types with compile-time exhaustiveness checking for switch expressions; closed class hierarchies restrict direct inheritance to the declaring assembly; additional additions include extension indexers, collection expression arguments, and labeled break/continue statements.
- **JIT and Native AOT optimizations:** The JIT compiler eliminates more redundant bounds checks and branches, performs additional devirtualization, and optimizes compile-time-known inputs; Native AOT improves interface dispatch via a shared helper reducing code size and improving performance for frequent interface calls.
- **Runtime Async (preview):** A new opt-in execution model handles asynchronous suspension and resumption directly in the runtime rather than through compiler-generated state machines, representing a potential architectural shift for async programming in .NET.
- **Linux-specific SDK improvements:** Installers are smaller through assembly deduplication; in-process crash reporting captures managed stack traces, loaded module information, and runtime state before application exit on Linux.
- **SDK tooling changes:** The Native AOT-based CLI host is enabled by default for lightweight commands without managed CLI startup; a persistent MSBuild server reduces startup overhead between commands; built-in Zstandard compression is added to System.IO.Compression.

## Why it matters
For Linux distribution packagers and developers, .NET 11's smaller SDK footprint and improved crash diagnostics address longstanding deployment and debugging friction on non-Windows platforms. The Native AOT CLI host and persistent MSBuild server directly improve the inner-loop development experience for command-line tooling, while the Runtime Async preview offers a path toward more efficient async patterns that could reduce memory pressure in server workloads. With .NET 8 and 9 now end-of-life, organizations must evaluate migration timelines, though .NET 10 LTS remains available for those requiring longer support cycles.