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

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

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

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

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

Ответ 1

Я знаю 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, - это просто заняло бы гораздо больше времени.

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

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

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

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

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

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

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

Ответ 2

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

Почему?

  • МНОГО БОЛЬШЕ. Если вы хотите сделать что-то нестандартное в winforms, возникает боль и страдания, но в WPF это просто.

  • Гораздо лучше привязывать данные

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

Ответ 3

Когда я начал смотреть на WPF, я рассматривал его как "Winforms with Vector Graphics" и бежал прямо в сторону учебного скалы. Правильный способ перехода от WinForms к WPF - взять героическую дозу любого наркотика, на который вы можете положиться, чтобы забыть все, что вы знаете, а затем начать с нуля.

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

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

Ответ 4

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

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

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

Ответ 6

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

Ответ 7

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