.NET Multi-platform App UI (MAUI) is Microsoft's evolution of Xamarin.Forms, enabling developers to build native applications for Android, iOS, macOS, and Windows from a single C# codebase. Unlike traditional cross-platform solutions that use web views, MAUI renders truly native controls on each platform through its handler architecture, delivering performance comparable to platform-specific development. The framework's single-project structure consolidates platform-specific code into one unified solution, eliminating the complexity of managing separate projects per platform. At its core, MAUI embraces MVVM (Model-View-ViewModel) patterns with first-class data binding support, works seamlessly with the CommunityToolkit.Mvvm for reducing boilerplate, and offers hot reload capabilities that let you see XAML and C# changes instantly without rebuilding. One critical insight: MAUI's Shell navigation system provides URI-based routing that feels web-like but runs natively—understanding this mental model early makes complex navigation patterns far more intuitive.
What This Cheat Sheet Covers
This topic spans 17 focused tables and 153 indexed concepts. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
Table 1: Project Structure & Single Project
| Component | Example | Description |
|---|---|---|
<TargetFrameworks> net10.0-android; net10.0-ios; net10.0-maccatalyst; net10.0-windows10.0.19041.0</TargetFrameworks> | Unified project targeting multiple platforms via multi-targeting in a single .csproj file; eliminates separate platform projects used in Xamarin.Forms. | |
Platforms/Android/MainActivity.csPlatforms/iOS/AppDelegate.csPlatforms/Windows/App.xaml.csPlatforms/MacCatalyst/AppDelegate.cs | Contains platform-specific entry points and startup code; compiler conditionally includes only the relevant platform folder during build. | |
Resources/Images/Resources/Fonts/Resources/Splash/Resources/AppIcon/ | Centralized location for images, fonts, splash screens, and app icons; automatically resized for each platform's requirements. | |
var builder = MauiApp.CreateBuilder();builder.UseMauiApp<App>();builder.Services.AddSingleton<IService>()return builder.Build(); | Application entry point configuring dependency injection, fonts, handlers, and app initialization; replaces Startup.cs patterns from Xamarin. |