После трех месяцев попыток создать приложение для бизнеса (LOB) на WPF, Я дошел до того, что подумал о том, чтобы вернуться к Windows Forms для своего проекта, и, изучая мнения других людей, наткнулся на эту ветку ...
Да, WPF - блестящая технология, и ее преимущества выходят далеко за рамки простого удовольствия ... прекрасные примеры - возможности создания шаблонов и связывания. Вся объектная модель предлагает большую гибкость и более широкие возможности. Однако это не делает его де-факто платформой для будущих LOB-приложений.
«Проблемы», которые WPF решает с точки зрения отделения графического интерфейса пользователя от бизнес-логики, не являются проблемами, которые нельзя легко решить в Windows Forms, просто начав с правильной архитектуры и мышления. Даже возможности привязки пути к объекту в WPF могут быть воспроизведены в Windows Forms с помощью очень простых вспомогательных классов. Возможности шаблонов данных в WPF очень хороши, но, опять же, это не то, что вы не можете смоделировать в Windows Forms в тех редких случаях, когда вы абсолютно не знаете, какие объекты вы собираетесь представлять в любой данной части. экран.
Windows Forms выходит вперед в плане зрелости. Вы не можете раскрутить дохлого кота в Google, не заглянув в какой-нибудь блог, где кто-то решил проблему Windows Forms за вас. WPF, с другой стороны, имеет сравнительно меньше доступных ресурсов для обучения, меньше доступных настраиваемых элементов управления и не так много решенных проблем, связанных с началом работы.
На пике принятия решения о выборе WPF и Windows Forms должна быть зрелость среды разработки. Редакторы Windows Forms удобны, отзывчивы и интуитивно понятны. Отзывы об ошибках поступают к вам мгновенно, решения обычно очевидны, а цикл компиляция-> отладка-> редактирование в Windows Forms выполняется очень быстро.
Приложения WPF, с другой стороны, имеют сравнительно жалкую поддержку времени разработки, при этом представление дизайна слишком готово к отказу при первом обнаружении ошибки, часто требуя сборки проекта после исправления, прежде чем дизайнер захочет вмешаться снова. Перетаскивание компонентов из набора инструментов также может не поддерживаться, учитывая широкий спектр обстоятельств, при которых он либо вообще не работает, либо дает совершенно неинтуитивные результаты. Несмотря на обещание WpfToolkit, до сих пор нет пригодного для использования DataGrid для WPF, который обеспечивал бы приемлемую производительность или удобство разработки во время разработки.
Отладка приложений WPF немного похожа на старую парадигму отладки ASP.NET ... нажмите F5 -> подождите -> запустить -> ошибка -> стоп -> исправить -> нажмите F5 -> подождите -> запустить -> ошибка -> стон -> стоп -> исправить -> нажмите F5 .... Весь XAML, на котором работает ваша программа, является заблокирован, и отслеживание проблем, связанных с XAML, часто бывает утомительным.
Суть в том, что инструменты разработки для Windows Forms заставят вас работать с внешними интерфейсами за гораздо меньшую часть времени, чем приложение WPF ... особенно, если вы создание сеток «мастер-детали» или интерфейсов, подобных электронным таблицам, которые есть у большинства бизнес-объектов. С Windows Forms вы начинаете с того, что 90% работы уже сделано за вас.
Я большой поклонник архитектуры WPF. Я просто хочу, чтобы набор инструментов времени разработки не выглядел как пре-альфа отладочная сборка.
Изменить: этот ответ был опубликован о .NET 3.5 + Visual Studio 2008, но .NET 4.0 с Visual Studio 2010 поставляется с сеткой данных WPF. Хотя в новый опыт разработки WPF было внесено много улучшений, мой ответ здесь остается неизменным, и я хотел бы добавить следующее предложение:
Если вы спешите заняться разработкой RAD, используйте Windows Forms. Если вы хотите создать хорошо спроектированное, поддерживаемое, масштабируемое, ориентированное на ресурсы, многопользовательское бизнес-приложение, подумайте о ASP.NET MVC + HTML 5 + jQuery ... Мои проекты с этими технологиями привели к лучшему результаты, скорее, для моих клиентов. MVC предлагает те же шаблоны, что и WPF, а jQuery позволяет создавать анимацию и сложные взаимодействия. Что еще более важно, решение ASP.NET MVC + jQuery не требует, чтобы ваши конечные пользователи имели современные рабочие столы с приличным графическим оборудованием.
person
Mark
schedule
04.03.2009