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

ЧАВО

Что такое 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 поддерживает множество полезных функций, таких как многооконность, всплывающие сообщения, шаблоны, пользовательские элементы и многое другое.


Можно ли определять интерфейс в коде, а не XAML?​

Да, для этого вы можете использовать любой язык из семейства .NET.


Существует ли визуальный редактор?​

Нет, вместо этого Avalonia IDE поддерживает функцию предварительного просмотра, которая отображает интерфейс в реальном времени и обновляется при изменении XAML.


Есть ли поддержка Hot Reload?​

Да, вы можете использовать проект сообщества для ее активации.


Может ли Avalonia использовать нативное API?​

Да, подробнее читайте в статье.


Есть ли поддержка кросскомпиляции под различные платформы?​

Да, вы можете собирать проекты под macOS, Linux, Android и WebAssembly через Windows. Также вам потребуется упаковать ваше приложение для этих платформ, чтобы получить готовый пакет.

Для создания iOS-приложений потребуется Mac.


Можно ли создавать мобильные приложения на Avalonia?​

Да, вы можете разрабатывать под Android и iOS. Вам стоит внимательно изучить каждую из платформ для качественной разработки под сенсорные устройства.


Как мне влиться в сообщество?​

Проверьте список сообщества.


Какие платформы поддерживаются?​

warning

Мы рекомендуем проверять какие версии ОС поддерживаются вашей версией .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.