
Microsoft announced today that .NET MAUI mobile apps will run on the CoreCLR runtime with .NET 11 for the first time. The firm had already moved .NET-based Windows, Windows Server, Mac, and Cloud apps on CoreCLR, but MAUI has stuck with Mono, which dates back to Xamarin and beyond; Miguel de Icaza started the original Mono project way back in 2001 to bring .NET to Linux.
“Starting in .NET 11 Preview 4, CoreCLR is the default runtime for .NET MAUI applications on Android, iOS, and Mac Catalyst,” Microsoft principal product manager David Ortinau writes. “Your mobile apps now run on the same runtime that powers ASP.NET Core, Azure services, desktop applications, and millions of production workloads around the world.”
The history here is rather incredible, but Ortinau highlights three reasons for the shift: A single runtime across almost all .NET 11 workloads with the same behaviors, characteristics, tooling, and bug surfaces; improved performance; and the availability of NativeAOT compilation across platforms.
Blazor WebAssembly is still using Mono, and MAUI developers who want to return to Mono for whatever reasons can do so, at least in the .NET 11 timeframe.
“I want to acknowledge the broader community that built on Mono for over two decades,” Ortinau concludes. “The game developers using Unity and MonoGame. The cross-platform teams using Avalonia and Uno Platform. The Xamarin developers who proved that C# belonged on mobile long before the rest of the industry agreed. Mono made all of that possible, and its DNA lives on in CoreCLR’s mobile support. Mono got us here. CoreCLR carries us forward.”
So there you go. Finally a major change in .NET 11. 🙂