CoreCLR replaces Mono in .NET MAUI
Starting with Preview 6, CoreCLR is the only runtime for .NET MAUI mobile apps. Mono is gone.
In practice, iOS and Mac Catalyst apps are generally faster than they were on Mono. Android is within about 10% of Mono on startup time and app size, which is a reasonable trade-off given what you get in return: full .NET diagnostics tooling. dotnet-trace and dotnet-counters now work on mobile devices, which was not possible with Mono. NativeAOT foundations for Android are also landing in this release.
Debugging and Hot Reload work in both Visual Studio and VS Code, though there are a few rough edges the team is still working through.
If you maintain a .NET MAUI app, now is the time to test against Preview 6. The team is specifically asking for reports on performance benchmarks, package sizes, and any regressions before the GA release in November.
.NET MAUI improvements
Aside from the runtime switch, there are several quality-of-life additions in this release.
Maps got a few useful updates: automatic pin clustering for dense locations, custom marker images via ImageSource, and Google Maps JSON style support.
Animations now accept a CancellationToken, so you can stop individual animations without canceling everything else running at the same time. The older non-async methods like FadeTo() and RotateTo() are now marked obsolete.
Gestures get a new LongPressGestureRecognizer, which makes long-press detection straightforward without any workarounds.
BoxView gains a Fill property that supports gradients.
App size: apps that don’t use CSS stylesheets will have that infrastructure stripped automatically during publishing.
Android controls now default to Material 3 styling, which gives a more consistent look without any extra configuration.
CollectionView2 for Windows is also included in this release.
Runtime and performance
On the runtime side, Preview 6 includes runtime-async performance improvements and JIT improvements. NativeAOT gets faster interface dispatch. There are also new SIMD lane construction APIs for developers doing low-level numeric work.
ASP.NET Core and Blazor
A few notable additions here:
- Automatic CSRF protection is now built into ASP.NET Core, so you don’t have to wire it up manually.
- OpenAPI 3.2 is the new default.
- Blazor Virtualize adds scroll-to-item support.
- SignalR gets authentication refresh, which matters for long-lived connections where tokens expire.
EF Core
EF Core picks up LINQ query translation improvements and support for unconstrained foreign key relationships, which covers some edge cases that previously required raw SQL.
Other additions
- Stream adapters for memory and text
- Async validation via DataAnnotations
- System.Text.Json support for C# union types
- dotnet test now supports xUnit v3 and NUnit options
- F# has several language improvements in this release
The GA release is targeted for November. If you’re on .NET MAUI, testing now and filing issues gives the team the most time to address anything before then.
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.