Я знаю asp.net и разработку winform. Я не из тех разработчиков, которые бросаются на новую технологию только потому, что она новая. Это должно дать мне дополнительные преимущества, такие как более высокая производительность.
Каковы преимущества WPF перед Winforms для чисто бизнес-приложений? Меня не интересуют дополнительные леденцы, анимация, градиенты, эффекты отображения изображений и т.д., которые предоставляет WPF. Бизнес-приложения предназначены для ввода данных, отчетов и, возможно, некоторых диаграмм и статического отображения фотографий.
Как WPF поможет в этих приложениях? Лучше более богатая привязка данных? WinForm - это отработанная проверенная технология, и мне нравится тот факт, что я могу делать все в Visual Studio по сравнению с несколькими IDE для WPF (семейство VS и Blend). Кроме того, я думаю, что WPF не имеет таких богатых элементов управления привязкой данных, как их аналоги Winform (DataGridView..etc). AFAIK, Microsoft по-прежнему будет поддерживать Winforms в течение многих лет.
Попробуйте убедить кого-нибудь вроде меня переключиться.
Ответы:
Для моей команды WPF оказался намного быстрее, чем WinForms при разработке приложений. Недавно мы выпустили приложение среднего размера за 32 человеко-дня. У нас было преимущество в виде опытного разработчика WPF в команде и неопытных ребят, которые стремились изучить технологию. Был высокий моральный дух и впечатляющая производительность.
Вы считаете себя программистом вручную или программистом с перетаскиванием? Если вы считаете себя перетягивателем, то текущие инструменты WPF могут вам не подходить. Может дождаться Visual Studio 2010? Я работаю почти исключительно в XAML. Большинство пользователей WPF, вероятно, согласятся, что на данный момент это наиболее эффективный способ создания приложений WPF. Но потом я также создаю свой HTML вручную, так что мне это кажется естественным ...
Раньше я так думал, но недавно я разработал бизнес-приложение, в котором есть градиенты, базовая анимация и эффекты. Эти необычные функции были добавлены для повышения удобства работы пользователей. Почему бизнес-приложения должны быть 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
Удачи в вашем решении.
источник
У меня довольно большой опыт работы с winforms, и я немного поиграл с WPF, но меня продали.
Почему?
НАМНОГО больше гибкости. Если вы хотите сделать что-то нестандартное в winforms, это приведет к боли и страданиям, но в WPF это просто.
Гораздо лучшая привязка данных
Легче разрабатывать (как только вы поймете основные концепции, что, к сожалению, займет некоторое время)
источник
Когда я начал смотреть на WPF, я воспринял его как «Winforms с векторной графикой» и сразу наткнулся на обрыв обучения. Правильный способ перехода от WinForms к WPF - это принять героическую дозу любого наркотика, который попадется вам в руки, чтобы забыть все, что вы знаете, а затем начать с нуля.
А если серьезно - это намного чище и проще, если вы используете такой шаблон, как Model-View-ViewModel. Узнайте больше на The Orbifold , в этой ветке Групп Google и на Channel9.
Тогда в какой-то момент у вас будет прозрение, и вы начнете связывать все данные. Ваш код программной части станет не более чем вызовом InitializeComponent ().
источник
Спасибо за сообщение. Моя компания потратила много времени на WinForms. Я не могу представить себе приложение среднего размера за 32 человеко-дня; Наши периоды сертификации составляют месяцы, а циклы выпуска иногда раз в год или дольше (несмотря на то, что мы придерживаемся как можно более близкой философии разработки Agile), такова природа разрабатываемых нами приложений.
Я только что впервые поиграл с WPF и обнаружил, что могу получить некоторые преимущества WPF в WinForms, используя ElementHost. Я расширил WPF TextBox, затем обернул свой расширенный класс в Win Forms UserControl, и теперь у меня есть приложение WinForms, использующее это текстовое поле WPF, с поддержкой проверки орфографии.
Я впечатлен, увидев, что Microsoft подумала об этом (размещение WPF в WinForms и наоборот), так как я действительно не вижу, чтобы моя компания перешла на WPF, если мы не сможем перейти в течение длительного периода времени; просто слишком много вложено в WinForms, чтобы начать заново. Имея свой недавний опыт, я могу начать говорить с некоторыми другими разработчиками о моем недавнем опыте и узнать, что они думают. Я думаю, что к WPF потребуется некоторое время, чтобы привыкнуть, и это согласуется с другими комментариями.
источник
Не совсем дубликат, но вы можете найти этот пост полезным о преимуществах WPF, помимо новых графических элементов.
WPF или WinForms для внутренних инструментов?
источник
Просто проверьте результаты поиска прямо здесь, в Stackoverflow, чтобы получить многочисленные ответы. https://stackoverflow.com/search?q=WPF+Winforms
источник
Представьте, что вы можете использовать тот же пользовательский интерфейс (XAML) на странице ASP.NET/(Silverlight) в своем настольном приложении. Вы бы построили его только один раз, но подключили к любому из них .... это одна из целей WPF / XAML ... действительно ли мы там? Еще нет, но все ближе.
источник