Никита Цуканов - AvaloniaUI - первый кроссплатформенный XAML UI-фреймворк с поддержкой .NET Core
Вставка
- Опубліковано 5 лис 2024
- Подробнее о конференции DotNext: jrg.su/3WmFRE
- -
Мы живём во время, когда стала актуальной поддержка целого зоопарка платформ и устройств, а .NET Core и .NET Standard существенно упрощают переносимость C#-кода между ними. Однако каждая из платформ предлагает какие-то собственные средства для разработки, причём большая часть из них мысленно застряла где-то во временах MFC и Windows Forms, и не имеет нормальной интеграции с C#. Есть ряд решений, пытающихся привести эти платформы к общему знаменателю и хоть как-то добавить адекватную поддержку MVVM и XAML-вёрстки, но всё это как-то... не то.
.NET-разработчики привыкли к возможности стилизовать контролы где угодно и как угодно, к нормальным привязкам списков к коллекциям, богатой системе биндингов. Именно этого и пытается достичь проект AvaloniaUI, продолжающий идеи WPF в open source. Путь проекта нелёгок и тернист - помимо системы для работы привязок, необходимо самостоятельно обрабатывать весь пользовательский ввод, думать о том, как эффективно отрисовать интерфейс, бороться с разного рода несуразностями со стороны целевых платформ, разбираться с отличиями систем отрисовки (так, из-за неадекватной поддержки ArcTo пришлось адаптировать код, изначально предназначенный для правильной отрисовки орбит комет).
О том, чего уже удалось достичь, что из этого вы уже сейчас можете использовать, а также о трудностях и интересностях при разработке такого проекта - доклад от одного из его участников.
Если бы эту разработку взял под крыло Майкрософт и довел до промышленого конца.. Это был бы фурор.. А не этот уродкий зоопарк из Ксамаринов. А парни вообще красавцы. Удачи им и успехов
html+js тормозное говно
при всём уважении, в гробу я видал весь этот фронтенд зоопарк
@@channelname501 если очень сильно хочется - можно любой другой язык разметки использовать (видел DSL На F# и вариант с json). Смысл именно в объектом доме и реактивности
@@channelname501 В этом мире 8гб и i3 четыре ядра - минимум для офисного использования
О чём сейчас рапортуют все техносайты и обзоры
За что человек конкретно платит ресурсами? За функционал? Нет
За ваши HTML и JS
@@channelname501 А можно сделать без Г и красиво обернуть, все довольны и счастливы.
Давайте начистоту: использование фронтенд-технологий всегда и везде - это не из-за хорошего языка и не из-за свойств самой платформы. Это просто огромная куча фронтэндеров, которые закономерно расплываются по смежным направлениям и тащат за собой свой устав в чужой монастырь. А сам JS - это результат неспособности разработчиков браузеров оперативно договариваться между собой о нововведениях и тьма ограничений.
Когда-то WPF ругали на большой оверхед, медленную отрисовку и уступающую в производительности платформу. Qt ставили в пример
Если бы те люди на старте WPF увидели Electron - получилось бы коллективное самовыпиливание через фатальный фейспалм.
И нет особого смысла в полной кроссплатформенности UI тулкита между десктопом и мобилками, потому что всё равно под тач и диагональ интерфейс придётся перерабатывать _полностью
А столкнуться с железом уровня калькулятор+ в смартфонах горааааздо проще, чем на ПК. Обилие Cortex A53 + Midgard Mali в любой статистике не даст соврать. Да A53 это ещё нормально, A7 ещё живые на пару с Mali 4xxMP, а вот это уже серьёзное дерьмо.
Да и зачем вспоминать про MTK, когда снапушник 652 ещё с _завода ловил фризы и подтормаживания в _хроме на некоторых на вид не перегруженных сайтах
На современном железе Discord, Skype, Atom работают хорошо, радуют глаз... и их требования для плавной работы, их жор ОЗУ дышит в спину бюджетным или тонким ноутбукам. Ещё чуть-чуть и всё, некомфортно, идите за апгрейдом или терпите. Веб стек на десктопе правильное дело делает. С точки зрения Intel. Мне Intel не платит процент от проданных ноутбуков, к сожалению, и одно дело когда ПО под заказ для маленького заказчика, и совсеем другое, когда оно идёт в публичный доступ.
Хороший доклад, я бы даже сказал один из лучших.
Очень круто запускать из консоли графическое приложение не запуская оконную подсистему. Актуально для встраиваемых систем
да и в целом оказалось очень интересной фишкой (не знал что так можно)
Стили в стиле CSS - хорошая штука , а отрисовка на канве в браузере вапшэ бомба - долой js и html )
Просто красавчики, е этого курса полюбил авалонию
А именно интеграция с консолью, ахха
+1. я правда в gui вообще еще не влезал, но фича с консолью смотрелась классно
супер!
Насколько я понял, avalonia можно прикрутить и к monogame и к unity?
А где Qt, так и не понял?
Qt это же С++
@@nikitka2457 Qt - это кросплатформенный фреймворк. И, если на то пошло, GTK и Windows Forms на С и С++ соответственно. Вот только их в сравнительную табличку добавили, а Qt - нет. Полагаю, это от того, что весьма трудно самоутвердиться на фоне Qt.
@@Serafimati Возможно дело в том, что биндинги Qt к .NET более кривые, чем у GTK. Есть QmlNet и QtSharp. Не знаю, не пробовал. Ведь речь в докладе именно о GUI для .NET
Не в обиду, словно на молодого Бобука смотрю
Насколько сейчас вообще актуально заниматься нативной графикой? С учетом современного frontend'a?
Очень актуально, иначе мы потонем в этом тормозном аду типа электрона.
В веб.разработке пока зоопарк в плане технологий и стандартов , зачастую скрещивается бульдог с носорогом , и еще этот убогий js... в общем , все плохо в плане комфорта разработки , так что , иной раз проще и быстрее реализовать что то под десктоп.
За пять лет - ноль прогресса. Мёртвая технология
Тупорылыч ты, гитхаб открой
Так опенсорс по определению мертвая тема
а что живое? чем по-быстрому перенести c WPF на линухи?
@@PavelAAlexeevЦелевая
Что в вашем понимании мёртвая технология? На последнем DN был отличный пример коммерческого использования в большом сложном приложении