Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/88: Рейтинг темы: голосов - 88, средняя оценка - 4.85
-3 / 0 / 6
Регистрация: 21.06.2015
Сообщений: 152

Используют ли сейчас Windows Forms или все перешли на WPF?

11.02.2017, 15:27. Показов 17361. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Используют ли сейчас windows forms или все перешли на wpf? Насколько я знаю то винформы очень устарели. Мне интерестно используется эта технология в современных проектах.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.02.2017, 15:27
Ответы с готовыми решениями:

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

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

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

33
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18240 / 14154 / 5366
Регистрация: 17.03.2014
Сообщений: 28,841
Записей в блоге: 1
11.02.2017, 15:35
taras_student, технология не устарела и её продолжают использовать.
1
Заблокирован
11.02.2017, 16:27
Цитата Сообщение от OwenGlendower Посмотреть сообщение
технология не устарела и её продолжают использовать.
OwenGlendower,
а если не знаешь технологию Windows Forms, имеет ли смысл её сейчас изучать?
Она обладает какими-то преимуществами перед WPF?
Я для себя решил, что на WPF можно сделать всё, что может потребоваться практически и что нужно изучить WPF, а Windows Forms если и использовать, то только в части элементов необходимых для WPF. То есть, отталкиваться именно от WPF. Решил, что Windows Forms отходит постепенно в небытие.
Вы можете раскритиковать такой подход?
Поддержка старых проектов - понятная тема и её можно не поминать.
0
Эксперт .NET
 Аватар для Wolfdp
3788 / 1765 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
11.02.2017, 16:38
Цитата Сообщение от taras_student Посмотреть сообщение
Мне интерестно используется эта технология в современных проектах.
в новых -- нет. Но не редко приходится сопровождать уже написанное, порой даже на 2,0
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
11.02.2017, 22:52
Цитата Сообщение от taras_student Посмотреть сообщение
Мне интерестно используется эта технология в современных проектах.
Прямо сейчас пишу огромный проект на винформах. Американская фирма.
3
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
11.02.2017, 23:07

Не по теме:

Цитата Сообщение от Storm23 Посмотреть сообщение
Прямо сейчас пишу огромный проект на винформах. Американская фирма.
Американцы отстают :D



Добавлено через 8 минут
Storm23, а чем был обоснован выбор WinForms для этого проекта?
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
12.02.2017, 02:13
Цитата Сообщение от TopLayer Посмотреть сообщение
а чем был обоснован выбор WinForms для этого проекта?
Ну конкретно этот проект я не начинал, его начали до меня, примерно пол-года назад. Почему выбрали винформс - точно не знаю. Это десктоп приложение для работы с файлами mmap - поисковик, пакетная обработка файлов, редактор, сравнение и различные манипуляции с контентом файлов. Я думаю особого смысла использовать здесь WPF нету.
Но я работал и в других американских проектах, и тоже по большей части это винформс был. Например, было большое приложение для врачей (система в которой они вбивают, надиктовывают диагнозы, рекомендации, отправляют на сервер, ведут базу пациентов и так далее) - тоже полностью винформс.
Ну наверно где-то используют и WPF, но как для разработки серьезного ПО для работы, а не для вконтактиков - часто выбирают винформы.
4
Эксперт .NET
 Аватар для Wolfdp
3788 / 1765 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
12.02.2017, 07:36
Цитата Сообщение от Storm23 Посмотреть сообщение
но как для разработки серьезного ПО для работы, а не для вконтактиков - часто выбирают винформы.
и почему все считают что WPF имеет лишь визуальное применение?...
0
Эксперт .NET
 Аватар для Usaga
14085 / 9303 / 1347
Регистрация: 21.01.2016
Сообщений: 34,911
12.02.2017, 07:44
Wolfdp, люди стараются выбирать тот инструмент, который хорошо знают. WinForms всё ещё выполняет своё предназначение и позволяет создавать нагруженные и сложные интерфейсы, вот эту технологию и используют.
1
Заблокирован
12.02.2017, 15:16
Цитата Сообщение от Usaga Посмотреть сообщение
WinForms всё ещё выполняет своё предназначение и позволяет создавать нагруженные и сложные интерфейсы, вот эту технологию и используют.
В каких случаях, при создании новых приложений, WinForms имеет преимущества перед WPF?
0
Эксперт .NET
 Аватар для Usaga
14085 / 9303 / 1347
Регистрация: 21.01.2016
Сообщений: 34,911
12.02.2017, 15:19
titan4ik, в оговоренных мною выше: если человек хорошо знает WinForms и от приложения не требуется красивых свистелок-перделок.

Добавлено через 1 минуту
Если технология хорошо выполняет поставленные перед ней задачи, то бросать её во имя моды не имеет смысла.
4
Эксперт .NET
 Аватар для Wolfdp
3788 / 1765 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
12.02.2017, 19:01
Цитата Сообщение от Usaga Посмотреть сообщение
люди стараются выбирать тот инструмент, который хорошо знают.
Я понимаю, что если человек всю жизнь делал на формах, а WPF только начал учить, то новый проект будет делать на формах. Вопрос был, почему я очень часто наблюдаю в разговорах, что вся "фича" WPF -- няшный интерфейс? Ни ресурсы, ни биндинг, ни более простое вложение контроллеров, не локализация через xaml, а именно
Цитата Сообщение от Usaga Посмотреть сообщение
красивых свистелок-перделок
Цитата Сообщение от titan4ik Посмотреть сообщение
В каких случаях, при создании новых приложений, WinForms имеет преимущества перед WPF?
Если вруг придется писать на 2.0 или интегрировать в другой WinForm. В обоих случаях все уперается в поддержку преведущей версии.
1
 Аватар для SharpDeveloper
141 / 138 / 22
Регистрация: 16.02.2012
Сообщений: 453
12.02.2017, 19:43
WinForms безнадежно устарели. В современных проектах все перешли на WPF.
0
 Аватар для skilllab
296 / 236 / 58
Регистрация: 03.02.2011
Сообщений: 2,045
Записей в блоге: 1
12.02.2017, 20:05
Пример смешения "рюшечек", и беспощадного ActiveX.
Только недавно поборол глюк, когда есть ElementHost а в нём вся красота WPF. При изменении размеров контрола или при банальной прокрутке, всё WPF-овское задваивалось, накладывалось и вообще))) Глюк связан с отображением графики вообще.
А было ещё "знаменитое", когда тот же ElementHost на WF, в нём TextBox на WPF. Хэндл не перехватывался - как результат в текстбокс тупо ничего нельзя было вбить.
Это я к чему, лучше что-то одно выбрать
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
12.02.2017, 22:49
Цитата Сообщение от Wolfdp Посмотреть сообщение
почему я очень часто наблюдаю в разговорах, что вся "фича" WPF -- няшный интерфейс? Ни ресурсы, ни биндинг, ни более простое вложение контроллеров, не локализация через xaml
Ну наверно потому что, все это можно сделать и в винформах. Никто не мешает вам сделать нестандартный биндинг, свои контролы, MVVM. Или использовать готовое типа Telerik, DevExpress. Ну а xaml это скорее минус чем плюс .
Принципиальное различие между WPF и винформами - это платформа - winAPI против DirectX. Все остальное не так важно.
2
Эксперт .NET
 Аватар для Wolfdp
3788 / 1765 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
13.02.2017, 05:49
Цитата Сообщение от Storm23 Посмотреть сообщение
Ну наверно потому что, все это можно сделать и в винформах.
Хорошо, поправте если не прав:

WinFroms
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class TestModel : INotifyPropertyChanged
    {
        private string _testField;
 
        public string TestField
        {
            get { return _testField; }
            set
            {
                _testField = value;
                InvokePropertyChanged(new PropertyChangedEventArgs("TestField"));
            }
        }
 
        public event PropertyChangedEventHandler PropertyChanged;
 
        public void InvokePropertyChanged(PropertyChangedEventArgs e)
        {
            PropertyChanged?.Invoke(this, e);
        }
 
        public Form1()
        {
            InitializeComponent();
 
            var model = new TestModel();
 
            label1.DataBindings.Add("Text", model, "TestField");
            textBox1.DataBindings.Add("Text", model, "TestField");
        }
WPF
XML
1
2
3
4
    <Grid x:Name="grid1">
        <TextBox x:Name="textBox" Text="{Binding Path=TestField}" />
        <Label x:Name="label" Content="{Binding Path=TestField }" />
    </Grid>
C#
1
2
            var model = new TestModel() { };
            grid1.DataContext = model;
Т.е. в WPF биндинг на UI части по сути вынесен в само представление, без дополнительных ивентов в самой модели. В формах нам нужно вручную сообщать внутри моделей об изменениях.

p.s. порог вхождения в WPF просто адский. =_=
0
Эксперт .NET
 Аватар для Usaga
14085 / 9303 / 1347
Регистрация: 21.01.2016
Сообщений: 34,911
13.02.2017, 06:37
Цитата Сообщение от Wolfdp Посмотреть сообщение
порог вхождения в WPF просто адский. =_=
Я бы не сказал, что именно адский. Выше чем в WinForm, да, но и отдача выше: код чище и проще.
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
13.02.2017, 09:36
Цитата Сообщение от Storm23 Посмотреть сообщение
Прямо сейчас пишу огромный проект на винформах
Теоретически, если изначально в архитектуру заложить отделение View от модели, просунув между ними прослойку абстракции, то UI можно прикрутить какой угодно. Если делаете так, то фраза "пишу проект на винформах" звучит некорректно. Или заказчик принципиально хотел WinApi`шный интерфейс?

Добавлено через 2 минуты
Цитата Сообщение от SharpDeveloper Посмотреть сообщение
WinForms безнадежно устарели. В современных проектах все перешли на WPF.
Смелое, но неверное замечание.

Добавлено через 2 минуты
Цитата Сообщение от Wolfdp Посмотреть сообщение
Т.е. в WPF биндинг на UI части по сути вынесен в само представление, без дополнительных ивентов в самой модели. В формах нам нужно вручную сообщать внутри моделей об изменениях.
Никто не говорит, что в Винформах биндинг сделать так-же просто, как в WPF, но ведь можно. Тем-более, что есть и другие схемы построения архитектуры, не подразумевающие автоматический биндинг, например MVP.

Добавлено через 10 минут
Цитата Сообщение от taras_student Посмотреть сообщение
Используют ли сейчас windows forms или все перешли на wpf?
Про всех сказать не могу, для себя определил следующие критерии:
1) Программа, не требующая особого пользовательского участия. Запустилась, сделала дело, написала "Ок" или "Не Ок" - консоль.
2) Минимальное участие пользователя - нажать кнопочку и/или ввести пару циферок (например, программа для удалённого обновления ПО наших контроллеров, где пользователь выбирает файл прошивки, задаёт адрес контроллера и нажимает кнопочку "Обновить") - винформ.
3) Программа с более сложным пользовательским интерфейсом, расчитаная, на "внешнего" пользователя - WPF.

Здесь надо оговориться, что, как я выше писал, паттерн MVC и его производные подразумевают отделение реализации UI от логики работы, что позволяет написать основной функционал отдельно и прикручивать к нему любой пользовательский интерфейс, вплоть до WEB`а.
Конкретно в винформах меня подкупает возможность реализации MDI "из коробки" и это "тот-самый тёплый ламповый" MDI (дочерние окна в родительском), а не модный нынче а-ля Photoshop (куча окошек не связанных между собой).
4
Заблокирован
13.02.2017, 10:39
Цитата Сообщение от aquaMakc Посмотреть сообщение
2) Минимальное участие пользователя - нажать кнопочку и/или ввести пару циферок (например, программа для удалённого обновления ПО наших контроллеров, где пользователь выбирает файл прошивки, задаёт адрес контроллера и нажимает кнопочку "Обновить") - винформ.
А WPF в данном случае (простой интерфейс) чем-то менее удобен? Чем именно?

Цитата Сообщение от aquaMakc Посмотреть сообщение
Конкретно в винформах меня подкупает возможность реализации MDI "из коробки" и это "тот-самый тёплый ламповый" MDI (дочерние окна в родительском), а не модный нынче а-ля Photoshop (куча окошек не связанных между собой).
А в WPF (по сравнению с Windows Forms) утрачена возможность делать что-то подобное? То есть, вообще невозможно, или не так удобно (не так просто, не так логично)?
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
13.02.2017, 10:50
Цитата Сообщение от titan4ik Посмотреть сообщение
А WPF в данном случае (простой интерфейс) чем-то менее удобен? Чем именно?
Для этих задач WPF избыточен. Да и "набросать" интерфейс мышкой проще в Формах. Конкретно в нашем случае с WPF другая проблема - есть своя библиотека, с которой надо работать, написанная ОООЧЕНЬ давно, при подключении которой к WPF приложению - всё крашится. Разобраться пытался, но там просто дичь какая-то связанная с хранением времени в double и падении системной библиотеки WPF при попытке работы с этим типом. В общем оказалось проще делать приложение на Винформах, чем рефакторить старую библиотеку (которую уже 3 года как планируется переписать заново).
Цитата Сообщение от titan4ik Посмотреть сообщение
А в WPF (по сравнению с Windows Forms) утрачена возможность делать что-то подобное?
Да. MDI в WPF делается сторонними библиотеками, на выходе получаем интерфейс в стиле Visual Studio. А мне всё-таки ближе такой:
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.02.2017, 10:50
Помогаю со студенческими работами здесь

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

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

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

Проблемы с конструкцией async\await при использовании WPF или Windows Forms
Добрый день! Написал библиотечку, использующую, в том числе конструкции async-await. Всё работает, при компиляции в виде консольного...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru