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

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