Настройка кроссплатформенного решения
Несмотря на разнообразие платформ, все проекты Avalonia используют один и тот же файл решения (в Visual Studio его формат ".SLN"). Решения можно открывать в разных средах разработки, что обеспечивает унифицированный подход к разработке мультиплатформенных приложений.
Первым шагом к созданию такого кроссплатформенного приложения, является создание решения. В данном разделе будет подробно разобран процесс настройки проектов для создания кроссплатформенных приложение на Avalonia.
Структура решения
Для обеспечения совместного использования и переиспользование кода между платформами,
шаблон Avalonia Cross Platform Application
создает решение,
включающее указанные ниже проекты:
Проект Core
Данный проект составляет основу вашего приложения, и спроектирован как платформонезависимый.
Он содержит все переиспользуемые компоненты вашего приложения, включая бизнес-логику, view model
и views
.
Все остальные проекты ссылаются на проект Core.
Основная часть времени по развитию приложения, должна быть сосредоточена здесь.
Проект Desktop
Данный проект позволяет запускать приложение на платформах Windows, macOS и Linux с выходным файлом типа 'WinExe'.
Проект Android
Проект NET-Android
разработан специально для платформы Android.
В него включен файл MainActivity
, который наследуется от AvaloniaMainActivity
и выступает точкой входа для приложения.
Проект iOS
Проект NET-iOS
разработан специально для платформ iOS и iPadOS.
В него включен файл AppDelegate
, который наследуется от AvaloniaAppDelegate
и выступает точкой входа для приложения.
Проект Browser
Проект WebAssembly (WASM) позволяет запускать ваше приложение на Avalonia прямо в браузере.
Его RuntimeIdentifier - это 'browser-wasm'
.
Проект Core
Проекты с общим кодом, должны использовать только универсальные зависимости,
существующие для всех платформ.
Обычно, они включают в себя пространства имен фреймворка,
такие как System
, System.Core
и System.Xml
.
Общие проекты должны быть направлены на реализацию большинства функциональных возможностей приложения, его UI компонентов, а также максимизацию переиспользования кода.
Благодаря разделению функциональности на слои, код становится более управляемым, тестируемым, а также может повторно использоваться на нескольких платформах. Такое разделение на слови в проектах Avalonia, способствуют повышению эффективности и масштабируемости разработки приложений.
Платформоориентированные проекты приложения.
Платформозависимые проекты должны ссылат ься на проект Core
.
Они существуют для возможности запуска приложений на специфичных платформах, таких как iOS, Android и WASM.
В то же время, настольные приложения могут использовать один общий проект, хотя иногда может потребоваться создать отдельный проект для macOS с использованием Xamarin.Mac Target Framework. Это облегчит распространение и упаковку вашего приложения.