Каково различие между WPF и WinForms?

if ( $('#myDiv').size() > 0 ) { //do something }

size() количества число элементов, возвращенное селектором

34
задан Max Galkin 28 January 2010 в 13:58
поделиться

6 ответов

  • Чтобы узнать.
  • Чтобы иметь больший (т.е. любой) контроль над внешним видом вашей программы
  • Чтобы получить выгоду от более простого связывания данных, триггеров, стилей

(я не вижу, какая поддержка БД есть и при чем тут)

14
ответ дан 27 November 2019 в 16:06
поделиться

One obvious answer is that WPF offers a richer user experience than WinForms, allowing for animations even 3D in the user interface for example.

From a development perspective it goes a long way to enforce the separation of the User Interface (in the XAML) from the business logic (in VB.NET or C#) which is always a good thing.

A Google search for "WPF vs WinForms" brings up lots of pages that discuss this issue. I won't repeat all their findings here, but this page raises some interesting points:

  1. Databinding in WPF is superior to what Windows Forms offers.
  2. UI and C# business logic can be cleanly separated in WPF
  3. Storyboard
  4. Data/control templates – a much cleaner way than anything Windows Формы могут предложить.
  5. Стили - круто и просто. Так легко стилизовать все ваши кнопки в приложение, чтобы иметь тот же вид и чувствовать.
  6. Даже если конструктор VS сломается, его легко закодировать на XAML.
  7. Виртуализация пользовательского интерфейса - у меня есть сетки со 100 тыс. строк, отмечающие движущиеся рынок. Производительность была бы ужасной если бы не визуализация пользовательского интерфейса которые предоставляются бесплатно.
  8. Поддержка 3D.
  9. Ничего научного, но разработка пользовательского интерфейса в WPF кажется более быстрой - возможно, это просто потому, что WPF приложение выглядит круче в конце итерация, а может быть, потому что разработка действительно идет быстрее.
  10. Я могу добавить в свою команду инженера по пользовательскому опыту, и без C # знания, в которых он может творить чудеса Expression Blend и дайте приложение для фронт-офиса a макияж, который гарантированно выиграет над бизнес-пользователями.
59
ответ дан 27 November 2019 в 16:06
поделиться

WPF - текущая платформа для разработки настольных приложений Windows. Это современная, продвинутая платформа с аппаратным ускорением для разработки приложений, в которых сохраняется разделение задач. Он поддерживает расширенный рендеринг 2D-векторной и 3D-графики, предоставляя огромный спектр возможностей для создания многофункциональных, интерактивных и качественных пользовательских интерфейсов.

Winforms, с другой стороны, предоставляет базовую платформу для разработки «классических» приложений Windows с вашим стандартным внешним видом с использованием стандартных элементов управления. Он не предлагает богатых возможностей аппаратного ускорения, векторных 2D и 3D возможностей, которые предлагает WPF. Приложения Winforms, как правило, имеют гораздо большую связь между поведением приложения и пользовательским интерфейсом (представлением), что представляет собой менее гибкую платформу для разработки приложений.

Что касается того, что вы выберете, это полностью зависит от ваших потребностей. Если вам нужна векторная графика, 3D-рендеринг, возможность создавать богатые, интерактивные, анимированные, современные пользовательские интерфейсы и / или вы хотите сохранить разделение проблем, WPF определенно будет правильным выбором. Если вам ничего из этого не нужно, и вам просто нужно создать простой пользовательский интерфейс, решающий простую проблему, winforms прекрасно подойдет вам.

16
ответ дан 27 November 2019 в 16:06
поделиться

Если вы хотите иметь богатый пользовательский интерфейс, подобный изображению, опубликованному в вашем предыдущем вопросе , Я бы рекомендовал использовать WPF. Помимо упрощения создания красивого приложения, это также технология, которую Microsoft будет продвигать в будущем. Новых разработок для Winforms почти нет.

1
ответ дан 27 November 2019 в 16:06
поделиться

Никто не упоминал о более эффективных возможностях тестирования приложений WPF (если они написаны правильно, например, на основе шаблона MVVM).

2
ответ дан 27 November 2019 в 16:06
поделиться

WPF может в некоторой степени использовать аппаратное ускорение, но со временем ожидается, что оно улучшится.

Кроме того, благодаря XAML у вас есть больше возможностей для «выполнения чего-то», декларативного или программного, или их сочетания.

Microsoft больше не занимается активной разработкой winforms, они сильно продвигают WPF, и не зря.

WPF позволяет значительно упростить проектирование без учета разрешения. Чтобы добиться этого в winforms, требуется на много больше работы.

Шаблон MVVM уже упоминался в одном из комментариев, он позволяет проводить реальное модульное тестирование по сравнению с тестированием на основе графического интерфейса пользователя для вашего кода, что, по моему опыту, является большим выигрышем.

5
ответ дан 27 November 2019 в 16:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: