6 Key Changes as .NET MAUI Adopts CoreCLR in .NET 11
Starting with .NET 11 Preview 4, a major shift is underway for .NET MAUI applications: the runtime powering mobile apps on Android, iOS, and Mac Catalyst is now CoreCLR. This move unifies the runtime across all .NET workloads, from cloud servers to mobile devices. Below are the six essential things you need to know about this transition.
1. CoreCLR Is Now the Default Runtime for .NET MAUI Mobile Apps
In .NET 11 Preview 4, CoreCLR becomes the default runtime for both Release and Debug builds targeting Android, iOS, and Mac Catalyst. This means your .NET MAUI applications will now run on the same runtime that powers ASP.NET Core, Azure services, and countless desktop and cloud workloads. The change simplifies runtime behavior, reduces debugging surprises, and ensures consistent performance across platforms. Developers no longer need to worry about divergent JIT compilation or garbage collection characteristics between mobile and server code. This unification is a natural evolution, building on years of extending CoreCLR to new environments.

2. Mono’s Legacy: The Foundation That Made This Possible
For over 15 years, Mono enabled .NET on platforms where it wasn't originally designed to run. The project, started by Miguel de Icaza in 2001, brought .NET to Linux, then to iPhone via MonoTouch in 2009, and to Android via MonoDroid. Microsoft acquired Xamarin in 2016, and Mono became the runtime beneath .NET MAUI. Beyond Microsoft, Mono powers Unity’s scripting (now transitioning to CoreCLR), Avalonia and Uno Platform on WebAssembly, MonoGame for cross-platform game development, and Godot’s C# backend. This ecosystem's richness is a testament to Mono's flexibility. CoreCLR taking over for MAUI is the next chapter—not an ending—of that story.
3. Which Platforms Are Affected—and Which Aren’t
The transition to CoreCLR applies to Android, iOS, Mac Catalyst, and tvOS. These were the last .NET MAUI platforms still relying on Mono. However, Blazor WebAssembly remains unchanged—it continues to use Mono in .NET 11 and will not switch to CoreCLR. For developers working on WebAssembly-based apps, no migration action is needed. The focus is squarely on native mobile and desktop targets. If you encounter issues during the transition, you have the option to opt back to Mono (see item 5). For full technical details, refer to the Runtimes and compilation documentation.
4. Three Drivers Behind the Switch to CoreCLR
The decision to unify runtimes was driven by three key factors. Runtime unification eliminates the split between mobile (Mono) and server/desktop (CoreCLR), ensuring consistent JIT behavior, garbage collection, diagnostics, and bug surfaces. Performance and tooling benefit from a single set of optimizations and debugging tools—what works on your backend now works on your mobile app. Long-term maintainability means Microsoft can focus on one runtime for all .NET workloads, accelerating improvements across the board. This simplification reduces complexity for developers and aligns with .NET’s strategy of a unified platform.

5. You Can Opt Back to Mono During the Transition
While CoreCLR is now the default, Microsoft provides an escape hatch for teams that encounter compatibility issues. You can opt back to Mono by setting a specific property in your project file. This is intended as a temporary measure during the .NET 11 preview period to allow for a smooth migration. The expectation is that any remaining edge cases will be resolved before the final release. To learn how to switch, check the opt-back documentation. Teams should test their apps early and report any blocking problems to the .NET team.
6. Broader Ecosystem Impact and What’s Next
This change affects not only .NET MAUI but also frameworks that depend on Mono. Unity has already begun moving its scripting runtime to CoreCLR. Avalonia and Uno Platform, which use Mono on WebAssembly for their browser targets, will continue as is—their mobile targets will benefit from the shift. MonoGame and Godot’s C# backend may follow suit. The move reinforces .NET’s cross-platform vision: one runtime to rule them all. Future .NET releases are expected to further consolidate, possibly bringing CoreCLR to even more platforms. For now, .NET MAUI developers gain a more robust, performant, and unified runtime.
Runtimes and Compilation Documentation
For a deeper technical dive, see the official Runtimes and compilation documentation.
How to Opt Back to Mono
To revert to Mono, add <RuntimeIdentifier>maccatalyst-arm64</RuntimeIdentifier> with the Mono backend property—consult the opt-back guide for exact steps.
Conclusion: The move of .NET MAUI to CoreCLR marks a milestone in runtime unification. It honors Mono’s legacy while setting the stage for a simpler, more consistent development experience. By leveraging the same runtime across mobile, desktop, and cloud, developers can expect fewer surprises and better performance. Start testing your .NET MAUI apps with CoreCLR today—and remember that Mono remains available if needed. This is the next step in making .NET a truly universal platform.