.NET MAUI (Multi-platform App UI) — кроссплатформенный фреймворк от Microsoft для разработки нативных приложений с использованием языка C# и разметки XAML. Фреймворк предназначен для объединения разработки клиентских приложений под различные операционные системы в единую модель, предоставляя доступ к нативным API платформ и единый набор элементов пользовательского интерфейса. MAUI является преемником ранее существовавшего проекта Xamarin.Forms и ориентирован на упрощение создания приложений для Android, iOS, macOS и Windows с общим кодом бизнес-логики и интерфейса.
Архитектура .NET MAUI строится вокруг концепции общей проектной структуры и общих элементов управления, которые транслируются в нативные визуальные компоненты целевых платформ. Фреймворк интегрируется с экосистемой .NET и инструментами разработки, поддерживает привязку данных, шаблоны управления состоянием, расширяемость через рендереры/обработчики и работу с платформенно-специфичными возможностями посредством абстракций и сервисов. MAUI также ориентирован на единый процесс сборки и деплоймента, позволяющий разработчикам управлять конфигурациями и ресурсами для каждой целевой платформы из одной кодовой базы.
- Кроссплатформенность: поддержка Android, iOS, macOS и Windows с общим кодом приложения и возможностью использования платформенно-специфичных расширений.
- Единая кодовая база: общий проект, где бизнес-логика, модели данных и большая часть интерфейсных компонентов могут быть разделены между платформами.
- Разметка XAML и C#: поддержка декларативного описания UI через XAML и программной генерации интерфейса на C#.
- Нативные контролы: отображение элементов управления через нативные виджеты платформ или их оптимизированные обработчики для согласованного внешнего вида и поведения.
- Интеграция с .NET: совместимость с экосистемой .NET, управлением пакетами, библиотеками и инструментами сборки.
- Привязка данных и MVVM-поддержка: встроенные механизмы привязки, команд и шаблонов для реализации архитектурных паттернов, таких как MVVM.
- Платформенно-специфичные API: механизм доступа к нативным возможностям устройства через абстракции, зависимости и расширения.
- Ресурсы и стили: централизованное управление стилями, темами, изображениями и локализацией для разных платформ.
- Инструменты разработки: поддержка современных IDE и средств сборки, включая отладку и профилирование приложений.
- Расширяемость: возможность подключения сторонних библиотек, плагинов и нативных модулей для добавления специфичных функций.