Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.98/47: Рейтинг темы: голосов - 47, средняя оценка - 4.98
Заблокирован

2023 год Windows Forms или WPF?

16.10.2023, 14:34. Показов 12458. Ответов 116
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Читаю раздел материалов microsoft по потокам данных и вижу, что хоть статьи все и помечены датой из 2023 года, но примеры все для Windows Forms. Почему не для WPF? Интересно, какой процент Windows Forms и WPF в новых приложениях? WPF оказался чем-то хуже Windows Forms и так и не стал преобладающей технологией? И какой прогноз на будущее в этом плане?
Я просто не в курсе событий, хоть и интересуюсь темой в частном порядке)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.10.2023, 14:34
Ответы с готовыми решениями:

WPF или Windows Forms. Сложность
Что лучше и проще в реализации? WPF или Windows Forms? Хотя даже не то, чтобы проще или лучше, что более удобное? Сам студент, который...

Видео в бэкграунде WPF или Windows Forms?
Здравствуйте. Хочу сделать так,чтобы в моей программе бэкграундом было видео зацикленное. Можно так сделать? Реализация либо в впф либо в...

Что выбрать для новичка Windows Forms или WPF?
Хочу создать для жены программу для редактирования схемы для вязания спицами. Есть частично готовая программа, а именно, первая вкладка,...

116
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,775
19.10.2023, 09:57
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
Сейчас пока это модно
В данном случае вопрос в деньгах, а не в моде - это куда дешевле, чем держать штат разработчиков отдельно под Мак, отдельно по Линукс, отдельно под Windows. Пользователи, правда, не всегда довольны подобными решениями (судя по некоторым маковским форумам), т.к. приложения начинают выглядеть непривычно, особенно, когда уже существующее приложение заменяют электрон-версией, но компании всё равно продолжают продавливать эти решения (видимо, реально сильная экономия ресурсов).
0
 Аватар для Andrey-MSK
3376 / 2262 / 388
Регистрация: 14.08.2018
Сообщений: 7,671
Записей в блоге: 4
19.10.2023, 10:09
Цитата Сообщение от kotelok Посмотреть сообщение
это куда дешевле, чем держать штат разработчиков отдельно под Мак, отдельно по Линукс, отдельно под Windows.
Возьмём для примера Autodesk Maya - на всех ОС она выглядит одинаково, так как в качестве UI используется Qt и не надо три штата специалистов, всё пишется на Qt/C++. Что мешает товарищам из MS сделать тоже самое для NET?
1
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,775
19.10.2023, 10:18
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
на всех ОС она выглядит одинаково
Ну вот пользователям это не особо нравится, т.к. им привычнее, когда приложение выглядит как они привыкли на своей ОС. Хотя, даже в рамках дефолтных приложений Винды есть варианты которые не вписываются в общий стиль и просто выглядят так, как им "удобно".

Qt да, вариант. Но он тоже не даёт 100%-й нативности ни в поведении, ни во внешнем виде. Например, десктопный (Виндовый) клиент Телеграма, который реализован на Qt, но у которого даже всплывающие (по правой кнопке) меню реализованы не через нативные виндовые меню, а через эмуляцию этого меню в отдельном прозрачном окне. Как результат - при правом клике и появлении меню, основное окно телеграма теряет фокус (со всеми соответствующими визуальными эффектами и последующим проглатыванием одного клика). Ну или у некоторых Qt-приложений, которые я видел, в принципе не работала дефолтная логика прилипания окон к краям экрана или вытягивания окна из максимизированного состояния за заголовок.

Но опять же - компании продолжают выбирать Qt т.к. это, как и Электрон, вариант минимизировать кодовую базу и количество разработчиков (хоть и ценой немного непривычного UI для пользователей).
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
19.10.2023, 10:46
Цитата Сообщение от reti Посмотреть сообщение
Мне не нужен красивый интерфейс. Мне нужен надежный инженерный софт для связи с контроллерами или микроконтроллерами.
Цитата Сообщение от titan4ik Посмотреть сообщение
таких применений может быть много (!!!) Очень много! И при наличии таких технологий, людей, которые их бы использовали, было бы много. То есть, большое число специалистов предметной области могли бы делать прикладные программы для себя и коллег, не отвлекая высококвалифицированных специалистов программистов от их высоких чаяний.
(WF, всё-таки, не мыслился таким продуктом. И, после появления WPF, WF как бы был уже технологией вчерашнего дня.
Цитата Сообщение от Uswer Посмотреть сообщение
но всегда ли это нужно узкому специалисту?
Я же сразу за это написал:
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Если какое-то техническое, инженерное приложение. Где визуал не важен, то Форм-приложения встречаются часто.
Для большинства "технарей инженеров" не требуется красивого визуала, им концептуально ближе и понятнее ПП (процедурное программирование), ООП часто воспринмается как "необходимое зло", возможностей Форм со всей логикой в Code Behind хватает "выше головы". Никакого XAML, MV* им не нужно - это только лишнее усложнение для них.
Это не хорошо, но это и не плохо. Такова реальность. И действительно как отметил reti, промышленное программирование - это очень коммерческое и часто очень высокооплачиваемая область программирования. Я сталкивался со случаями (буквально пару неделю назад последний был) когда компания (инагент) продаёт софт, который может сделать один разработчик "на коленке" за полмесяца-месяц по цене в десятки и сотни килобаксов.

Но в тоже время reti и упускает такой момент. Сделанная такая программа на Формах будет прекрасно работать. Но купят её совсем по иной цене, чем тоже самое под нормальным GUI. Условно заплатила компания reti за софтину 1-2 килобакса, добавила свой современный GUI, который предаст ей законченный коммерческий вид и будет продавать за десятки и сотни килобаксов. таки случаи очень часты. Последний с каким столкнулся именно из этой серии. Посвяти мой знакомый немного усилий приданию нормально вида GUI своей софтине, то его труд был бы оценён раз в десять выше.
Другое дело, что большинство "инжереных разработчиков" - это всё же разовые заказы или даже работа в штате заказчика, пользователя созданной софтины. О продажах нескольким Заказчикам речи , в принципе, не идёт.
2
Заблокирован
19.10.2023, 11:28  [ТС]
Цитата Сообщение от aenye Посмотреть сообщение
Популярны для небольшого размера приложений под десктоп сейчас электрон (порог входа - наличие глаз и 1 день опыта на фронтЕ) и qt (порог входа повыше).
Не понял - а qt можно с c#?

Добавлено через 5 минут
Точнее так - я-то нагуглил, что можно. Но это точно хороший вариант?

Добавлено через 5 минут
Мда, нужно посмотреть этот электрон и qt. А то у меня идиосинкразия и к WPF и к WF.
0
 Аватар для aenye
304 / 186 / 45
Регистрация: 05.07.2018
Сообщений: 580
19.10.2023, 13:15
Цитата Сообщение от titan4ik Посмотреть сообщение
Не понял - а qt можно с c#?
Возможно и есть какой-то тулкит или либа для решетки, но в основном - это c++

Добавлено через 13 минут
Цитата Сообщение от reti Посмотреть сообщение
Вы даже не представляете сколько может стоить софт для управления станком. Скорее всего, вы просто рыбачите не в рыбном месте)
Возможно. Но предположу, что Вы не представляете, сколько стоит софт не для управления станком) Поэтому и 0%, даже если представить, что одно Ваше решение для станка стоит 10 миллионов долларов.

Мне кажется, что более удачным примером по объему рынка были бы какие-нибудь IDE. Но тут (сюрприз-сюрприз) на сцену выходит JetBrains с новым UI и VS Code. Угадайте, на основе какой технологии они разработаны.

Цитата Сообщение от reti Посмотреть сообщение
Эээ... Ну как бы у меня примерно 100% новых приложений на WF
Значит, вы просто нашли себе рыбное место, но на общем фоне это ничего не меняет.
Объем рынка точечных решений на WF и того же веба совершенно несопоставим.
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,236
19.10.2023, 13:48
Цитата Сообщение от aenye Посмотреть сообщение
Угадайте, на основе какой технологии они разработаны.
Вроде в версии 2022.2.2 (в текущей EAP версии) уже Avalonia для нового UI используется, для старого - Java.
При этом новая версия умеет работать с HI DPI экранами.

Ща покажу на примере (4K монитор).
Первая картинка - как выглядит список проектов на версии 2021.3.4 со старым UI.
Вторая картинка - 2022.2.2. Разница налицо (текст

И это все на Manjaro.
1
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,236
19.10.2023, 13:48
Вообщем, я верю, что Avalonia закроет этот кроссплатофремнный GUI-gap .NET-а.
0
 Аватар для Andrey-MSK
3376 / 2262 / 388
Регистрация: 14.08.2018
Сообщений: 7,671
Записей в блоге: 4
19.10.2023, 13:53
Цитата Сообщение от aenye Посмотреть сообщение
Угадайте, на основе какой технологии они разработаны.
Цитата Сообщение от IamRain Посмотреть сообщение
уже Avalonia для нового UI используетс
Дак Avalonia это практически тот-же WPF, только кроссплатформенный, так что все заявления о мёртвом Desktop просто в никуда...

Добавлено через 1 минуту
Цитата Сообщение от IamRain Посмотреть сообщение
Вообщем, я верю, что Avalonia закроет этот кроссплатофремнный GUI-gap .NET-а.
Если майки его официально возьмут под крыло, то получится весьма и весьма интересная штука
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,236
19.10.2023, 13:54
Вложения.
Миниатюры
2023 год Windows Forms или WPF?   2023 год Windows Forms или WPF?  
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,236
19.10.2023, 13:57
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
Если майки его официально возьмут под крыло, то получится весьма и весьма интересная штука
Да им это и не нужно. У JetBrains недавно был .NET-day, можно глянуть на состояние дел, был один доклад по Avalonia.
По скринам видно, что текст пути к проекту в списке проектов уже нормально отображается. It works! (Manjaro + Arch tested)
0
 Аватар для Andrey-MSK
3376 / 2262 / 388
Регистрация: 14.08.2018
Сообщений: 7,671
Записей в блоге: 4
19.10.2023, 14:00
Цитата Сообщение от IamRain Посмотреть сообщение
Да им это и не нужно.
Я имею ввиду встроить в VS, а не как расширение устанавливать. Тогда и интеграция будет лучше и сообщество начнёт лепить отчёты по ошибкам.
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,236
19.10.2023, 14:04
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
Я имею ввиду встроить в VS,
Ну это да. JetBrains, получается, уже дважды удачно втиснулась в .NET - первый раз написав Resharper, второй раз - написав Rider.
Плюс сторонняя Avalonia созрела.
Как я рад, что у нас есть Open Source и divesity.
0
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,775
20.10.2023, 10:35
Цитата Сообщение от IamRain Посмотреть сообщение
Вообщем, я верю, что Avalonia закроет этот кроссплатофремнный GUI-gap .NET-а.
Зашёл на офф-сайт Авалонии, скачал первое приложение из раздела 'Showcase', установил на Win-10, запустил, получил расход памяти 1.6ГБ. Далее, просто немного увеличил размер окна - память процесса подскочила до 2.7ГБ и там и осталась (т.е. никакие новые данные не подгружались, никакие окна не открывал, т.е. чисто на отрисовке UI). Это к вопросу "электрон прожорливый". На деле - минимальное приложение с одним окном на Электроне, после (мгновенного) запуска под Виндой занимает в памяти ~250МБ, на Авалонии ~180МБ. При этом, если в тот же Электрон пытаться врендерить страничку с тысячей элементов и потом модифицировать их (в DOM-дереве) по десять-двадцать раз в секунду, то, как и любой UI, он потребляет примерно одно ядро в попытках сделать перерисовку максимально быстро, при этом доп-память не потребляет вовсе.

Я это не к тому, что какая-то платформа хуже/лучше в плане памяти/производительности, а скорее к тому - что и на Электроне, и на Qt, и на Авалонии, можно написать как хороший код, так и откровенно некачественный, который будет и тормозить, и память потреблять без меры (и не убирать за собой).

Так же, судя по докладу с Ютуба от разработчиков обозначенного выше приложения - это реальное коммерческое приложение, которое изначально было на WPF и которое успешно портировали под MacOS и Ubuntu путём перехода на Avalonia. Ну и по тому же докладу - у них возникли настолько серьёзные проблемы с реализацией кроссплатформенной многооконности и попапов, что было решено полностью от всего этого отказаться, т.е. все менюшки, комбобоксы и диалоговые окна открывают только в границах основного окна (речь про конкретное приложение на Авалонии, а не про Авалонию в целом). При реализации на Электроне, кстати, возникают ровно те же проблемы и они ровно так же либо не решаются вовсе (отказываемся от удобной многооконности), либо решаются причудливыми костылями. Да и на Qt ситуация не лучше. В VSCode, кстати, по тому же пути пошли - менюшки все внутри окна и если окном маленькое, они стараются хоть как-то в него вписаться.
2
 Аватар для Andrey-MSK
3376 / 2262 / 388
Регистрация: 14.08.2018
Сообщений: 7,671
Записей в блоге: 4
20.10.2023, 10:41
Цитата Сообщение от kotelok Посмотреть сообщение
отказываемся от удобной многооконности
Ну тогда подход один - три команды разработчиков UI под каждый тип ОС, и тогда получим красивый (с блэкджеком и попаппами ), адекватный UI в логике ОС...
1
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,775
20.10.2023, 10:46
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
три команды разработчиков UI под каждый тип ОС
Три? В том же докладе есть фрагмент, где один из разработчиков сетует, мол "этих линуксов такое количество, что мы остановились на поддержке только Ubuntu". Ну т.е. да, понятно, что команде Линукс-разработчиков можно озвучить требование поддержки Астры, Редоса, Убунты, АльтЛинукса и ещё кучки чего, и пущай они там страдают, добиваясь на всех системах и всех типах рабочих столов максимально нативного поведения. Но что-то мне подсказывает, что это будет ну очень больно. Но тут, как выше отмечалось - вопрос в целевой аудитории. Т.е. если это разработка под конкретного заказчика, то там и требования будут конкретные (в т.ч. по ОС). А вот если это приложение на широкую аудиторию (да даже просто ориентировка на российский гос-сектор, где в очередной раз пытаются принудить к переходу на Линкус), то там конечный пользователь может выбирать между разными вариантами Линуксов (и визуально они заметно отличаются).

Цитата Сообщение от Andrey-MSK Посмотреть сообщение
три команды разработчиков UI под каждый тип ОС
Ну и да - очень дорого ).
2
 Аватар для Andrey-MSK
3376 / 2262 / 388
Регистрация: 14.08.2018
Сообщений: 7,671
Записей в блоге: 4
20.10.2023, 10:48
Цитата Сообщение от kotelok Посмотреть сообщение
и визуально они заметно отличаются
Основные рабочие столы в Linux это KDE и GNOME, остальное всё от лукавого...
0
 Аватар для Козадоев
165 / 155 / 33
Регистрация: 05.03.2013
Сообщений: 879
20.10.2023, 12:43
Цитата Сообщение от Wolfdp Посмотреть сообщение
вставлю пять копеек. Что WF, что WPF имеют серьезный изъян -- они только под винду. Это пипец как критично во многих случаях выбора "на чем писать", а в текущий реалиях кроме windows, macOS и linux зачастую ещё нужен android и iOS.
Универсального решения нет. Хочешь качественно и красиво - делай под каждую систему отдельное приложение.

2023 год Windows Forms или WPF?
WPF конечно - нет ограничений по созданию графического интерфейса. Именно из за этого отошел от Windows Forms.

Добавлено через 5 минут
Цитата Сообщение от Wolfdp Посмотреть сообщение
Технически расставлять элементы мышкой и кликать по свойствам можно в обоих технологиях, я как-то не уверен что WF тут имеет хоть какое-то преимущество.
Windows Forms конечно проще и быстрее. Если приложения простые - то стоит остановится на Windows Forms.
2
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
20.10.2023, 13:40
Цитата Сообщение от Козадоев Посмотреть сообщение
Windows Forms конечно проще и быстрее.
я либо не понимаю про что речь, либо меня пытаются убедить что toolbox и properties в wpf проекте работают каким-то невероятным образом медленее.

Ну вот самый простой пример -- форма логирования:
- добавить 2 лейбы драгендропом с toolbox на окно
- два тексбокса
- кнопка 1 шт
- зайти в text|content, удалить/написать нужное. Всякие хоткеи аля F2 приветствуются, но по факту -- лезем в properties
- кликнуть по кнопке два раза и написать обработчик, который обращается к двум textbox по имени.

Я бы даже сказал, что в WPF редакторе как минимум есть привязка к краю прям в графическом дизайнере, что несколько упрощает таскание, а не постоянно лезть в свойства и выставлять от нужно края. Можно на словах пример, который бы показывал что вот так на WF легко и быстро, а на WPF -- нельзя и нужно делать по другому?
3
 Аватар для Andrey-MSK
3376 / 2262 / 388
Регистрация: 14.08.2018
Сообщений: 7,671
Записей в блоге: 4
20.10.2023, 13:50
Козадоев, Wolfdp, В WPF вообще ничего не надо якорить, оно само растянется и сожмётся когда надо и куда надо. Задал отступы (Margin) и готово
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<Border Grid.Row="0"
        Grid.Column="0" Grid.ColumnSpan="2"
        Margin="2"
        Background="LightSteelBlue"
        CornerRadius="2">
    <StackPanel Orientation="Horizontal"
                HorizontalAlignment="Left">
        <TextBlock Text="Перечень чертежей объекта ГП - "
                   Margin="5 5 0 5"
                   Padding="2 2 0 2"
                   FontSize="18"
                   FontWeight="Bold"/>
        <TextBlock Text="{Binding GPlanName}"
                   Margin="0 5 5 5"
                   Padding="0 2 2 2"
                   FontSize="18"
                   FontWeight="Bold"/>
    </StackPanel>
</Border>
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.10.2023, 13:50

Как заполнить форму MS Word из WPF или Windows Forms?
как заполнить документ msWord через форму? Документ строится к примеру таким образом: Фамилия (данные из textBox1) Имя (данные из...

Переход к формам от консоли. Что выбрать - Windows forms или WPF?
Осилил пока страниц 300 &quot;Полное руководство С# 4.0&quot;. Хочу уйти от консоли. Посоветуйте - куда идти? Windows forms, WPF или чего еще может...

Windows Forms или WPF?
Добрый день! У меня есть необходимость написать некую корпоративную CRM систему для нужд компании. Вот думаю, какую технологию...

Используют ли сейчас Windows Forms или все перешли на WPF?
Используют ли сейчас windows forms или все перешли на wpf? Насколько я знаю то винформы очень устарели. Мне интерестно используется эта...

Ввод чисел, расчет по формулам и построение графика. Windows Forms или WPF
Подскажите пожалуйста какое руководство/книгу для WindowsForm. Только начинаю изучать и толком не знаю как и что. Немного читал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru