Stockholm
Meridan ReportStockholm: Nordic startup hub and fintech frontier

Advertisement · Why this ad?

Technology

.NET 11

Katherine Langford
Editor-in-Chief · Tuesday, November 10, 2026 at 4:01 PM · 5 min read
.NET 11 — Stockholm Technology news
Today, we’re excited to announce the release of .NET 11! This year’s release makes building modern applications faster, more productive, and has improvements across C# 15, ASP.NET Core, .NET MAUI, and Windows development. With hundreds of runtime optimizations, more responsive SDK tooling, and less overhead in everyday commands, you can spend less time waiting and more time creating. Build richer web and cross-platform applications, take advantage of new C# language features, and explore AI-powered development with improved tools and agentic capabilities. Download .NET 11 .NET 11 support .NET 11 is a Standard Term Support (STS) release with two years of support under the .NET support policy . STS and Long Term Support (LTS) releases have the same quality and servicing policies; the difference is the length of support. .NET 10 remains a supported LTS option. Stay current with servicing updates whichever release you choose. Join us at .NET Conf, November 10-13 Explore .NET 11 with the product teams and community at .NET Conf 2026 . The conference includes product team sessions on November 10 and 11, followed by two days of community sessions. Watch the Day 1 livestream, including the keynote , or browse the conference session playlist . Announcing .NET 11 Watch .NET Conf What’s new in .NET 11 Some of the changes we’re most excited for you to try: C# 15 union types and closed hierarchies help you express the possible states of your application and handle them with compiler-checked patterns. A Native AOT CLI host and a warm MSBuild server reduce overhead in everyday developer workflows. ASP.NET Core brings asynchronous validation, OpenAPI 3.2, and new capabilities for Blazor and SignalR applications. Experimental Blazor AI components integrate with the Agent User Interaction Protocol (AG-UI) for advanced agentic web experiences. Build AI-powered, agentic applications with Microsoft.Extensions.AI (MEAI) for model access, MCP for tool integration, and Microsoft Agent Framework (MAF) for agents and workflows. Put agentic development tools to work with .NET Skills for .NET-specific guidance, .NET MAUI DevFlow for inspecting and testing running apps, and the .NET Upgrade canvas for reviewing modernization progress. .NET MAUI adopts CoreCLR as its default runtime and improves XAML iteration and native controls. The libraries add built-in Zstandard compression, simpler process execution, richer JSON support, and new ways to work with in-memory data without copying it first. The what’s new in .NET 11 overview links to the full details. Here are the changes behind those headlines and how to start using them. Languages C# 15 C# 15 is the default language version for projects targeting .NET 11. 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. Consider a product lookup that either finds a product or reports that it wasn’t found: ProductLookup result = new Product(42, "Mechanical keyboard"); string message = result switch { Product product => $"Found {product.Name}", ProductNotFound missing => $"No product with ID {missing.Id}", }; Console.WriteLine(message); public sealed record Product(int Id, string Name); public sealed record ProductNotFound(int Id); public union ProductLookup(Product, ProductNotFound); The result type tells a caller which outcomes it needs to handle. There’s no need to use object or an unrelated base class just to put those outcomes behind one return type. C# 15 also adds closed hierarchies . A closed class limits direct derivation to its declaring assembly, giving the compiler the information it needs to check patterns over the hierarchy. Unions are useful when you want to combine existing types; closed hierarchies fit models where you own the inheritance relationship. Smaller language features help with everyday code, too. Collection expression arguments let you pass constructor or factory arguments without giving up collection expression syntax: HashSet names = [with(StringComparer.OrdinalIgnoreCase), "Alice", "ALICE", "Bob"]; Console.WriteLine(names.Count); This prints 2 : the comparer controls equality, so "Alice" and "ALICE" are one entry. Other additions include extension indexers and labeled break and continue . These features don’t require the preview language version. The separate memory safety work remains in preview ; see the C# 15 feature documentation for its opt-in requirements. F# 11 F# 11 improves compiler memory use and reduces allocations in FSharp.Core collection operations. It also adds ways to bound concurrent asynchronous work, useful when a collection operation would otherwise start more work than a service or machine can handle comfortably. The F# release notes distinguish the default-language updates from preview capabilities, including Runtime Async support for custom computation-expression builders. Platform SDK The SDK now enables a Native AOT CLI host by default. Commands such as help and version queries can run without starting the managed CLI, and tool launches can avoid that startup path too. Commands that need managed execution still use it. The MSBuild server also stays warm between CLI invocations by default, reducing repeated startup work. SDK installers on Linux and macOS are smaller through assembly deduplication. File-based apps can grow across source files with #:include , and solution filters can be created and edited from the CLI. dotnet watch adds Aspire app-host integration, crash recovery, and device selection for mobile projects. For teams using Microsoft.Testing.Platform, dotnet test gains run-level timeouts, failure limits, clearer progress reporting, and per-module results directories. The test runner matters: these switches aren’t interchangeable with the VSTest command-line options. Container publishing adds reproducible image digests through SOURCE_DATE_EPOCH and avoids redundant layer uploads when the target manifest already exists. NuGet source configuration gains a minimum package publication age setting, which lets teams wait before newly published package versions become eligible for selection. This is an additional policy control, not a replacement for vulnerability checks or reviewing dependencies. See what’s new in the SDK and tooling for command examples and configuration. Runtime and performance Performance work in .NET 11 reaches both the code you deploy and the tools you use to develop it. Stephen Toub’s Performance Improvements in .NET 11 takes a detailed tour through hundreds of runtime and library optimizations, with benchmarks and code examples. The just-in-time (JIT) compiler improvements remove more redundant bounds checks and branches, improve devirtualization, and fold more operations into constants. For example, the JIT can optimize additional SequenceEqual calls when it knows the inputs at compile time. These changes improve generated code without requiring you to rewrite the corresponding application logic. Native AOT interface dispatch uses a shared helper that reduces the code needed at interface call sites and improves throughput for interface-heavy workloads. Hardware support also expands, including FP16 instructions for Half operations on supported x64 and Arm64 hardware and new vector construction and composition APIs. There’s useful work on diagnostics, too. In-process crash report logging can capture a managed stack trace, module information, and runtime state before a process exits. Previously available on mobile platforms, this reporting path now also supports Linux and macOS. As always, measure the effect on your own application. Throughput, startup time, memory use, and deployment size depend on the workload and publishing options you choose. Runtime Async has been a recurring theme throughout the .
Up nextAMD's Zen 6 Family: Feeding the BeastTechnology · 7 min read
You're offline — showing the last loaded page