Я очень много пишу про Авалонию и часто восторгаюсь этим фреймворком, но, как и у любой технологии, у нее есть свои достоинства и недостатки, о них и хотелось бы поговорить.
Avalonia
Что же это такое? В первую очередь это кроссплатформенный gui xaml фреймворк для платформ .net framework, .net core и mono.
Что же означают эти слова?
Авалония — набор библиотек, которые позволяют создать оконное приложение и запустить его на всех популярных десктопных платформах.
Далее я предложу вам, читатели, мои личные рассуждения, я не хочу критиковатьхвалить Авалонию как отдельную технологию, а просто рассказать о всем комплексе создания приложения для пк с использованием данной технологии.
Что мне нравится
Во-первых, простота старта, если вы знакомы с такими .net техногологиями как wpfuwp, на то, чтобы завести авалонию у вас уйдет не более 5ти минут. Все что вам нужно — скачать шаблон с сайта авалонии и создать проект, на этом все — никаких плясок с бубном, чтобы собрать проект на линукс (привет другой популярный фреймворк).
Во-вторых, поддержка xaml — из этого вытекает много удобных фич: mvvm, биндинги, разделение вью и бизнес логики, стилизация отдельными файлами.
В-третьих, заимствование или определенная совместимость (называйте как хотите) с wpf. Это означает, что если вы никогда не работали с авалонией, но знакомы с wpf, вы можете просто взять контролы, с которыми вы привыкли работать в wpf, и в 90% случаев ваше приложение сразу же стартанет. Также это означает, что для решения своей проблемы вы можете найти аналогичное решение для wpf, и в большинстве случаев оно решит и вашу проблему.
В-четвертых, стили — авалония вдохновлялась css в какой-то мере, что повлекло появление классов и псевдоклассов при стилизации, что упростило написание стилей и их понимание.
В-пятых, кроссплатформенность — что означает, раз написал и запускаешь везде. Важно отметить, что авалония использует нативные технологии для работы: Direct2D, MonoMac и тд. Так же авалония подхватывает системные декорации:
В-шестых поддержка разработчиков: в чатах, как в английских, так и в русских можно напрямую обратиться к разрабам и скорее всего они ответят на ваш вопрос.
Что мне не нравится
Во-первых, это все еще сыроватый фреймворк, и иногда можно встретить баги, да, авалония за годы очень выросла и на текущий момент любой баг можно решить (подпереть костылем), но уже можно говорить о стабильности технологии, как отмечают сами разработчики — она добралась до прод реди.
Во-вторых, слабоватый перфоманс, т.е. у меня был забавный пет проект, где я накидывал тысячи контролов в одно окно, и wpf спокойно справлялся с этим (10к норм, дальше не тестил), авалония же давала фризы и чем дальше тем хуже (где-то на 3к элементов)
В-третьих , технология молода — сообщество тоже маленькое, так что вы можете застрять с тем, что никто не решал такую задачу, которая встала перед вами.
Чего мне не хватает в Avalonia
Во-первых, готовых пакетов стилей типа metromaterial, да стилизовать просто, но иногда хочется использовать готовое и не думать.
Во-вторых, медиа обвязки, нет кроссплатформенной поддержки звуков и видео и это не входит и не будет (по крайней мере в ближайшее время) входить в задачи разработчиков, хочешь кроссплатформенный звук — пиши сам или тяни чужие.
В-третьих, поддержки актуальных фичей платформ, сворачивание в трей, значки уведомлений на ярлыках и тд, но здесь необходимо отдать должное разработчикам — с каждым релизом ситуация стремительно улучшается.
Подводя итог
Готова ли авалония выйти в свет — я считаю, что да, но не мне судить — попробуйте, посмотрите. Ведь как говорится: «Лучше один раз увидеть, чем 100 раз услышать»
Хотелось бы сказать спасибо ForNeVeR kekekeks worldbeater
И отметить, что поддержку по c# можно найти здесь, а по авалонии здесь.
Автор: Larymar