Avalonia
Что же это такое? В первую очередь это кроссплатформенный gui xaml фреймворк для платформ .net framework, .net core и mono.
Что же означают эти слова?
Авалония — набор библиотек, которые позволяют создать оконное приложение и запустить его на всех популярных десктопных платформах.
Далее я предложу вам, читатели, мои личные рассуждения, я не хочу критиковать\хвалить Авалонию как отдельную технологию, а просто рассказать о всем комплексе создания приложения для пк с использованием данной технологии.
Что мне нравится
Во-первых, простота старта, если вы знакомы с такими .net техногологиями как wpf\uwp, на то, чтобы завести авалонию у вас уйдет не более 5ти минут. Все что вам нужно — скачать шаблон с сайта авалонии и создать проект, на этом все — никаких плясок с бубном, чтобы собрать проект на линукс (
Во-вторых, поддержка xaml — из этого вытекает много удобных фич: mvvm, биндинги, разделение вью и бизнес логики, стилизация отдельными файлами.
В-третьих, заимствование или определенная совместимость (называйте как хотите) с wpf. Это означает, что если вы никогда не работали с авалонией, но знакомы с wpf, вы можете просто взять контролы, с которыми вы привыкли работать в wpf, и в 90% случаев ваше приложение сразу же стартанет. Также это означает, что для решения своей проблемы вы можете найти аналогичное решение для wpf, и в большинстве случаев оно решит и вашу проблему.
В-четвертых, стили — авалония вдохновлялась css в какой-то мере, что повлекло появление классов и псевдоклассов при стилизации, что упростило написание стилей и их понимание.
В-пятых, кроссплатформенность — что означает, раз написал и запускаешь везде. Важно отметить, что авалония использует нативные технологии для работы: Direct2D, MonoMac и тд. Так же авалония подхватывает системные декорации:
В-шестых поддержка разработчиков: в чатах, как в английских, так и в русских можно напрямую обратиться к разрабам и скорее всего они ответят на ваш вопрос.
Что мне не нравится
Во-первых, это все еще сыроватый фреймворк, и иногда можно встретить баги, да, авалония за годы очень выросла и на текущий момент любой баг можно решить (
Во-вторых, слабоватый перфоманс, т.е. у меня был забавный пет проект, где я накидывал тысячи контролов в одно окно, и wpf спокойно справлялся с этим (10к норм, дальше не тестил), авалония же давала фризы и чем дальше тем хуже (где-то на 3к элементов)
В-третьих , технология молода — сообщество тоже маленькое, так что вы можете застрять с тем, что никто не решал такую задачу, которая встала перед вами.
Чего мне не хватает в Avalonia
Во-первых, готовых пакетов стилей типа metro\material, да стилизовать просто, но иногда хочется использовать готовое и не думать.
Во-вторых, медиа обвязки, нет кроссплатформенной поддержки звуков и видео и это не входит и не будет (по крайней мере в ближайшее время) входить в задачи разработчиков, хочешь кроссплатформенный звук — пиши сам или тяни чужие.
В-третьих, поддержки актуальных фичей платформ, сворачивание в трей, значки уведомлений на ярлыках и тд, но здесь необходимо отдать должное разработчикам — с каждым релизом ситуация стремительно улучшается.
Подводя итог
Готова ли авалония выйти в свет — я считаю, что да, но не мне судить — попробуйте, посмотрите. Ведь как говорится: «Лучше один раз увидеть, чем 100 раз услышать»
Хотелось бы сказать спасибо ForNeVeR kekekeks worldbeater
И отметить, что поддержку по c# можно найти здесь, а по авалонии здесь.
Комментарии (14)
WoWkiler_11
25.10.2019 16:05с выходом net core 3.0 формы и wpf переехали на net core
возможно в net5 будет поддержка всех os, под которые есть net coreLarymar Автор
25.10.2019 16:06увы
тык майки говорят — не будетWoWkiler_11
25.10.2019 16:19а как же xamarin forms и GTK?
Larymar Автор
25.10.2019 16:22Все что вам нужно — скачать шаблон с сайта авалонии и создать проект, на этом все — никаких плясок с бубном, чтобы собрать проект на линукс (привет другой популярный фреймворк).
ну а gtk дарит примерно те же эмоции, что и qt#
попробуйте, не могу гарантировать, что вам не понравится, но мои личные ощущения, такие себе
IL_Agent
25.10.2019 20:38Как там дела с виртуализацией, анимациями? И да, без готовых стилей почти неюзабельно (
Larymar Автор
26.10.2019 08:371) с виртуализацией есть мара мелких багов, но в обем уже все на достойном уровне
2) с анимациями просто все норм, на уровне того же вфп (если можно говорить, что там норм)
3) да, готовых пресетов нет, но если почитаете мою статью по стилям, там внизу есть ссылочка на тулзу, которая может сгенерировать вам неплохой пресет
4) я постепенно по возможности и времени стараюсь подготовить метро пресет
AnarchyMob
27.10.2019 03:23готовых пакетов стилей типа metro\material, да стилизовать просто, но иногда хочется использовать готовое и не думать.
Я не представляю как реализовать, например, material. В avalonia нет поддержки эффектов, даже теней нет (хотя и в Skia и Direct2D есть).
Larymar Автор
27.10.2019 13:05есть поддержка анимаций
так что что-то близкое можно попробовать сделать
не обязательно прям 1 в 1, но я считаю, что реализация хорошей темы привлечет больше новых пользователей
вам стоит посмотреть сюдаAnarchyMob
27.10.2019 15:41есть поддержка анимаций
так что что-то близкое можно попробовать сделатьНе хочу показаться занудой, но почему в avalonia матрица трансформации используется 3x2, ведь современный дизайн, к примеру fluent, без трансформации перспективы достаточно сложно реализовать.
Tantrido
Может таки WPF появится в .Net Core после этого :) Молодцы, что сказать!
Larymar Автор
Ну, впф есть на core, но это не кроссплатформенная технология и работает только на винде. И майки объявили, что не планируют пока что портировать свой гуй куда-либо
Tantrido
Да, я имел в виду кросс-платформенный.