ЧАВО
Что такое Avalonia?
Avalonia - это открытая, кроссплатформенная графическая система отображения. Она входит в .NET Foundation и является одним из самых активных проектов сообщества в области IT. Она используется для создания продвинутых и красивых интерфейсов. Avalonia поддерживает множество платформ, включая Windows, Linux, macOS, iOS, Android и WebAssembly.
Созданная на современном стеке .NET, Avalonia позволяет использовать любой язык из семейства .NET (C#, F#, Visual Basic) и язык разметки XAML для определения интерфейса. Подобно WPF, Avalonia использует систему стилей на основе XAML, а ее система компоновки и привязки данных предоставляет знакомую среду для разработчиков, имеющих опыт работы с фреймворками, основанными на XAML.
Ключевым отличием Avalonia от других графических систем является отсутствие привязки к графическим элементам операционной системы. Вместо этого используются собственные элементы, обеспечивающие гибкость и высокую степень единообразия поведения на разных платформах.
Чем Avalonia отличается от других графических систем, таких как WPF или Xamarin.Forms?
-
Кроссплатформенная разработка: В отличие от WPF, предназначенного исключительно для Windows, Avalonia спроектирована как кроссплатформенный инструмент. Она обеспечивает единообразный внешний вид на различных платформах, включая Windows, Linux, macOS, iOS, Android, WebAssembly и многие другие.
-
Собственная система отрисовки: В отличие от Xamarin.Forms, которая использует системную отрисовку конкретной платформы, Avalonia использует собственную систему отрисовки. Это обеспечивает гибкость настроек.
-
Продвинутая стилизация: Avalonia имеет гибкую систему стилей, аналогичную WPF. Она использует стили для изменения внешнего вида элементов, а в отличие от Xamarin.Forms, позволяет динамически настраивать их на основе состояний и иерархического наследования.
-
XAML и code-behind: Подобно WPF и Xamarin.Forms, Avalonia позволяет использовать XAML, знакомый многим разработчикам на .NET, а также поддерживает работу напрямую из кода. Разнообразие выбора обеспечивает более гибкую разработку п риложений.
-
Открытый исходный код и активное сообщество: Avalonia - это проект с открытым исходным кодом и активной поддержкой сообщества. Благодаря этому, проект постоянно развивается и совершенствуется с учетом потребностей сообщества.
Какие версии .NET поддерживаются?
- .NET Framework 4.6.2+
- .NET Core 2.0+
- .NET 5+ (including latest .NET 8)
Пригодился ли мне опыт работы с WPF или UWP при использовании Avalonia?
Да, и еще раз да! WPF и UWP оказали огромное влияние на Avalonia. Она использует многие технологии и концепции, такие как XAML, MVVM и привязка данных. Поэтому, если у вас уже есть опыт работы с этими технологиями, вы быстро освоите Avalonia.
Стоит отметить, что Avalonia не является прямой копией WPF и UWP. Она была создана с нуля для кроссплатформенной разработки. Avalonia включает в себя уникальные функции, отличающиеся от WPF и UWP. Эти различия включают в себя элементы управления, систему стилей, интеграцию под конкретные платформы и многое другое.
Тем не менее, ваши знания о WPF или UWP станут надежной опорой при изучении Avalonia и работы с ней.
Позволяет ли Avalonia создавать сложные приложения для настольных компьютеров?
Да, Avalonia действительно подходит для создания сложных настольных приложений. Она позволяет разрабатывать гибкие и сложные пользов ательские интерфейсы для широкого спектра платформ, включая Windows, macOS, Linux, iOS, Android и WebAssembly.
Мощная система стилизации Avalonia, вдохновленная WPF и CSS, позволяет создавать красивые и уникальные пользовательские интерфейсы. Кроме того, использование привязки данных и архитектуры MVVM способствует созданию масштабируемых приложений с хорошо структурированным, тестируемым и поддерживаемым кодом.
Кроме того, Avalonia поддерживает множество других функций, важных для сложных настольных приложений, таких как поддержка многооконности, всплывающие слои, шаблоны элементов управления, пользовательские элементы управления и многое другое.
Независимо от того, разрабатываете ли вы простую утилиту или крупномасштабное корпоративное приложение, Avalonia предлагает инструменты и гибкость, необходимые для создания надежных, производительных и потрясающих приложений.
Можно ли определять интерфейс в коде, а не XAML?
Да, для этого вы можете использовать любой язык из семейства .NET.
Существует ли визуальный редактор?
Нет, вместо этого Avalonia IDE поддерживает функцию предварительного просмотра, которая отображает интерфейс в реальном времени и обновляется при изменении XAML.
Есть ли поддержка Hot Reload?
Да, вы можете использовать проект сообщества для ее активации.
Может ли Avalonia использовать нативное API?
Да, подробнее читайте в статье.
Есть ли поддержка кросскомпиляции под различные платформы?
Да, вы можете собирать проекты под macOS, Linux, Android и WebAssembly через Windows. Также вам потребуется упаковать ваше приложение для этих платформ, чтобы получить готовый пакет.
Для создания iOS-приложений потребуется Mac.
Можно ли создавать мобильные приложения на Avalonia?
Да, вы можете разрабатывать под Android и iOS. Вам стоит внимательно изучить каждую из платформ для качественной разработки под сенсорные устройства.
Как мне влиться в сообщество?
Проверьте список сообщества.
Какие платформы поддерживаются?
Мы рекомендуем проверять какие версии ОС поддерживаются вашей версией .NET SDK. Часто .NET может перестать поддерживать старые ОС версии, когда Авалония все еще работает с ними. В таких случаях возможно придется отказаться от обновления SDK. Например, список поддерживаемых ОС версий в .NET 8.
Linux дистрибутивы
- Debian 9+
- Ubuntu 16.04+
- Fedora 30+
Другие дистрибутивы могут работать. Основное ограничение - поддержка .NET SDK и наличие X11 оконной системы. Альтернативно, framebuffer linux бэкенд тоже поддерживается. Wayland поддержка еще не в релизе.
WSL 2 дистрибуты так же поддерживаются, но libice6
, libsm6
и libfontconfig1
должны быть установлены отдельно.
Skia основана на glibc 2.17. Если ваш дистрибутив использует что-то другое, вам нужно собрать libSkiaSharp.so на SkiaSharp. Вы так же можете проверить поддерживаемые версии на домашней странице SkiaSharp.
Какие версии Windows поддерживаются?
- Windows 8.1+
Avalonia также работает на Windows 7, но новые функции, специфичные для этой платформы, будут недоступны, и мы больше не предоставляем исправления ошибок для этой версии.
Какие версии macOS поддерживаются?
- macOS 10.14+
Avalonia запускается и на macOS 10.13, но мы в процессе миграции на Metal GPU API, который требует 10.14 и в настоящее время отключен по умолчанию. Его планируется включить в одном из минорных обновлений.
Какие версии Android поддерживаются?
- Android 5.0+ (API 21)
.NET 7 необходим для Android поддержки.
Какие версии iOS поддерживаются?
- iOS 13.0+
.NET 7 необходим для iOS поддержки.
Какие версии Browser поддерживаются?
Любой браузер с полноценной поддержкой WebAssembly должен работать - https://caniuse.com/wasm.
Для лучшей работы мы рекомендуем последнии версии Chrome или Safari.
.NET 7 необходим для Browser поддержки. Начиная с 11.0.6 мы рекомендуем .NET 8.
Credits
- Некоторые части документации были основаны на Dotnet docs под лицензией CC BY 4.0.