Почему я должен использовать WPF над Winforms? Любые примеры WPF, превосходящие Winforms?
В WPF по сравнению с Windows Forms есть аналогичный вопрос, в котором есть хорошая информация, но в моем личном опыте я не вижу причин использовать WPF над Winforms. С WPF изначально было много разговоров об этом многопоточном функциональности, но в использовании я не вижу никаких преимуществ.
У меня есть два приложения, которые делают одно и то же: одно в WPF и в Winforms. Приложение Winforms удаляет приложение WPF с точки зрения производительности (в 10 раз) и выглядит так же хорошо.
Конечно, я более разбираюсь в приложениях Winforms, чем WPF.
Ответы
Ответ 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/