English
Summary
Conclusions
.NET MAUI lets you create applications for Android, iOS, macOS, and Windows from one project in C# and XAML: handlers convert cross-platform elements into native ones, and the shared code runs on .NET 10. Development is convenient on the Windows Machine target, and testing in an Android emulator with hardware virtualization or on your own phone. Pages are built from layout containers, styles, and themes, data is shown through compiled x:DataType bindings and CollectionView, and logic is moved into ViewModels with CommunityToolkit.Mvvm that receive services through the DI container in MauiProgram. Shell describes tabs and routes and passes parameters between pages. Device services (Preferences, Geolocation, MediaPicker, sensors) require checking for support, permissions, and work with the main thread, and data is stored in files or SQLite or obtained from web services.
Self-check questions
- What is .NET MAUI? For which platforms can you create applications, and where are they built?
- What is a handler? How is a MAUI button displayed on Android and on Windows?
- How do you install MAUI in Visual Studio 2026 and with the dotnet CLI?
- What parts does a MAUI single project consist of? What are the
PlatformsandResourcesfolders for? - What does the
MauiProgram.CreateMauiAppmethod do? What is theApp.CreateWindowmethod for? - What does the Android emulator need to work? How do you run the application on your own phone?
- How does XAML Hot Reload differ from .NET Hot Reload?
- Which MAUI classes replace
StackPanel,TextBox, andListBoxfrom WPF? - How do you set different values for the light and dark themes, platforms, and device types?
- What do compiled bindings give? Why is
x:DataTypealso set on aDataTemplate? - How do you register pages, ViewModels, and services in the DI container? When do you choose
AddTransient? - What capabilities does
CollectionViewhave? Why should you not useListViewin .NET 10? - How do you register a route and navigate to a page with parameters? How do you receive the parameters?
- How do you check and request the location permission? Where are permissions declared on Android?
- How do you access a web service running on the computer from the Android emulator?
Useful links
- .NET MAUI documentation: https://learn.microsoft.com/dotnet/maui/
- Installation: https://learn.microsoft.com/dotnet/maui/get-started/installation
- What's new in .NET MAUI for .NET 10: https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-10
- Shell navigation: https://learn.microsoft.com/dotnet/maui/fundamentals/shell/navigation
- Data binding: https://learn.microsoft.com/dotnet/maui/fundamentals/data-binding/
- Dependency injection: https://learn.microsoft.com/dotnet/maui/fundamentals/dependency-injection
- Platform integration: https://learn.microsoft.com/dotnet/maui/platform-integration/
- The Android emulator: https://learn.microsoft.com/dotnet/maui/android/emulator/
- Local databases: https://learn.microsoft.com/dotnet/maui/data-cloud/database-sqlite
- CommunityToolkit.Maui: https://learn.microsoft.com/dotnet/communitytoolkit/maui/
- .NET MAUI support policy: https://dotnet.microsoft.com/platform/support/policy/maui