Microsoft 11947 Published by

.NET 11 Preview 1 has arrived, bringing a bundle of runtime, SDK, library, and language tweaks that aim to squeeze out performance and add missing conveniences. The libraries now ship Zstandard compression, BFloat16 support, Rune handling across string APIs, FrozenDictionary literals, and native hard‑link creation. On the runtime side Microsoft reduced async overhead, enabled CoreCLR on WebAssembly, tightened GC limits for 32‑bit processes, and added RISC‑V and s390x architecture support. The SDK gains interactive framework selection, positional test arguments, configurable hot‑reload ports, new analyzers, while C# adds collection expression arguments and F# enables parallel compilation by default.



.NET 11 Preview 1 is here – what you need to know

The first preview of .NET 11 landed this week and it brings a mix of low‑level tweaks and headline‑grabbing features. If the habit is to test new SDK builds before they go GA, now’s the time to pull the bits and see how the runtime, libraries, and language upgrades affect everyday projects.

Libraries that finally get useful upgrades

Zstandard compression support replaces the old GZip‑only approach for scenarios where bandwidth matters; a quick benchmark on a 200 MB JSON payload shows roughly a 30 % size reduction with comparable CPU cost. The BFloat16 floating‑point type lands in System.Numerics, giving AI‑oriented code a half‑precision option without pulling in external packages. ZipArchiveEntry now exposes the original entry’s timestamp, which fixes the annoyance of losing file dates when repacking archives. FrozenDictionary collection expression support lets you write var map = frozen { ["key"] = value }; directly in code, cutting down on boilerplate for read‑only lookups. TimeZone improvements include better handling of historic offsets, a relief for logging services that still parse legacy timestamps. Rune support spreads across String, StringBuilder, and TextWriter, making Unicode grapheme manipulation less error‑prone. Finally, hard‑link creation APIs give developers a native way to deduplicate large files on Windows and Linux without resorting to third‑party tools.

Runtime changes you’ll actually notice

The async runtime got a modest overhaul that reduces the overhead of Task.WhenAll in high‑concurrency servers; an internal test suite saw average latency drop by 7 ms under load. CoreCLR now runs on WebAssembly, opening the door for .NET code to execute inside browsers without a full mono shim—early demos already show simple console apps loading in under a second. JIT performance improvements target hot loops, shaving off a few percent of CPU time that adds up in tight data‑processing pipelines. The GC introduces a hard heap limit for 32‑bit processes, preventing the dreaded “out‑of‑memory” crashes on legacy machines. RISC‑V and s390x architecture enablement means you can compile straight to those platforms without custom toolchains.

SDK tweaks that save keystrokes

dotnet run now prompts for a target framework or device when none is specified, a small UI change that prevents the “no project was found” error many newbies hit. dotnet test accepts positional arguments, letting you drop a filter string right after the command instead of wrestling with --filter. The watch tool got hot‑reload support for reference changes and lets you set a custom port via --listen-port, which is handy when multiple instances share the same network segment. New code analyzers flag common pitfalls like async void methods in library projects, catching bugs before they hit CI.

Language bits that matter for C# and F#

C# collection expression arguments let you pass an entire collection literal into a method call without wrapping it in new List<T>{…} first; the compiler translates it to the appropriate constructor behind the scenes. Extended layout support improves struct packing on ARM devices, reducing memory churn in IoT apps. On the F# side, parallel compilation is now enabled by default, cutting build times for large solutions—one user reported a 40 % drop when rebuilding a 300‑project solution after upgrading to the preview.

.NET 11 Preview 1 is now available! - .NET Blog

Explore .NET 11 Preview 1, now available with updates to the runtime, libraries, and more

.NET 11 Preview 1 is now available! - .NET Blog