Никита Цуканов - 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 пришлось адаптировать код, изначально предназначенный для правильной отрисовки орбит комет).
    О том, чего уже удалось достичь, что из этого вы уже сейчас можете использовать, а также о трудностях и интересностях при разработке такого проекта - доклад от одного из его участников.

КОМЕНТАРІ • 31

  • @minskowl
    @minskowl 7 років тому +47

    Если бы эту разработку взял под крыло Майкрософт и довел до промышленого конца.. Это был бы фурор.. А не этот уродкий зоопарк из Ксамаринов. А парни вообще красавцы. Удачи им и успехов

    • @9285550
      @9285550 6 років тому +23

      html+js тормозное говно

    • @AlexS-gn9tq
      @AlexS-gn9tq 6 років тому +6

      при всём уважении, в гробу я видал весь этот фронтенд зоопарк

    • @vabka-7708
      @vabka-7708 5 років тому

      @@channelname501 если очень сильно хочется - можно любой другой язык разметки использовать (видел DSL На F# и вариант с json). Смысл именно в объектом доме и реактивности

    • @ДанилаГладкий-л8к
      @ДанилаГладкий-л8к 4 роки тому +2

      @@channelname501 В этом мире 8гб и i3 четыре ядра - минимум для офисного использования
      О чём сейчас рапортуют все техносайты и обзоры
      За что человек конкретно платит ресурсами? За функционал? Нет
      За ваши HTML и JS

    • @ДанилаГладкий-л8к
      @ДанилаГладкий-л8к 4 роки тому

      ​@@channelname501 А можно сделать без Г и красиво обернуть, все довольны и счастливы.
      Давайте начистоту: использование фронтенд-технологий всегда и везде - это не из-за хорошего языка и не из-за свойств самой платформы. Это просто огромная куча фронтэндеров, которые закономерно расплываются по смежным направлениям и тащат за собой свой устав в чужой монастырь. А сам JS - это результат неспособности разработчиков браузеров оперативно договариваться между собой о нововведениях и тьма ограничений.
      Когда-то WPF ругали на большой оверхед, медленную отрисовку и уступающую в производительности платформу. Qt ставили в пример
      Если бы те люди на старте WPF увидели Electron - получилось бы коллективное самовыпиливание через фатальный фейспалм.
      И нет особого смысла в полной кроссплатформенности UI тулкита между десктопом и мобилками, потому что всё равно под тач и диагональ интерфейс придётся перерабатывать _полностью
      А столкнуться с железом уровня калькулятор+ в смартфонах горааааздо проще, чем на ПК. Обилие Cortex A53 + Midgard Mali в любой статистике не даст соврать. Да A53 это ещё нормально, A7 ещё живые на пару с Mali 4xxMP, а вот это уже серьёзное дерьмо.
      Да и зачем вспоминать про MTK, когда снапушник 652 ещё с _завода ловил фризы и подтормаживания в _хроме на некоторых на вид не перегруженных сайтах
      На современном железе Discord, Skype, Atom работают хорошо, радуют глаз... и их требования для плавной работы, их жор ОЗУ дышит в спину бюджетным или тонким ноутбукам. Ещё чуть-чуть и всё, некомфортно, идите за апгрейдом или терпите. Веб стек на десктопе правильное дело делает. С точки зрения Intel. Мне Intel не платит процент от проданных ноутбуков, к сожалению, и одно дело когда ПО под заказ для маленького заказчика, и совсеем другое, когда оно идёт в публичный доступ.

  • @9285550
    @9285550 7 років тому +21

    Хороший доклад, я бы даже сказал один из лучших.

  • @dmitryvzuev
    @dmitryvzuev 5 років тому +14

    Очень круто запускать из консоли графическое приложение не запуская оконную подсистему. Актуально для встраиваемых систем

    • @NEK-RA
      @NEK-RA 3 роки тому +1

      да и в целом оказалось очень интересной фишкой (не знал что так можно)

  • @sau9703
    @sau9703 6 років тому +8

    Стили в стиле CSS - хорошая штука , а отрисовка на канве в браузере вапшэ бомба - долой js и html )

  • @symodlearn
    @symodlearn 6 років тому +4

    Просто красавчики, е этого курса полюбил авалонию
    А именно интеграция с консолью, ахха

    • @NEK-RA
      @NEK-RA 3 роки тому +1

      +1. я правда в gui вообще еще не влезал, но фича с консолью смотрелась классно

  • @nave3411
    @nave3411 6 років тому +3

    супер!

  • @TEHNOTRAHER
    @TEHNOTRAHER 4 роки тому

    Насколько я понял, avalonia можно прикрутить и к monogame и к unity?

  • @Serafimati
    @Serafimati 5 років тому +1

    А где Qt, так и не понял?

    • @nikitka2457
      @nikitka2457 5 років тому +2

      Qt это же С++

    • @Serafimati
      @Serafimati 5 років тому +2

      @@nikitka2457 Qt - это кросплатформенный фреймворк. И, если на то пошло, GTK и Windows Forms на С и С++ соответственно. Вот только их в сравнительную табличку добавили, а Qt - нет. Полагаю, это от того, что весьма трудно самоутвердиться на фоне Qt.

    • @aemarkov
      @aemarkov 5 років тому +1

      @@Serafimati Возможно дело в том, что биндинги Qt к .NET более кривые, чем у GTK. Есть QmlNet и QtSharp. Не знаю, не пробовал. Ведь речь в докладе именно о GUI для .NET

  • @Venustaz
    @Venustaz 4 роки тому

    Не в обиду, словно на молодого Бобука смотрю

  • @Ubun123
    @Ubun123 7 років тому +1

    Насколько сейчас вообще актуально заниматься нативной графикой? С учетом современного frontend'a?

    • @9285550
      @9285550 7 років тому +16

      Очень актуально, иначе мы потонем в этом тормозном аду типа электрона.

    • @sau9703
      @sau9703 6 років тому +3

      В веб.разработке пока зоопарк в плане технологий и стандартов , зачастую скрещивается бульдог с носорогом , и еще этот убогий js... в общем , все плохо в плане комфорта разработки , так что , иной раз проще и быстрее реализовать что то под десктоп.

  • @НищаяБлоха
    @НищаяБлоха Рік тому

    За пять лет - ноль прогресса. Мёртвая технология

    • @nevereverlie8325
      @nevereverlie8325 Рік тому +3

      Тупорылыч ты, гитхаб открой

    • @Антон-п8х6ъ
      @Антон-п8х6ъ 10 місяців тому

      Так опенсорс по определению мертвая тема

    • @PavelAAlexeev
      @PavelAAlexeev 7 місяців тому +1

      а что живое? чем по-быстрому перенести c WPF на линухи?

    • @НищаяБлоха
      @НищаяБлоха 7 місяців тому

      @@PavelAAlexeevЦелевая

    • @andreyboyarkin
      @andreyboyarkin 2 дні тому

      Что в вашем понимании мёртвая технология? На последнем DN был отличный пример коммерческого использования в большом сложном приложении