Today, we are excited to announce the first preview release of .NET 11! We just shipped our first preview release, adding to some major enhancements across the .NET Runtime, SDK, libraries, C#, ASP.NET Core, Blazor, .NET MAUI, and more. Check out the full release notes linked below and get started today.
This release contains the following improvements.
📚Libraries
- Zstandard Compression Support
- BFloat16 Floating-Point Type
- ZipArchiveEntry Improvements
- FrozenDictionary Collection Expression Support
- TimeZone Improvements
- Rune Support Across String, StringBuilder, and TextWriter
- MediaTypeMap for MIME Type Lookups
- HMAC and KMAC Verification APIs
- Hard Link Creation APIs
- DivisionRounding for Integer Division Modes
- Happy Eyeballs Support in Socket.ConnectAsync
- Performance Improvements
- Full Release Notes
⏱️Runtime
- Runtime Async
- CoreCLR on WebAssembly
- Interpreter Expansion
- JIT Performance Improvements
- GC Heap Hard Limit for 32-bit Processes
- RISC-V and s390x Architecture Enablement
- Full Release Notes
🛠️ SDK
dotnet run: Interactive Target Framework and Device Selectiondotnet test: Positional Argumentsdotnet watch: Hot Reload Reference Changes and Configurable Ports- New Code Analyzers
- Full Release Notes
🔨 MSBuild
- Terminal Logger Improvements
- MSBuild Language and Evaluation Fixes
- New APIs and Capabilities
- Performance Improvements
- Full Release Notes
C#
F#
This release you will find updates across the F# compiler, including parallel compilation enabled by default, faster compilation of computation expression-heavy code, new features like --disableLanguageFeature and --typecheck-only for FSI, the ML compatibility removal, and bug fixes.
Visual Basic
.NET 11 Preview 1 doesn’t include any new Visual Basic language features or breaking changes. Browse the full release notes for details.
🌐 ASP.NET Core & Blazor
- EnvironmentBoundary Component
- Label Component for Forms
- DisplayName Component
- QuickGrid
OnRowClickEvent - Relative Navigation with
RelativeToCurrentUri - SignalR
ConfigureConnectionfor Interactive Server Components IHostedServiceSupport in Blazor WebAssembly- OpenAPI Schema Support for Binary File Responses
IOutputCachePolicyProvider- Auto-trust Development Certificates in WSL
- Full Release Notes
📱 .NET MAUI
.NET for Android
Browse the full release notes for all of this and more.
🖥️ Windows Forms
This release focused on quality improvements. A full list of changes can be found in the release notes.
🖥️ Windows Presentation Foundation (WPF)
This release focused on quality improvements, including fixes for Fluent window backdrop and background in Windows 10. A full list of changes can be found in the release notes.
🎁 Entity Framework Core
- Complex Types and JSON Columns on Entity Types with TPT/TPC Inheritance
- Create and Apply Migrations in One Step
- Azure Cosmos DB Transactional Batches
- Azure Cosmos DB Bulk Execution
- Azure Cosmos DB Session Token Management
- Full Release Notes
📦 Container Images
.NET 11 Preview 1 does not introduce new container image features. Browse the full release notes for details.
🚀 Get started
To get started with .NET 11, install the .NET 11 SDK.
If you’re on Windows using Visual Studio, we recommend installing the latest Visual Studio 2026 Insiders. You can also use Visual Studio Code and the C# Dev Kit extension with .NET 11.
Collection Expression Arguments feature is bullshit and you know it. Please when you design analyzers give us granularity so we won’t have to disable the analyzers suggesting collection expressions in general. (BTW the current analyzer wants me to use collection expressions in place of .ToList() on a LINQ query, which is of course stupid)
I really don’t get the point of Collection Expression Arguments.
This syntax looks out of place in C#,
And it is questionable of much this saves in typing, to the expense of getting the language one step closer to all the C++ gotchas, with special cased syntax.
FYI people working on .NET have to release new versions every year and each new version has to add 'value' compared to the previous one.
If they do not do that there is probably a high chance that MS would kill of .NET and move them to work on Azure or MS365.
This situation forces them to add features which nobody would normally add if they had a choice.
This is also why I'm highly skeptical about the future of .NET ... seems like a train where few people are screaming to go faster while all others are hanging for...
Worse you cannot have a method called with, that you happen to call for that syntax.
They have enough work to do on union types and the traits feature (I think they called it shapes), features that are actually useful
@Calvin Nel
The question is why do we even have the [] syntax?
What is wrong with:
> List names = new();
> names.AddRange(....);
Is that one line so important to add additional complexity to the language and offer same functionality in 3 different ways?
How are the new developers who want to learn .NET going to cope with '... oh, and you can do this in 3 different ways ... good luck remembering the syntax of each one ...'?
If this syntax was introduced then why not immediately handle the edge cases such as this one or why not immediately...
to better understand what was done...
you need to know what was changed.. so we know how we got here.
before
List names = new List();
now
List names = [];
allowing the left hand side to change... while auto figuring out the right ( most modern lang do something simular-ish), so a requested feature, adding value)
Now the question is how do you supply capacity with this new syntax? plus if there other options..., remember they not taking away the default syntax..
if you have a better suggestion and it is widley seen as better im sure thats what would be adopted...
saying...
seems like someone read the book “conspiracy theory 101”
CoreCLR on WebAssembly <— That's interesting, how do I test that?