На чем делать UI для Windows в 2022 году?

Предположим нужно сделать небольшую desktop программу под Windows с пользовательским интерфейсом в 2022 году. Как думаете какую технологию стоит использовать учитывая что язык программивания C#(.NET 6) и расматриваем только "родные" технлогогии под этот язык ?

Какие у нас есть варианты:
1. Windows Forms. (Сейчас работает и с новым NET core 3.2, NET 5,6 и т.д. можно использовать новую платформу, библиотеки например EF Core и т.д. Но юзер контролы выглядят как то не очень уже, например DataGridView)
2. WPF. Стартовать новый проект есть ли смысл если есть MAUI ?
3. UWP. Технология вроде как не зашла. Лучше наверное MAUI
4. MAUI. Самая новая технология от Microsoft кросс-платформенная, XAML-разметка.
5. AvaloniaUI. Кроссплатформенная платформа пользовательского интерфейса на основе XAML.

Так как программа небольшая я склоняюсь все быстро сделать на Windows Forms, в 2022 году кто то стартует на нем новые проекты? На втором месте наверное AvaloniaUI смущает что на нем каких то больших проектов. С другой стороны MAUI технология "напрямую" от Microsoft с ней проще буде разобраться разработчику который через год, два будет вносить изменения или добавлять фичи в эту программу.
  • Вопрос задан
  • 1505 просмотров
Решения вопроса 1
vabka
@vabka Куратор тега .NET
Токсичный шарпист
MAUI - это масштабное обновления xamarin-а по сути. ИМХО без поддержки Linux его кроссплатформенность мало чего стоит.
WPF - это нативная технология при этом с WPF тебе доступны всякие сторонние и родные контролы. В том числе самые новые от WinUI 3.
UWP превратился в WinUI 3
Avalonia - кроссплатформа. "Как WPF но лучше", но без поддержки контролов от WPF или WinUI, но есть много свободных вполне неплохих. Да и система стилей достаточно удобная

Если тебе не нравится Winforms из-за внешнего вида стандартных контролов, то всегда можно использовать сторонние.

На втором месте наверное AvaloniaUI смущает что на нем каких то больших проектов.

Есть много разных проектов, в том числе крупных и коммерческих, и от именитых компаний.
https://avaloniaui.net/Showcase

Так как программа небольшая я склоняюсь все быстро сделать на Windows Forms, в 2022 году кто то стартует на нем новые проекты?

Если ты делаешь что-то небольшое и чисто для себя, и ты не умеешь работать с XAML и нет времени на освоение - нет причин не использовать Winforms. Да, он имеет проблемы с производительностью, да он не очень красивый, да винформы не очень легко поддерживать. Но является ли это реальной проблемой для вашего проекта?

В общем вот мой топ-чарт:
1. Если дёшево и сердито - Winforms (остальное - если нужен нормальный дизайн)
2. Если кроссплатформу - Avalonia
3. Если нужно на телефоны - MAUI (хотя Avalonia уже можно заставить работать на Android)
4. Если хочется в новый дизайн винды - WinUI 3
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@DanyByLuckyCraft
Посмею выссказать свое мнение:
1. win form - что то морально, устаревшие на мой взгляд.
2. WPF - мне заходит (быстро,просто и сердито) - сравнение с MAUI ниже
3. Немного о MAUI, писал приложение для курсача на нем. Много багов, слишком много багов. По факту это апдейт ксамарина, но с ксамарином, все проще. Большинство багов ксамарина в самом ксамарине пофикшено уже, а в MAUI нет.
На счет кроссплатформенности. Очень странно работает, меня взбесило, то что такие елементы как EditText (EntryText - вроде), spinner (comboBox - вроде) и другие контролы с вводом на Android и IOS просто не имеют обводки или хоть какого дизайна. Я запускаю приложение и оно просто пустое, нажимаю на место, где должен быть эллемент и о чудо могу вводить туда текст. Пришлось обвести самому с помощью кастомного стиля, но теперь в дестопе у меня обводка по умолчанию + кастомная и они накладывались друг на друга. 10 дней подбирал версию nugate пакета, который бы запустился и под мобилу и под винду (для коннекта к БД). Не понятные приколы со сборкой, винда собирается и все нормально, а мобила нет. Методом тыка нашел место при загрузке странице в onCreated (не помню как функция инициализация страницы называется под MAUI) была проблема, там был создан лист, который через LINQ получал список из БД и сразу заполнялся. Просто разбив эту строку на две, сначало объявить а потом заполнить - мобила начала тоже собираться.

В общем MAUI мне запомнился методом тыка, проблемами со сборкой мобилы с полностью рабочим кодом. И дикими танцами с бубном. Из минусов так же мало библиотечек кастомных для дизайна, да и в принципе готовых библиотечек. NUGATE некоторые крашаться под мобилой и приходится реально перебирать. Так например я накатывал EFTools делал edmx и после чего удалял tools ибо с ним мобила не собиралась. Версия EF у меня была тоже подобрана и многое другое.

Поддержка майкрасофта, максимально на отвали отвечает просто все заявки на баги кидает в CHANGELOG и они висят там не скончаемое количество времени, по сотни одинаковых репортов (чекни гитхаб MAUI)

4. К слову всех данных проблем у Xamarin нет, а ошибки гуглятся и быстрее решаются
5. Avalonia - сам не использовал, но общаюсь с теми кто использует. По словам и на вид, она проще быстрее и удобнее. Нет всех проблем, описанных выше. MAUI - выглядит, как что то нечто сырое.

Из минусов и MAUI и Avalonia попробуй найди внятную документацию. Правда с Avalonia стало уже гораздо проще.
Ответ написан
Комментировать
Morpheus_God
@Morpheus_God
Вы выбираете инструмент а не инструмент вас.
Если считаете, что ваш проект вполне будет жить в рамках WinForms, пишите на нем.
Если думаете о перспективе роста и ваше ПО вдруг окажется на просторах Linux, то тут смотрите в сторону Avalonia.
Жаль конечно, что MAUI не реализован на Linux.
Я бы на UWP ничего не делал.
Если надо быстро и работало, WinForms, хочется рюшечек, какого то сложного рендера тут WPF.
Хотите в кроссплатформу и Linux - Avalonia.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы