Преимущество приложения WPF против Winform для бизнес-приложений? [закрыто]

84

Я знаю asp.net и разработку winform. Я не из тех разработчиков, которые бросаются на новую технологию только потому, что она новая. Это должно дать мне дополнительные преимущества, такие как более высокая производительность.

Каковы преимущества WPF перед Winforms для чисто бизнес-приложений? Меня не интересуют дополнительные леденцы, анимация, градиенты, эффекты отображения изображений и т.д., которые предоставляет WPF. Бизнес-приложения предназначены для ввода данных, отчетов и, возможно, некоторых диаграмм и статического отображения фотографий.

Как WPF поможет в этих приложениях? Лучше более богатая привязка данных? WinForm - это отработанная проверенная технология, и мне нравится тот факт, что я могу делать все в Visual Studio по сравнению с несколькими IDE для WPF (семейство VS и Blend). Кроме того, я думаю, что WPF не имеет таких богатых элементов управления привязкой данных, как их аналоги Winform (DataGridView..etc). AFAIK, Microsoft по-прежнему будет поддерживать Winforms в течение многих лет.

Попробуйте убедить кого-нибудь вроде меня переключиться.

Абду
источник
1
Я думаю, что есть веские причины перейти на WPF. Я не хочу повторять только что написанный блог , поэтому помещу ссылку на него здесь.
Энди Браун
7
Это отличный вопрос. Должен быть открыт снова. Я разработчик winform, перехожу на WPF. Кривая обучения огромна. Но будущее за WPF, поскольку это декларативный язык по своей природе, как и HTML. Winform в основном процедурный, что больше подходит для алгоритмов, но более подробен для отображения пользовательского интерфейса. Попробуйте разархивировать файл печати .XPS, вы увидите там WPF xaml. С Winforms слишком много ограничений. Хотя он по-прежнему работает, но WPF "приятный глазу" может помочь снизить уровень стресса пользователя. Вы можете представить несколько строк записи более осмысленным способом, кроме списка или таблицы данных.
Джесон Мартаджая

Ответы:

101

Я знаю asp.net и разработку winform. Я не из тех разработчиков, которые бросаются на новую технологию только потому, что она новая. Это должно дать мне дополнительные преимущества, такие как более высокая производительность.

Для моей команды WPF оказался намного быстрее, чем WinForms при разработке приложений. Недавно мы выпустили приложение среднего размера за 32 человеко-дня. У нас было преимущество в виде опытного разработчика WPF в команде и неопытных ребят, которые стремились изучить технологию. Был высокий моральный дух и впечатляющая производительность.

WinForm - это отработанная проверенная технология, и мне нравится тот факт, что я могу делать все в Visual Studio по сравнению с несколькими IDE для WPF (семейство VS и Blend).

Вы считаете себя программистом вручную или программистом с перетаскиванием? Если вы считаете себя перетягивателем, то текущие инструменты WPF могут вам не подходить. Может дождаться Visual Studio 2010? Я работаю почти исключительно в XAML. Большинство пользователей WPF, вероятно, согласятся, что на данный момент это наиболее эффективный способ создания приложений WPF. Но потом я также создаю свой HTML вручную, так что мне это кажется естественным ...

Каковы преимущества WPF перед Winforms для чисто бизнес-приложений? Меня не интересуют дополнительные леденцы, анимация, градиенты, эффекты отображения изображений и т.д., которые предоставляет WPF.

Раньше я так думал, но недавно я разработал бизнес-приложение, в котором есть градиенты, базовая анимация и эффекты. Эти необычные функции были добавлены для повышения удобства работы пользователей. Почему бизнес-приложения должны быть Battleship Grey? Почему они должны быть непригодными для использования? Конечно, не цвет, градиенты и анимация делают бизнес-приложение пригодным для использования, но использование этих эффектов может помочь пользователю, и это то, что для меня важно. Я мог бы сделать все, что делал в приложении WPF в WinForms - просто это заняло бы гораздо больше времени.

Лучше более богатая привязка данных?

Поддержка привязки данных действительно потрясающая. Это моя самая любимая функция платформы. Ознакомьтесь с этой замечательной шпаргалкой по привязке данных .

Попробуйте убедить кого-нибудь вроде меня переключиться.

Я решил, что не собираюсь никого убеждать перейти на WPF. Разработчики, которых я пытался «убедить» (все опытные разработчики Winforms), обычно боролись с платформой. Они не вкладываются в технологию. Они этого не «понимают». Я призываю людей проверить технологию, чтобы увидеть, подходит ли она им как разработчику. Кривая обучения огромна. Если вы учитесь по книгам, ознакомьтесь с этим сообщением SO, где вы найдете несколько мини-обзоров книг WPF. Если вы учитесь по видео, посмотрите видеоролики windowsclient.net WPF . Если вы узнаете, например, проверить это или этопосле. Забудьте все, что вы знаете о WinForms. WPF действительно кажется ближе к ASP, чем WinForms. Создайте несколько примеров приложений. Посмотрите, работает ли это для вас и вашей команды.

Поскольку вы обладаете разносторонними навыками (навыки asp.net/winform), вы можете увидеть преимущество повышения квалификации в WPF, поскольку оно очень тесно связано с Silverlight. Silverlight заполняет этот пробел между многофункциональными клиентскими приложениями и веб-приложениями.

Я лично считаю, что WPF - лучшая технология на стороне клиента, доступная для .NET framework, и обычно избегаю разработки в WinForms для будущей работы. YMMV

Удачи в вашем решении.

Брэд Лич
источник
10
Замечательный ответ Брэд - наша компания сейчас борется с этим решением. Ваши наблюдения хорошо продуманы и очень согласуются с тем, что мы видели до сих пор. Мы еще не пришли к решению, но ваш абзац «Морской бой» находит у нас большой отклик, поскольку мы видели, как великолепно выглядящий интерфейс влияет на продажи. Спасибо, что нашли время написать отличный ответ.
gidmanma
3
Существует огромная разница между наличием в команде одного опытного разработчика WPF и его отсутствием вообще. Соедините это с крутой кривой обучения, и если вы занимаетесь бизнесом, вы вообще не добьетесь многого. На самом деле WPF отлично подходит, если у вас есть кто-то, кто может направить вас, и не особенно, если вы учитесь в процессе. И если вы это сделаете, приготовьтесь к серьезному рефакторингу.
Сергей Акопов
3
+1 - «Почему бизнес-приложения должны быть Battleship Grey?» - Полностью согласен!
Сэмюэл Слэйд,
5
-1 Если единственная причина для перехода на WPF основана на возможности создавать градиенты и изменять диалоги вашего приложения с «серого линкора», тогда вам действительно нужно научиться использовать WinForms.
deegee
1
+1, полный ответ. Ссылка на видеоролики windowsclient.net WPF не работает, кто-нибудь знает, где их найти?
Дэмиен
11

У меня довольно большой опыт работы с winforms, и я немного поиграл с WPF, но меня продали.

Почему?

  • НАМНОГО больше гибкости. Если вы хотите сделать что-то нестандартное в winforms, это приведет к боли и страданиям, но в WPF это просто.

  • Гораздо лучшая привязка данных

  • Легче разрабатывать (как только вы поймете основные концепции, что, к сожалению, займет некоторое время)

Орион Эдвардс
источник
4

Когда я начал смотреть на WPF, я воспринял его как «Winforms с векторной графикой» и сразу наткнулся на обрыв обучения. Правильный способ перехода от WinForms к WPF - это принять героическую дозу любого наркотика, который попадется вам в руки, чтобы забыть все, что вы знаете, а затем начать с нуля.

А если серьезно - это намного чище и проще, если вы используете такой шаблон, как Model-View-ViewModel. Узнайте больше на The Orbifold , в этой ветке Групп Google и на Channel9.

Тогда в какой-то момент у вас будет прозрение, и вы начнете связывать все данные. Ваш код программной части станет не более чем вызовом InitializeComponent ().

geofftnz
источник
4

Спасибо за сообщение. Моя компания потратила много времени на WinForms. Я не могу представить себе приложение среднего размера за 32 человеко-дня; Наши периоды сертификации составляют месяцы, а циклы выпуска иногда раз в год или дольше (несмотря на то, что мы придерживаемся как можно более близкой философии разработки Agile), такова природа разрабатываемых нами приложений.

Я только что впервые поиграл с WPF и обнаружил, что могу получить некоторые преимущества WPF в WinForms, используя ElementHost. Я расширил WPF TextBox, затем обернул свой расширенный класс в Win Forms UserControl, и теперь у меня есть приложение WinForms, использующее это текстовое поле WPF, с поддержкой проверки орфографии.

Я впечатлен, увидев, что Microsoft подумала об этом (размещение WPF в WinForms и наоборот), так как я действительно не вижу, чтобы моя компания перешла на WPF, если мы не сможем перейти в течение длительного периода времени; просто слишком много вложено в WinForms, чтобы начать заново. Имея свой недавний опыт, я могу начать говорить с некоторыми другими разработчиками о моем недавнем опыте и узнать, что они думают. Я думаю, что к WPF потребуется некоторое время, чтобы привыкнуть, и это согласуется с другими комментариями.

Уэйн Х
источник
0

Просто проверьте результаты поиска прямо здесь, в Stackoverflow, чтобы получить многочисленные ответы. https://stackoverflow.com/search?q=WPF+Winforms

Джоби Джой
источник
3
Надеюсь, вы думаете, что я это уже пробовал!
Абду,
0

Представьте, что вы можете использовать тот же пользовательский интерфейс (XAML) на странице ASP.NET/(Silverlight) в своем настольном приложении. Вы бы построили его только один раз, но подключили к любому из них .... это одна из целей WPF / XAML ... действительно ли мы там? Еще нет, но все ближе.

Webjedi
источник
4
Попытка использовать один и тот же пользовательский интерфейс в Silverlight и настольном приложении - одна из тех вещей, которые теоретически звучат хорошо, но на практике я думаю, что это приведет к плохому пользовательскому интерфейсу на обеих платформах.
Орион Эдвардс,
Да, перекрытие между WPF и Silverlight2 велико, но недостаточно, чтобы сделать ваш код переносимым. Различия в возможностях привязки чрезмерно ограничат вашу разработку WPF.
geofftnz
1
Ну, я сказал, что мы еще не достигли цели ... но это конечная цель.
Webjedi
geofftnz: вы имели в виду ограничить разработку Silverlight ?
Abdu