Starting with .NET 11 Preview 4, .NET MAUI applications on Android, iOS, and Mac Catalyst now use CoreCLR as their default runtime. This marks a unifying moment for the .NET ecosystem, bringing mobile development in line with the same runtime that powers ASP.NET Core, Azure, and desktop apps. To help you understand the change, we've answered the most common questions below.
What exactly is changing in .NET MAUI with .NET 11?
In .NET 11 Preview 4 and later, CoreCLR becomes the default runtime for all .NET MAUI apps targeting Android, iOS, Mac Catalyst, and tvOS. Previously, these platforms relied on Mono, while server and desktop workloads used CoreCLR. Now both debug and release builds will run on CoreCLR, offering a consistent runtime experience across all .NET application types. This change applies automatically, but developers can opt back to Mono if needed during the transition.

Why was Mono so important for .NET on mobile?
Mono has been the bridge that allowed .NET to reach platforms it was never designed for. Starting as a project by Miguel de Icaza in 2001 to bring .NET to Linux, Mono evolved into MonoTouch (2009) and MonoDroid, which later became Xamarin. This runtime enabled millions of developers to build production mobile apps with C#. Beyond Microsoft, Mono powers Unity's scripting, Avalonia and Uno Platform on WebAssembly, and Godot's C# backend. For over 15 years, Mono proved .NET could go anywhere, and its legacy paved the way for CoreCLR's expansion.
Which platforms are affected by the move to CoreCLR?
The migration applies to Android, iOS, Mac Catalyst, and tvOS—all .NET MAUI platforms that previously used Mono. Blazor WebAssembly is not affected; it continues to use Mono and that remains unchanged in .NET 11. So if you're building a .NET MAUI mobile or TV app, you'll benefit from CoreCLR. Desktop (Windows, macOS) and server (ASP.NET Core) already used CoreCLR, so this change unifies the entire .NET stack.
Can I opt back to Mono if I encounter problems?
Yes, Microsoft provides an opt-back option for developers who experience issues during the transition period. You can configure your project to use Mono instead of CoreCLR by setting a property in your project file. This is intended as a safety net for the .NET 11 release cycle, allowing teams to migrate at their own pace while ensuring existing apps remain functional.

What are the key benefits of switching to CoreCLR?
Three major benefits drive this change: runtime unification, consistent tooling, and improved performance. With CoreCLR across all platforms, your mobile apps run on the same JIT compiler, garbage collector, and diagnostics tools as your servers and desktops. This eliminates the split behaviors that existed between Mono and CoreCLR—different debugging quirks, memory management, and performance characteristics. Developers can now reuse debugging profiles, performance analysis, and optimization techniques across the entire .NET stack.
How does this affect other projects like Unity or Avalonia?
Unity is already transitioning its own scripting runtime to CoreCLR, following the same trend. Avalonia and Uno Platform, which use Mono on WebAssembly, are not directly affected by this mobile-specific change. Mono continues to be supported on WASM. However, the overall ecosystem shift toward CoreCLR signals a long-term convergence—projects that depend on Mono will likely evaluate moving to CoreCLR for better performance and tooling compatibility.
What does this mean for the future of .NET development?
This move is a milestone in .NET's journey to become a truly unified platform. By placing mobile apps on the same runtime as everything else, Microsoft is delivering on the promise of write once, run anywhere with consistent behavior. It's not the end of Mono's legacy—it's the next chapter. As CoreCLR expands to more form factors, developers can expect a simpler, more powerful .NET experience from cloud to client.