# .NET 11 Release Candidate 2: Go-Live License and Updates Across Libraries, F#, MAUI, and WinForms

> Source: <https://www.infoq.com/news/2026/10/dotnet-11-rc-2/?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global>
> Published: 2026-10-19 08:00:00+00:00

Microsoft has released .NET 11 [Release Candidate 2](https://devblogs.microsoft.com/dotnet/dotnet-11-rc-2/) with a go-live license for production use, as stated in the announcement. The build is supported in [Visual Studio 2026 Insiders](https://aka.ms/VS2026Insiders) and in Visual Studio Code with the C# Dev Kit. As reported, it brings changes across the libraries, runtime, SDK, NuGet, F#, ASP.NET Core, .NET MAUI, and Windows Forms, with no new C# language features.

In the libraries, [CborReader](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/libraries.md#read-cbor-incrementally) can now read a payload delivered in chunks, using *isFinalBlock* and *SlideData*, in Lax conformance mode only. Two experimental [cryptography types](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/libraries.md#experimental-composite-ml-kem-and-hpke-apis) arrive: CompositeMLKem combines post-quantum and classical key encapsulation, and Hpke provides Hybrid Public Key Encryption with classical DHKEM suites only.

Both require opting in through SYSLIB5009 and SYSLIB5006, as described in the release notes. [ValidationAttribute.FormatMessage](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/libraries.md#format-dataannotations-messages-with-attribute-specific-arguments) lets a host supply a message template for the attribute to fill in, and *SocketsHttpHandler.InitialHttp2MaxConcurrentStreams* caps streams on a new HTTP/2 connection until the server's SETTINGS frame arrives.

The runtime release focuses on reliability but carries one breaking change. CoreCLR now disables advisory file locking by default on [iOS and tvOS](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/runtime.md#changes-since-the-previous-preview), because, as stated, *FileStream* lock in RC 1 could cause the OS to terminate an app entering the background. FileShare restrictions are no longer enforced there, and setting *DOTNET_SYSTEM_IO_DISABLEFILELOCKING* to 0 restores locking, according to the release.

ASP.NET Core has few new features but several changes for apps upgrading from RC 1. [QuickGrid's](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/aspnetcore.md#quickgrid-virtualization-apis-are-no-longer-experimental) *AnchorMode* and *ItemComparer* parameters are no longer experimental. [IValidationMessageFormatter](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/aspnetcore.md#changes-since-the-previous-preview) has been removed in favor of *FormatMessage*, the Blazor BasePath component moved to the *Microsoft.AspNetCore.Components* namespace, and the experimental device-bound sessions package was pulled from this build. As reported, the remaining [AddRazorRuntimeCompilation overloads](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/aspnetcore.md#breaking-changes-from-net-10) now warn with ASPDEPR003.

In the SDK, file-based programs accept [quoted values in #:property directives](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/sdk.md#quoted-file-level-directive-values), and the #:package, #:project, and #:ref directives take trailing Name=Value item metadata. MSBuild gains faster wildcard matching during project evaluation, which, as reported in Microsoft's Windows benchmarks, puts it at 10–13% faster with 16–34% fewer allocations.

NuGet adds [--min-publish-age-hours](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/nuget.md#configure-minimum-package-publication-age-from-the-cli) to dotnet *nuget add source* and *update source*, and restore fails with NU1020 when a package cooldown leaves no eligible floating version.

F# ships several preview features. The compiler gains return and await intrinsics for building custom [computation-expression](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/fsharp.md#runtime-async-support) builders on the runtime-async model, though *FSharp.Core* does not yet ship such a builder, as stated in the notes.

``` js
let calculation () =
    runtimeTask {
        let captured = 40
        let! delta = delayed 2
        return captured + delta
    }
```

The *[reraise()](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/fsharp.md#reraise-in-computation-expressions)* now works inside the with handler of async and task expressions. Outside preview, more [List and Array](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/fsharp.md#lower-allocations-in-fsharpcore-collections) functions inline their callbacks to cut allocations, [Async.parallelLimit](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/fsharp.md#bound-concurrent-asynchronous-work) bounds concurrent work, and [bitwise operators on non-integer enums](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/fsharp.md#breaking-changes-from-net-10) now fail at compile time with FS0001.

The .NET MAUI maui template gains a *[--ui csharp option](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/dotnetmaui.md#create-an-app-with-c-ui)* that generates the app, shell, and main page in C# rather than XAML, and the multi-project template adds an --avalonia option for an Avalonia desktop project.

MauiIcon accepts Apple Icon Composer [.icon bundles](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/dotnetmaui.md#use-apple-icon-composer-assets), and *[UseiOSShellHandler](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/dotnetmaui.md#evaluate-the-apple-shell-handler)* opts into a handler-based Shell on Apple platforms. [Android adds API 37.2 bindings and JDK 25 support](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/dotnetmaui.md#net-for-android), while Apple workloads now require Xcode 27.0 and apps built with its SDKs must adopt the UIKit scene lifecycle, as described in the [breaking changes](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/dotnetmaui.md#breaking-changes-from-net-10).

Windows Forms refines the .NET 11 [visual styles](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/winforms.md#visual-styles-and-appearance). *Application.SetDefaultVisualStylesMode* selects the renderer version, but ToolStrip and DataGridView keep Classic rendering even under Net11 for now. [Application.SystemVisualSettings](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/winforms.md#react-to-windows-visual-and-accessibility-settings) exposes a snapshot of the Windows accent color, text scaling, and high-contrast state, and [FormRevealMode](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/winforms.md#deferred-form-reveal) defers a top-level form's first presentation to reduce background flashes.

New analyzers [WFO3000 to WFO3002](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/winforms.md#new-designer-guiding-analyzers) flag code that cannot round-trip through the Designer, which the release notes say is particularly useful when AI tools generate or refactor forms.

Other changes in this release are [MSBuild property expansion in launch-profile arguments](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/sdk.md#msbuild-properties-in-launch-profile-arguments), an F# [RequireNamedArgumentsAttribute](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/fsharp.md#require-named-arguments-for-selected-apis), a private-member R8 obfuscation default on Android, [SuspendPainting](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/winforms.md#suspend-painting-and-layout-during-bulk-updates) and [KioskModeManager](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/winforms.md#new-kioskmodemanager-component) for Windows Forms, EF Core *SaveChanges* and JSON projection fixes.

On [Reddit](https://www.reddit.com/r/dotnet/comments/1x59mvr/announcing_net_11_release_candidate_2/), discussion focused less on the features than on upgrade cadence. Commenters asked how many teams still skip odd-numbered releases, and others replied that since .NET 9 a standard-term release shares its end-of-support date with the preceding LTS version, moving to .NET 11 costs no support time.

Other developers reported MAUI workloads breaking on every preview upgrade, questioned Blazor server-side rendering performance against Razor Pages and MVC, and welcomed the *KioskModeManager* component for Windows Forms.

For interested readers and developers, the full release notes for .NET 11 RC 2 are available on the [dotnet/core repository](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/rc2/README.md) on GitHub.
