Microsoft has launched .NET 11, a Standard Term Support (STS) release that introduces C# 15 as the default language version. The update focuses on reducing developer friction by optimizing the command-line experience and providing new infrastructure for AI agents to interact with application logic.
Language Evolution and C# 15
C# 15 brings union types, which allow a value to be one of a declared set of case types. This enables developers to handle multiple possible states with exhaustiveness checking in switch expressions without resorting to generic object types or unrelated base classes.

This screenshot illustrates the practical implementation of union types and closed hierarchies in C# 15.
The release also introduces closed hierarchies, which limit direct derivation of a class to its declaring assembly. This provides the compiler with the necessary information to check patterns over a specific inheritance model, complementing the flexibility of union types.
“Union types are one of its biggest additions: a value can be one of a declared set of case types, with conversions from those types and exhaustiveness checking in switch expressions.”
— Announcing .NET 11 - .NET Blog
Optimizing the Developer Workflow
To reduce the time spent waiting on tool execution, the .NET 11 SDK now enables a Native AOT CLI host by default. This allows commands like 'help' and 'version' to run without starting the managed CLI, while the MSBuild server stays warm between invocations to avoid repeated startup work.
For file-based applications, developers can now use the #:include directive to grow code across multiple source files. Additionally, the 'dotnet watch' tool has been updated with Aspire app-host integration and crash recovery for mobile projects.
Runtime Async and Performance Improvements
One of the most significant architectural shifts is 'Runtime Async,' a preview feature that moves asynchronous suspension and resumption into the runtime. By removing the need for compiler-generated state machines, the runtime can provide a clearer live call stack, allowing profilers and debuggers to show the actual asynchronous methods rather than the underlying infrastructure.
The release includes hundreds of runtime optimizations, including JIT compiler improvements that remove redundant bounds checks and improve devirtualization. It also expands hardware support to include FP16 instructions for Half operations on supported x64 and Arm64 hardware.
AI Integration and Agentic Capabilities
Microsoft is positioning .NET 11 as a foundation for 'agentic' development. The SDK includes an MCP (Model Context Protocol) server template to help AI applications discover and call tools, while Microsoft.Extensions.AI provides standard abstractions like IChatClient for model access.
The Microsoft Agent Framework (MAF) builds on these abstractions to coordinate agents and application code. These tools can be integrated with ASP.NET Core to create interactive Blazor experiences using the Agent User Interaction Protocol (AG-UI).
Limitations and Trade-offs
While the release offers significant upgrades, some features remain in preview or have specific limitations. For example, Runtime Async is not the default behavior and requires manual opt-in via a PropertyGroup to use the new compilation model.
Additionally, while System.Text.Json now supports F# discriminated unions, this specific implementation does not support source generation, trimming, or Native AOT. Developers must check these documented limits before using the feature in trimmed applications.
What Hacker News readers are saying
- Technical note: One commenter pointed out a specific change in how decimals are handled, noting that .NET 11 appears to produce different precision results compared to .NET 10. comment ↗
- Technical note: A commenter expressed surprise regarding the shift to runtime-managed asynchronous execution, questioning whether this implies the use of stackful coroutines. comment ↗
- Skeptical: Several commenters expressed skepticism regarding the long-term viability of the platform, citing past experiences with abandoned technologies and the lack of a cross-platform GUI stack. comment ↗
- Experience: One developer who uses .NET for AI backends reported that the framework is highly effective for these applications, especially when running in Linux containers. comment ↗
Summarized opinions from the Hacker News thread, not verified facts. Read the full discussion ↗