Подтвердить что ты не робот

Почему я должен использовать WPF над Winforms? Любые примеры WPF, превосходящие Winforms?

В WPF по сравнению с Windows Forms есть аналогичный вопрос, в котором есть хорошая информация, но в моем личном опыте я не вижу причин использовать WPF над Winforms. С WPF изначально было много разговоров об этом многопоточном функциональности, но в использовании я не вижу никаких преимуществ.

У меня есть два приложения, которые делают одно и то же: одно в WPF и в Winforms. Приложение Winforms удаляет приложение WPF с точки зрения производительности (в 10 раз) и выглядит так же хорошо.

Конечно, я более разбираюсь в приложениях Winforms, чем WPF.

4b9b3361

Ответ 1

Здесь есть еще одна дискуссия по этому вопросу: Когда Windows Forms правильный выбор против WPF?

Приложение Winforms удаляет WPF применения в терминах (в 10 раз) и выглядит так же хорошо.

WPF - это нечто большее, чем просто причудливая графика... Я не дизайнер, черт возьми, у меня нет чувства цвета (до такой степени, что моя невеста решила Я больше не могу покупать свою одежду), но я люблю WPF. Например, поддержка DataBinding не говоря уже о том, как легко создать ItemTemplate для ListBox (помните, как переопределить методы рисования в Windows Forms, чтобы получить 2 строки текста и изображение в элементе ListBox?)

Что касается производительности... по моему опыту, улучшение можно только заметить, если вы используете Windows Vista/7 с графическим процессором. (И, конечно, как вы пишете код).

Возможно, Microsoft ошиблась на рынке, что WPF - это все о розовой слоновой графике, в то время как она делает гораздо больше. (Они совершили аналогичную ошибку с поспешным выпуском Silverlight 1, которые, на мой взгляд, должны были пропустить все вместе).

Ответ 2

WPF

  • позволяет разработчику/не-программисту улучшить внешний вид пользовательского интерфейса, отдельно от кода. Дизайнеры могут использовать такие инструменты, как Expression Blend, чтобы сильно изменить внешний вид приложения.
  • знания, необходимые для написания WPF, практически полностью переносятся для написания кода Silverlight, поэтому вы поднимаетесь на одну кривую обучения для двух технологий.
  • активно и активно продвигается Microsoft и, вероятно, больше будущего, чем WinForms. WinForms пойдет по пути MFC до WPF.

с другой стороны:

  • кривая обучения более тяжелая для WPF, чем Winforms
  • Поддержка дизайнера отсутствует по сравнению с Winforms, хотя это может измениться с помощью Visual Studio 2010
  • Текущая тенденция заключается в использовании View-ViewModel-Model для создания приложений: это дальнейшее обучение поверх структуры WPF, но стоит усилий, если вы собираетесь создавать что-либо помимо простого пользовательского интерфейса

Если производительность (скорость и требования к ресурсам) являются вашими критериями для хорошей платформы пользовательского интерфейса для Windows, то победитель является родным приложением Win32. Вы принимаете еще одну технологию, которую они могут предложить, и в конечном итоге WPF предлагает больше возможностей, чем WinForms.

Ответ 3

Самая большая причина пойти с WPF - это не глазные конфеты. Реальные выигрыши в плане надежности, производительности и позволяют художественным типам изменять внешний вид вашего пользовательского интерфейса без привлечения инженеров.

Ответ 4

Самая большая проблема с WPF заключается в том, что набор инструментов хромает, а кривая обучения огромна. До сих пор понимание WPF было очень низким в основном из-за проблем, которые я только что упомянул. Согласно Microsoft WPF - это будущее, и они вложили в него значительные средства. Infact следующая версия Visual Studio написана в WPF (http://www.onedotnetway.com/writing-visual-studio-2010-shell-in-wpf-reflects-confidence/)

Однако это еще предстоит выяснить, станет ли WPF когда-либо распространяться. Рамка потрясающая, и она может действительно по-настоящему крутить вещи, в основном связанные с глазными конфетами. Microsoft называет его UX, но на простом английском языке это глазные конфеты. Большинство приложений не нуждаются в этом.

Ответ 5

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

Хорошее сравнение будет касаться разницы между приложением WinForms и приложением Silverlight. Silverlight и WPF имеют общую структуру, и это поможет вам понять различия между ними.

Посмотрите на эту библиотеку silverlight и wpf, и вы увидите некоторые вещи, которые можно сделать в среде wpf.

Библиотека Silverlight: http://demos.telerik.com/silverlight/

Библиотека WPF: http://demos.telerik.com/wpf/