.NET MAUI Guide: Complete Overview + Demo

Build native cross-platform applications for iOS, Android, macOS, and Windows from a single C# codebase

What Is .NET MAUI?

.NET Multi-platform App UI (.NET MAUI) is a framework for building native, cross-platform applications using C# and XAML. Released by Microsoft as the successor to Xamarin.Forms, .NET MAUI enables developers to create applications that run on iOS, Android, macOS, and Windows while sharing up to 90% of their code across platforms.

The framework extends the .NET platform with a UI toolkit that abstracts the native platform controls, allowing developers to define their user interface once and have it rendered appropriately on each target platform. For organizations building modern web development solutions, .NET MAUI provides a powerful pathway to extend web applications into native mobile and desktop experiences.

Key Capabilities

Single Codebase

Build for iOS, Android, macOS, and Windows from one project with up to 90% shared code

Native Performance

Compile to native platform code for optimal performance on each target

XAML UI Development

Declare user interfaces using familiar XAML markup with powerful data binding

Platform Integration

Access platform-specific APIs when needed through dependency injection and handlers

Modern Architecture

Built on .NET 8+ with improved project structure and modular design

Strong Tooling

Visual Studio 2022 and VS Code integration with debugging and deployment support

Evolution from Xamarin.Forms

.NET MAUI represents the natural evolution of Xamarin.Forms, incorporating lessons learned from years of cross-platform development and aligning the framework more closely with the modern .NET ecosystem.

Architectural Improvements

  • Single Project Structure: Consolidated platform folders replace separate projects
  • Modular Design: Include only the platform capabilities your application requires
  • Handler Architecture: More performant than Xamarin.Forms renderers
  • Modern .NET Integration: Aligned with .NET 8+ and ongoing platform development

Microsoft has committed to supporting .NET MAUI as the primary cross-platform UI framework for .NET, ensuring ongoing investment in the platform's development.

Architecture and Project Structure

Single Project Architecture

.NET MAUI introduces a simplified project structure compared to its Xamarin.Forms predecessor. Rather than managing separate projects for each platform, developers work within a single project that contains platform-specific folders for iOS, Android, macOS, and Windows.

Project Organization

  • Platform Folders: iOS, Android, macOS, and Windows-specific code
  • Resources Folder: Images, fonts, and raw assets processed for all platforms
  • Shared Code: Application logic that runs across all platforms
  • Platform Abstraction: Clean interfaces for platform-specific functionality

This consolidation streamlines development workflows and reduces the cognitive overhead of managing multiple projects.

iOS

Target iPhone and iPad with native UI rendering and full API access

Android

Support for modern Android versions with Material Design integration

macOS

Build for Mac using Mac Catalyst with native desktop experience

Windows

Target WinUI 3 for modern Windows desktop applications

Building Your First Application

Prerequisites

For Visual Studio 2022 development on Windows:

  • Visual Studio 2022 17.12 or greater
  • .NET Multi-platform App UI workload installed
  • Platform-specific SDKs (Android SDK, Xcode for iOS)

For Visual Studio Code development:

  • .NET MAUI extension installed
  • .NET SDK and .NET MAUI SDK
  • Platform-specific tools (Xcode, Android SDK)

Project Creation Steps

  1. Launch Visual Studio 2022 and select "Create a new project"
  2. Choose ".NET MAUI App" template from the MAUI category
  3. Name your project and select the target .NET version
  4. Wait for project creation and dependency restoration
  5. Open the generated MainPage.xaml to see the starter application

The project template creates a complete working application with a counter demonstration, showing navigation, data binding, and event handling patterns.

MainPage.xaml
1<ContentPage x:Class="MauiApp.MainPage"2 xmlns="http://schemas.microsoft.com/dotnet/2021/maui"3 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"4 x:Class="MauiApp.MainPage">5 6 <VerticalStackLayout 7 Spacing="25"8 Padding="30,0"9 VerticalOptions="Center">10 11 <Image 12 Source="dotnetbot.png"13 SemanticProperties.Description="Cute dotnet bot!"14 HeightRequest="200"15 HorizontalOptions="Center" />16 17 <Label 18 Text="Welcome to .NET MAUI!"19 SemanticProperties.HeadingLevel="Level1"20 FontSize="32"21 HorizontalOptions="Center" />22 23 <Label 24 Text="Click the button below"25 SemanticProperties.HeadingLevel="Level2"26 FontSize="18"27 HorizontalOptions="Center" />28 29 <Button 30 x:Name="CounterBtn"31 Text="Click me"32 Clicked="OnCounterClicked"33 HorizontalOptions="Center" />34 35 </VerticalStackLayout>36 37</ContentPage>
MainPage.xaml.cs
1namespace MauiApp;2 3public partial class MainPage : ContentPage4{5 int count = 0;6 7 public MainPage()8 {9 InitializeComponent();10 }11 12 private void OnCounterClicked(object sender, EventArgs e)13 {14 count++;15 CounterBtn.Text = $"Clicked {count} time{(count == 1 ? "" : "s")}";16 17 SemanticProperties.Hint = $"Count: {count}";18 }19}

User Interface Development

XAML-Based UI Definition

.NET MAUI supports declarative user interface definition using XAML, a markup language that separates UI structure from application logic. XAML files define visual elements, layout containers, and data bindings that compose the application's interface.

Our web development team leverages these patterns to create consistent, maintainable interfaces that work across all target platforms while respecting native design conventions.

Layout System

.NET MAUI provides comprehensive layout containers:

  • StackLayout: Linear arrangements (horizontal or vertical)
  • Grid: Two-dimensional positioning with rows and columns
  • FlexLayout: Flexible box-based layouts (CSS Flexbox-inspired)
  • AbsoluteLayout: Pixel-perfect positioning for complex designs

Controls Library

The framework includes essential cross-platform controls:

  • Entry, Editor, Button, Label, Image, ListView
  • CollectionView for performant list rendering
  • Gesture support (tap, swipe, pinch)
  • Accessibility through automation properties

Customization occurs through styling, visual states, and platform-specific effects.

Platform-Specific Implementation

Accessing Native APIs

When cross-platform abstractions are insufficient, .NET MAUI provides straightforward access to platform-specific APIs through:

  • Community Toolkit: Platform-specific helpers and extensions
  • Dependency Injection: Abstract platform differences behind testable interfaces
  • .NET MAUI Essentials: Cross-platform access to device features (sensors, connectivity, contacts)

Custom Handlers

For extensive platform-specific customization, .NET MAUI provides a handler architecture:

  • Map cross-platform controls to native implementations
  • Create custom handlers for unique requirements
  • Register globally or apply to specific control instances
  • Better performance than Xamarin.Forms renderers

This architecture provides flexibility while maintaining the benefits of cross-platform development.

.NET MAUI vs Alternatives Comparison
Feature.NET MAUIReact NativeFlutter
UI RenderingNative platform controlsJavaScript bridge to nativeSkia graphics engine
LanguageC# / XAMLJavaScript / TypeScriptDart
Code SharingUp to 90%High (JS logic)High (Dart logic)
App SizeSmallerMediumLarger
Native FeelExcellentGoodGood
Learning CurveModerate (.NET familiarity)Moderate (JS familiarity)Moderate
CommunityGrowingLargeLarge
Maturity2+ years (evolved from Xamarin)8+ years8+ years

Deployment and Distribution

Build Configuration

Release builds require configuration for production deployment:

Android:

  • Keystore files for signing release APKs/AABs
  • Google Play App Signing support
  • ProGuard/R8 optimization options

iOS:

  • Distribution certificates and provisioning profiles
  • App Store, TestFlight, or Enterprise distribution
  • Xcode integration for complex signing

Store Submission

Submit .NET MAUI applications through standard store channels:

  • iOS: App Store Connect with Apple's review process
  • Android: Google Play Console with similar review workflows
  • Testing Tracks: TestFlight and Google Play Internal Testing for pre-release

Both platforms integrate with continuous integration systems for automated build and distribution workflows.

Frequently Asked Questions

Is .NET MAUI production-ready?

Yes, .NET MAUI is Microsoft's recommended framework for cross-platform development and is used in production applications by organizations worldwide.

How does .NET MAUI compare to Xamarin.Forms?

.NET MAUI improves upon Xamarin.Forms with single project architecture, better performance through handlers, and tighter .NET ecosystem integration.

Can I use .NET MAUI for desktop-only applications?

Absolutely. You can target Windows and macOS only, or any combination of the four supported platforms.

What IDE should I use for .NET MAUI development?

Visual Studio 2022 provides the most complete experience on Windows. Visual Studio Code with the MAUI extension works across all platforms.

Is migration from Xamarin.Forms to .NET MAUI recommended?

Yes, Microsoft provides migration guidance and tooling. The investment is worthwhile for long-term maintainability and support.

Conclusion

.NET MAUI represents Microsoft's modern solution for cross-platform application development, building on the foundation established by Xamarin.Forms while introducing significant architectural improvements. The framework enables developers to create native applications for iOS, Android, macOS, and Windows from a single codebase, balancing code sharing with platform-specific capabilities.

The unified project structure, comprehensive control library, and strong Visual Studio integration make .NET MAUI an attractive choice for organizations with .NET development experience. As the framework continues to evolve with regular updates and community investment, .NET MAUI provides a solid foundation for cross-platform application development.

Ready to start building cross-platform applications? Our web development team can help you leverage .NET MAUI for your mobile and desktop application needs.

Ready to Build Cross-Platform Applications?

Our team of .NET experts can help you leverage .NET MAUI for your mobile and desktop application needs.