Перейти к основному содержимому
Версия: 11.0.0

Настройка кроссплатформенного решения

Несмотря на разнообразие платформ, все проекты 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. Это облегчит распространение и упаковку вашего приложения.