.NET 11 Preview 2 introduces a set of targeted updates to .NET Multi-platform App UI (MAUI), focusing on the Map control, binding performance, and API consistency. The changes are incremental but concrete, addressing specific usability and performance issues in XAML, data binding, and control behaviour.
The release continues the recent direction of refining existing APIs rather than introducing new surface area. In earlier versions, developers encountered verbosity in XAML for maps, inefficiencies in bindings, and inconsistencies in API shapes. Preview 2 addresses these areas with measurable improvements and a small number of behavioural changes.
One of the more visible updates is in the Map control. The release adds new TypeConverter support for Location and MapSpan, allowing developers to define coordinates directly in XAML without x:Arguments. In addition, a new Map.Region bindable property enables declarative initialisation of the visible map area. Together, these changes reduce XAML verbosity and improve readability in map-based UIs.
The Map control also gains better runtime control over elements. All map shapes, including Polygon, Polyline, and Circle, now support IsVisible and ZIndex properties, allowing developers to toggle visibility and control rendering order without removing elements. In addition, these elements now expose click events across Android, iOS and Mac Catalyst, enabling interactive overlays without custom platform code.
Binding performance is another area with measurable gains. TypedBinding and SourceGeneratedBinding have been optimised through delegate caching, binding mode caching, and removal of unnecessary conversions. According to the release notes, TypedBinding execution time decreased from 47.47 ns to 32.90 ns, while memory allocation dropped from 128 bytes to 64 bytes per operation. Source-generated bindings show similar improvements, with roughly 25 per cent faster execution and half the memory usage. These changes directly impact data-heavy applications where bindings are frequently evaluated.
The release also formalises immutability guarantees for commonly used types. Color is now annotated with ImmutableObject(true), and Font has been converted into a read-only struct. This enables the XAML source generator to safely cache instances and generate more efficient code paths, improving runtime performance without requiring application changes.
API consistency is addressed in VisualStateManager. The GetVisualStateGroups method now returns VisualStateGroupList instead of IList<VisualStateGroup>, aligning it with the SetVisualStateGroups API. This is a breaking change for code that depends on the previous return type and may require updates in strongly typed scenarios.
A long-standing binding issue has also been fixed. When binding Entry.Text to nullable value types, such as int?, clearing the input now correctly sets the bound property to null instead of retaining the previous value. This improves correctness in two-way binding scenarios involving optional numeric input.
Overall, .NET 11 Preview 2 for MAUI delivers focused improvements in XAML ergonomics, runtime performance, and API alignment. While the changes are not extensive, they address concrete issues reported by developers and refine core parts of the framework.
Developers can review the full set of changes and associated pull requests in the MAUI release notes on GitHub, which provide detailed context for each update. The .NET 11 Preview 2 is available for download as a preview runtime and tools package.