Перейти к основному содержимому
Версия: 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.