При создании нового GUI действительно ли WPF является предпочтительным вариантом по Windows Forms? [закрытый]

Поздно к вечеринке (как обычно), однако моя проблема заключалась в том, что я написал плохой SQL (будучи новичком), а несколько процессов имели блокировку записи (ов) & lt; - не уверены в соответствующей формулировке. Мне пришлось просто: SHOW PROCESSLIST, а затем убить идентификаторы, используя KILL <id>

47
задан Matt Hamilton 25 September 2008 в 11:15
поделиться

33 ответа

WPF позволяет Вам сделать некоторые удивительные вещи, и я ЛЮБЛЮ его..., но я всегда чувствую себя обязанным квалифицировать мои рекомендации, каждый раз, когда разработчики спрашивают меня, думаю ли я, что они должны перемещаться в новую технологию.

действительно ли Ваши разработчики желают (предпочтительно, НЕТЕРПЕЛИВЫ) провести время, которое требуется, чтобы учиться использовать WPF эффективно? Я никогда не думал бы для высказывания этого о MFC, или Windows Forms или даже неуправляемом DirectX, но Вы, вероятно, НЕ хотите команду, пытающуюся "взять" WPF в течение нормального dev. цикла для поставлющегося продукта!

Делают по крайней мере один или два из Ваших разработчиков имеют некоторую чувствительность дизайна и делают у людей с заключительными полномочиями дизайна есть достойное понимание вопросов развития, таким образом, можно усилить возможности WPF создать что-то, что на самом деле ЛУЧШЕ, вместо просто более "красочного", показывая бесплатную анимацию?

Делает некоторый процент Вашей целевой клиентской базы, работает на интегрированных наборах графического процессора, которые не могли бы поддерживать функции, которые Вы планировали - или они все еще выполняют Windows 2000, которые устранили бы их как клиентов в целом? Некоторые люди также спросили бы, заботятся ли Ваши клиенты на самом деле о расширенном зрительном ряде, но, пережив внутреннюю компанию "Наши корпоративные клиенты не заботятся о цветах и изображениях" о дебатах в начале 90-х, я знаю, что хорошо разработанные решения от Ваших конкурентов ЗАСТАВЯТ их заботиться, и реальный вопрос состоит в том, являются ли условия правильными, чтобы позволить Вам предложить что-то, что заставит их заботиться ТЕПЕРЬ.

проект включает наземную разработку, по крайней мере, для уровня представления, для предотвращения дополнительной сложности попытки сцепиться в несовместимые леса прежней версии (Interop с Формами Победы НЕ является бесшовным)?

Ваш менеджер может принять (или быть отвлечен от того, чтобы замечать), значительное ПОНИЖЕНИЕ производительности разработчика в течение четырех - шести месяцев?

Эта последняя проблема происходит из-за того, о чем мне нравится думать как природа "FizzBin" WPF с десятью различными способами реализовать любую задачу и никакую очевидную причину предпочесть, чтобы один подход к другому и мало руководства, доступного, помогли Вам сделать выбор. Не только будет недостатки любого выбора, который Вы делаете, становятся ясными только намного позже в проекте, но у Вас, как фактически гарантируют, будет каждый разработчик на Вашем проекте, принимающем другой подход, приводящий к сильной головной боли обслуживания. Самый печальный из всех несоответствия, которые постоянно сбивают Вас с толку, поскольку Вы пытаетесь изучить платформу.

можно найти больше всесторонней WPF-связанной информации в записи на моем блоге:

http://missedmemo.com/blog/2008/09/13/WPFTheFizzBinAPI.aspx

72
ответ дан AndyL 7 November 2019 в 22:46
поделиться

Если Вы имеете лицензию MSDN, проверяете инструменты Expression . Это разработано явно для WPF, экспорт непосредственно в Visual Studio, и это может помочь упростить Ваш переход.

4
ответ дан Peter Mortensen 7 November 2019 в 22:46
поделиться

Как премия стороны, Silverlight основана на WPF, и запускающийся с любого позволяет Вам получить знание как для работы с другим. Если дела продолжают идти, веб-, имеющие предварительные знания (и библиотека существующего кода) для передачи легко браузеру (или Windows Live Mesh) могли бы помочь дать программному обеспечению дополнительный арендный договор относительно жизни.

3
ответ дан Nidonocu 7 November 2019 в 22:46
поделиться

Если Вы только заботитесь о поддержке Windows и не возражаете против времени, это берет для изучения его, пойдите с WPF. Это быстро, гибко, легко к перекоже и имеет большие инструменты для работы с ним.

3
ответ дан Cody Brocious 7 November 2019 в 22:46
поделиться

Если Вы решаете пойти с WPF, считая за и против уже объясненными в вышеупомянутых ответах, я настоятельно рекомендую прохождение через этого dnrTV эпизод с Billy Hollis

3
ответ дан Vin 7 November 2019 в 22:46
поделиться

В эпизод 315 DotNetRocks, Brian Noyes обсуждает это экстенсивно.

3
ответ дан Jim Anderson 7 November 2019 в 22:46
поделиться

Scott жалуется на Смешение Выражения и как оно не имеет смысла ему как разработчик. Моя первая реакция на Смешение Выражения была похожа на это. Однако теперь я рассматриваю его как неоценимый инструмент, но это действительно зависит от того, какой разработчик Вы.

я - разработчик пользовательского интерфейса, который должен был выполнить Интегратор роль, и я в конечном счете нашел Смешение Выражения неоценимым для создания стилей и шаблонов управления способом WYSIWYG. У меня почти всегда есть Смешение Выражения и Visual Studio работа того же проекта одновременно.

я также думаю, что, играя вокруг в Смешении Выражения и смотря на XAML, который выводит слюну, является отличным способом изучить API WPF... во многом как использование разработчика в Windows Forms и проверке кода C#, который это выкладывает, полезно в изучении, как использовать независимо от того, что Вы разрабатываете там.

Смешение Выражения полезно. Просто дайте ему попытку, особенно если Вы работаете над зрительным рядом для приложения.

2
ответ дан Peter Mortensen 7 November 2019 в 22:46
поделиться

Самое большое соображение при решении, какой использовать должен рассмотреть то, что установила Платформа.NET целевая аудитория. Я нахожу, что у большего количества людей есть более низкие версии Платформы.NET, которые только поддерживают Windows Forms, но это - просто мой личный опыт.

6
ответ дан Peter Mortensen 7 November 2019 в 22:46
поделиться

WPF делает намного легче вручить от дизайнерской работы форм фактическому разработчику, не разработчику в одежде разработчика. Если бы это - что-то, что требуется сделать, WPF является ответом. Если разработанные кнопки классического Windows прекрасны, то Windows Forms являются, вероятно, способом пойти.

(Несколько ответов предъявляют претензию, что необходимо использовать WPF, если дизайн интерфейса "важен для Вас", но это довольно неопределенно. Дизайн интерфейса всегда "важен".)

5
ответ дан Peter Mortensen 7 November 2019 в 22:46
поделиться

WPF идет со многими преимуществами, такими как превосходные функции привязки данных, разделение проблем, разделение дизайна и логики и т.д.

Как разработчик, я наслаждаюсь способностью определить мой UI с помощью XAML в противоположность тому, чтобы быть связанным с разработчиком Windows Forms, и я чувствую себя хорошим, зная, что я могу рассчитывать на другого разработчика, чтобы заставить мое приложение выглядеть хорошим.

Лично я не забочусь, что более старые версии Windows не поддерживаются, но одна из больших проблем с WPF, это, (в настоящее время/когда-либо) не поддерживается Моно ( http://www.mono-project.com ), таким образом, приложения WPF не будут работать на Mac OS или Linux. (Altough приложения Silverlight будет).

, Если у Вас есть время и ресурсы для инвестирования в изучение WPF, сделайте это! Даже если Вы собираетесь быть записью приложения Silverlight для поддержки нескольких ОС.

, Если Вам нужны настольные приложения для работы палки нескольких ОС с SWF.

8
ответ дан TimothyP 7 November 2019 в 22:46
поделиться

WPF требует любого Windows  Vista или Windows XP SP2, который не является обременительным требованием, но это - соответствующее. Если Вы захотите работать на Windows 2000 (который некоторые люди все еще делают), то WPF не будет работать на Вас.

WPF является также более новой технологией и не столь доказанный как Windows Forms, таким образом, Вы могли бы выбрать Windows Forms в качестве менее опасной опции, особенно для объемных приложений.

Однако да WPF является будущим. Visual Studio 2010 переписывается в WPF, который, вероятно, будет самым большим приложением WPF до настоящего времени и это также будет реальный тест для технологии.

, Очевидно, приложения Windows Forms прежней версии были бы другой ситуацией, где это - верный выбор.

62
ответ дан Peter Mortensen 7 November 2019 в 22:46
поделиться

Как другие сказали, существуют преимущества и недостатки так или иначе, Вы идете сюда. Преимущества WPF, как другие сказали, включают:

  • способность сделать очень богатый UIs относительно легко.
  • Более легкая анимация и специальные эффекты
  • Свойственная масштабируемость (используют Windows  инструмент усилителя Vista на приложении WPF, и на приложении Windows Forms: Обратите внимание, что в приложении WPF, все векторное искусство масштабируется красиво)
  • (ПРЕДУПРЕЖДЕНИЕ МНЕНИЯ), я чувствую, что "легче" сделать ориентированный на документ на системы в WPF

Однако существуют недостатки к WPF, где Windows Forms преуспевают:

  • комплект управления ящика входящих сообщений WPF намного более ограничен, чем те из Windows Forms.
  • существует большая поддержка в стороннем пространстве управления для Windows Forms. (Это изменяется, конечно, но думайте об этом: Windows Forms были вокруг с 2001; WPF всего несколько лет. Преимуществом времени Windows Forms имеют большую поддержку в сообществе.)
  • Большинство разработчиков уже знает Windows Forms; WPF обеспечивает новую кривую обучения

Наконец, примите во внимание, что можно создать большой, привлекательный и привлекательный UIs или в инструменте, если Вы делаете работу (или используйте правильные сторонние программы). В конце дня ни один не обязательно лучше при всех обстоятельствах. Используйте то, что чувствует себя хорошо для проекта.

51
ответ дан Peter Mortensen 7 November 2019 в 22:46
поделиться

После трех месяцев попытки выработать направление деятельности (LOB) приложение на WPF, я достиг точки рассмотрения, что возвращение к Windows Forms для моего проекта, и в исследовании мнений других людей, столкнулось с этим потоком...

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

"проблемами", которые WPF решает с точки зрения разделения GUI от бизнес-логики, не являются проблемы, которые не могут быть с готовностью решены в Windows Forms путем простого запуска с правильной архитектуры и мышления. Даже контур объектов обязательные возможности WPF может быть воспроизведен в Windows Forms с некоторыми очень простыми классами помощника. Шаблонные возможности данных WPF очень хороши, но снова они - ничто, что Вы не можете моделировать в Windows Forms в тех редких случаях, когда Вы абсолютно не знаете точно, что возражает, что Вы собираетесь представить на любой данной части экрана.

, Где гонки Windows Forms вперед с точки зрения зрелости. Вы не можете качать мертвую кошку на Google, не поражая некоторый блог, где кто-то решил проблему Windows Forms для Вас. WPF, с другой стороны, имеет в наличии сравнительно меньше ресурсов изучения, меньше доступных пользовательских элементов управления, и не имел как многие его решенные проблемы роста.

На пике создания WPF по сравнению с решением Windows Forms должна быть зрелость среды разработки. Редакторы Windows Forms являются ловкими, быстро реагирующими и обладающими интуицией. Обратная связь об ошибках добирается до Вас немедленно, решения обычно очевидны, и компиляция-> отладка->, цикл редактирования в Windows Forms очень быстр.

приложения WPF, с другой стороны, имеют сравнительно жалостную поддержку режима разработки, с режимом конструктора, слишком готовым пойти на попятный при первом обнаружении ошибки, часто требуя сборки проекта после фиксации, прежде чем разработчик будет готов умереть снова. Drag'n'drop компонентов от панели инструментов не мог бы также поддерживаться, даваться обширный диапазон обстоятельств, при которых он или не работает вообще или приводит к абсолютно неинтуитивным результатам. Несмотря на обещание WpfToolkit, все еще нет применимого DataGrid для WPF, который приводит к любому виду разумной производительности или дружелюбия времени проектирования.

Отладка приложения WPF немного похожи стары ASP.NET, отлаживая парадигму... F5 хита-> ожидает-> запуск-> ошибка->, остановка-> фиксирует->, F5 хита-> ожидает-> запуск-> ошибка-> стон->, остановка-> фиксирует-> F5 хита.... Весь XAML, который выполняет Ваша программа, заблокирован, и разыскивающий XAML, определенные проблемы часто утомительны.

нижняя строка, проще говоря, то, что средства разработки для Windows Forms собираются иметь Вас строчащий фронтенды в части времени приложения WPF... особенно , если Вы создаете сетки основной детали или электронную таблицу как интерфейсы, которые имеет большая часть LOB. С 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 не требует, чтобы Ваши конечные пользователи имели современные рабочие столы с достойным аппаратным обеспечением машинной графики.

148
ответ дан Peter Mortensen 7 November 2019 в 22:46
поделиться

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

целое понятие предоставляет себя более легкому дизайну IMO.

14
ответ дан GEOCHET 7 November 2019 в 22:46
поделиться

Существует много различий. Мы любили WPF за:

  1. декларативный стиль программирования.
  2. Анимации и изменения состояния
  3. Смешение Выражения является большим инструментом
  4. Хорошая поддержка стиля.

Однако мы придерживались Windows Forms потому что:

  1. дополнительное время это берет для разработчика для изучения WPF, когда они уже знают Windows Forms.
  2. WPF не будет работать на Windows 2000 или ниже.
7
ответ дан Peter Mortensen 7 November 2019 в 22:46
поделиться

Ну, один ответ, "когда необходимо поддерживать 1.1 или 2.0", так как WPF является частью.NET 3.0. Существуют известные ограничения ОС для WPF, и существует очевидная проблема навыков: если у Вас есть команда разработчиков, которые знают winforms, то может быть легче оказаться устойчивым кодом с winforms. Однако, если Вы пишете много кода UI, вероятно, стоит начать брать WPF в какой-то момент.

WPF также совместно использует много вместе с Silverlight, таким образом, это обладает передаваемыми преимуществами.

8
ответ дан Marc Gravell 7 November 2019 в 22:46
поделиться

Рассмотрите WPF, если дизайн интерфейса важен для Вас, потому что WPF может обеспечить лучший опыт UI. Но Windows Forms имеют на его стороне годы эволюции, таким образом, это, как доказывают, работает, и можно найти многих сведущих программистов для той платформы.

Также мобильность может быть проблемой, WPF только работает с Windows  XP SP2 и.

кроме того, WPF имеет крутую кривую обучения, означая, что не легко поставить качественный продукт, не имея определенного опыта WPF.

9
ответ дан Peter Mortensen 7 November 2019 в 22:46
поделиться

Обе из технологий имеют свои за и против. В крупном приложении с "классическим" UI я использовал бы Windows Forms. В приложении, которые требуют богатого пользовательского интерфейса (очищение, анимации, изменяя пользовательский интерфейс) я выбрал бы WPF. Проверьте статью WPF по сравнению с Windows Forms , сравнивающими WPF и Windows Forms.

18
ответ дан Peter Mortensen 7 November 2019 в 22:46
поделиться

Мы в настоящее время переписываем наше приложение в WPF от Windows Forms. Да, существует крутая кривая обучения, и необходимо "повторно изучить" некоторые вещи, но это таким образом стоящее того. И объединенный с WCF, мы находим, что пишем меньше кода, быстрее, и более устойчивые чем когда-либо прежде.

Палка с ним некоторое время, читайте книга Adam Nathan и проверьте когда-либо растущую библиотеку сторонних средств управления как те от Telerik и ComponentOne. Одно отрицание, по моему мнению, то, что средство проектирования, Смешение Выражения , очень неудобно использовать. Последняя версия все еще в бета-версии, но она просто не чувствует себя хорошо к тем из нас, кто использовал Visual Studio в течение многих лет. Да, это главным образом для разработчиков, но некоторые вещи Вы просто не можете сделать в Visual Studio.

11
ответ дан Peter Mortensen 7 November 2019 в 22:46
поделиться

Преимущества WPF состоят в том, что намного легче создать хорошо выглядящий GUI с пользовательскими элементами управления и анимациями. WPF также помогает далее serparate представлению и логическим слоям. Если у Вас есть разработчики, это позволяет Вам ферме 95% этой работы некодерам и позволяет кодерам работать над логикой. Недостатки являются затратами на программное обеспечение для Смешения Выражений и отсутствием любого кода Visual Studio профильные инструменты, работающие хорошо, поскольку они имеют тенденцию оказываться в вызовах платформ в попытке представить XAML. Я уверен, что существуют другие, но они были только двумя, которые мы действительно видели.

основное соображение состоит в том, если Вы хотите потребовать, чтобы Ваши клиенты должны были установить.NET 3.0 или еще лучшую.NET 3,5 SP1. Вы получите некоторую niegative обратную связь

5
ответ дан Eric J. 7 November 2019 в 22:46
поделиться

Я не соглашаюсь с некоторыми ответами здесь. WPF действительно хорошо подходит для направление деятельности (LOB) приложения. (Клиент LOB дизайна лягушки является лучшим примером). И помимо всех возможностей иметь Ваш UI быть усладой для глаз (который не необходим в бизнес-приложениях), WPF предлагает намного больше для Вас.

функции привязки данных и шаблонной обработки просто превосходят Windows Forms. Это также предлагает намного лучший путь к разделению кода и представления. Мы успешно использовали WPF для 2 Приложений отделов организации в, подходит не больше, чем к 2-3 разработчикам.

самой большой проблемой, с которой Вы столкнетесь, является, вероятно, крутая кривая обучения WPF (по сравнению с Windows Forms), который уменьшит скорость разработки с разработчиками, не привыкшими к WPF.

13
ответ дан Peter Mortensen 7 November 2019 в 22:46
поделиться

Модель программирования для WPF более открыта и гибка, чем Windows Forms, но как ASP.NET MVC, требуется немного больше дисциплины с точки зрения корректной реализации шаблонов Model-View-ViewModel.

Мое первое приложение LOB с WPF закончилось как чрезвычайный failuire, потому что это был пожиратель ресурсов, который остановил очень низкокачественные ноутбуки моего конечного пользователя, стачивающиеся..., и это было в конечном счете потому что я просто lept в с WPF + LINQ  to  SQL и ожидаемый хороший результат... и это - то, куда WPF отличается так сильно от Windows Forms... В Windows Forms можно сойти с рук такая вещь. WPF намного более тяжел на ресурсах, чем Windows Forms, и если Вы не проектируете свое приложение, чтобы быть наклоном, Вы заканчиваете с гориллой за 800 фунтов.

не уклоняются от WPF... исследуют его. Но знайте, что приемлемые грехи кодирования Windows Forms не приведут к хорошим результатам в WPF. Они - существенно различные механизмы, которые предоставляют себя существенно различным шаблонам кодирования.

Последний Word: Если Вы действительно продолжаете WPF, выздоравливаете acquianted с виртуализацией данных для использования со списками и сетками. Что является простым ListItem с привязкой к данным, или GridCell заканчивает тем, что был значительным логическим + визуальный граф объектов в WPF, и если Вы не изучите, как виртуализировать, Вы, приложение не будет работать хорошо на больших наборах данных.

24
ответ дан Peter Mortensen 7 November 2019 в 22:46
поделиться

Существует очень крутая кривая обучения к WPF, и я рекомендую получить очевидные книги сначала ( Adam Nathan , Sells/Griffiths, и Chris Anderson ) и блоги ( Josh Smith , и т.д.). Просто будьте подготовлены к нему и удостоверьтесь, что Ваш проект позволяет Вам время для изучения WPF.

В дополнение к изучению технологии, проведите некоторое время, узнавая, что шаблоны раньше создавали приложения WPF. Образцовый ViewModel Представления (MVVM), кажется, тот, который получил большое принятие.

Лично, я думаю, что WPF стоит того, но быть предупрежденным. Также обратите внимание эффективное ограничение пользователей Windows XP SP2 + и Windows  Vista. Мы приняли то решение, но у Вас могут быть некоторые различные требования.

18
ответ дан Peter Mortensen 7 November 2019 в 22:46
поделиться

Для проектов преобразования (от Visual Basic 6.0), трудно заставить команду переключаться на WPF. Помимо кривой обучения, люди уже привыкли к старому интерфейсу. Windows Forms, хотя будучи постепенно сокращенным, будут вокруг в течение долгого времени все еще.

0
ответ дан Peter Mortensen 7 November 2019 в 22:47
поделиться

Поддержка WPF декларативного UI через XAML, богатую шаблонную обработку средств управления и моделирование и инструменты как Смешение Выражения , делает его намного лучше для разработчиков для работы с разработчиками на том же проекте. Плюс, это дает разработчикам гибкость приложенных свойств зависимости и чрезвычайно мощной привязки данных. Кроме того, Silverlight поддерживает подмножество XAML и тех же классов управления как WPF, таким образом, Ваше приложение может быть портировано как RIA с минимальными усилиями.

я выбрал бы WPF over Windows Forms любой день. Даже если целевые машины только имеют .NET 2.0 , если пользователь может установить дополнительные программы, новый Клиентский профиль Платформы.NET делает довольно легким развернуть приложения WPF.

единственная причина, которую я мог бы решить продолжить работать с Windows Forms, состоит в том, если продукт будет развернут на машинах, которые заблокированы вниз и имеют только.NET 2.0 или.NET 1.1.

1
ответ дан Peter Mortensen 7 November 2019 в 22:47
поделиться

Помимо гибкости в дизайне пользовательского интерфейса, WPF имеет некоторые технические преимущества:

1.) WPF не полагается на объекты GDI. Ну, я думаю, что он использует 2 объекта GDI для экземпляра самого окна, но это практически ничего. Я до некоторой степени участвовал в очень большом внутреннем приложении Windows Forms. Люди в нашем офисе иногда запускают 3 или 4 экземпляра одновременно. Проблема в том, что они часто сталкиваются с ограничением в 10 000 объектов GDI, присущим Windows 2000, XP и Vista. Когда это произойдет, вся ОС перестанет отвечать, и вы начнете видеть визуальные артефакты. Единственный способ исправить это - закрыть приложения.

2.) WPF использует графический процессор. Возможность WPF выгружать часть обработки пользовательского интерфейса на графический процессор просто великолепна. Я только ожидаю, что этот аспект со временем станет лучше. Как бывший любитель программирования OpenGL, я могу оценить мощь, которую дает графический процессор. Я имею в виду, что моя видеокарта за 100 долларов имеет 112 ядер, работающих на частоте 1,5 ГГц каждое (и это ни в коем случае не лучший вариант). Такая мощность параллельной обработки может посрамить любой четырехъядерный процессор.

Однако WPF все еще довольно новый. Он не работает в Windows 2000. Фактически, приложение WPF может медленно запускаться после новой перезагрузки. Обо всем этом я рассказываю в своем блоге:

Однако WPF все еще довольно новый. Он не работает в Windows 2000. Фактически, приложение WPF может медленно запускаться после новой перезагрузки. Обо всем этом я рассказываю в своем блоге:

Однако WPF все еще довольно новый. Он не работает в Windows 2000. Фактически, приложение WPF может медленно запускаться после новой перезагрузки. Обо всем этом я рассказываю в своем блоге: http://blog.bucketsoft.com/2009/05/wpf-is-like-fat-super-hero.html

15
ответ дан 26 November 2019 в 19:07
поделиться

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

В общем, комментарии, которые я сделал выше, все еще актуальны ... Поддержка времени разработки для WPF еще отсутствует. Если вы очень торопитесь выпустить на рынок приложение с многофункциональным клиентом, используйте Windows Forms. Период. Microsoft не торопится прекращать поддержку платформы GDI / Windows Forms, так что вы можете рассчитывать на хорошую поддержку в ближайшее время.

WPF нелегко освоить , но это не должно быть где вы оставляете свое решение о том, стоит ли вкладывать свое время и энергию в изучение WPF. Несмотря на нынешнюю незрелость, WPF построен на некоторых полезных современных концепциях.

Например, в WPF ваши вложения в хорошо написанные бизнес-объекты с надежной логикой проверки - это солидные инвестиции. В отличие от Windows Forms, привязка данных WPF изобилует функциями, которые позволяют элементам управления интерфейсом реагировать на недопустимый ввод пользователя без написания кода графического интерфейса пользователя для обнаружения этих ошибок. Это ценно.

Возможности стилизации и создания шаблонов в WPF тоже оказались ценными. Несмотря на распространенное заблуждение, что единственное использование стилей и шаблонов - это создание экранных конфет, правда в том, что эти функции значительно упрощают кодирование пользовательского интерфейса, что дает богатую обратную связь - например, кнопки, которые отключают / включают себя на основе состояние базового уровня бизнес-логики, интерфейс, затем напишите код для привода тот пользовательский интерфейс, который обычно также включает код для управления вашим объекты данных.

  • В WPF вы инвестируете в бизнес-уровень, который управляет вашими объектами данных, а затем разрабатываете интерфейс, который слушает ваши объекты данных.
  • Это, казалось бы, незначительное различие, но оно дает огромная разница в вашей способности повторно использовать код ... из-за чего возникает вопрос: «Действительно ли вопрос о Windows Forms и WPF является инвестиционным решением?»

    (Кажется, это стало моей любимой темой.)

    84
    ответ дан 26 November 2019 в 19:07
    поделиться

    Есть ли веские причины использовать WPF

    Абсолютно! WPF абсолютно невероятен! Это будет большим преимуществом практически для любого проекта, потому что у него так много функций и возможностей, которых не хватает Windows Forms.

    Для бизнес-приложений самые большие преимущества будут:

    • Фантастическая привязка данных и создание шаблонов имеют самое большое значение. После того, как достойная модель данных создана, потребуется всего несколько щелчков мышью, чтобы создать шаблон данных и использовать Expression Blend , чтобы точно настроить, как ваш объект будет выглядеть с помощью перетаскивания. А привязка к таким вещам, как цвет или форма, тривиальна.
    • Макет экрана невероятно гибок. В WPF все может не только плавно подстраиваться под размер контейнера и изменения формы, но и элементы можно тривиально увеличивать и вращать и даже выходить за пределы их содержащего фрейма.
    • Обычные объекты могут быть представлены как угодно, могут легко иметь разные представления на разных экранах, могут обмениваться презентациями и могут адаптировать свое представление к изменениям значений данных.
    • Если вам нужно распечатать, визуализация на принтере является тривиальной задачей. При правильной настройке WPF делает Crystal Reports или SQL Server Reporting Services (SSRS) похожими на детскую игрушку.
    • Ваш пользовательский интерфейс будет выглядеть и ощущаться намного более динамичным, включая приятные функции такие как кнопки, которые оживают, когда вы наводите на них указатель мыши.

    Для утилит и игр на первый план выходят другие преимущества:

    • Вы можете легко добавлять фигуры, линии и произвольные рисунки в свое приложение без использования внешнего редактора . Каждый их компонент может быть привязан к данным и анимирован или управляться кодом. В Windows Forms вам обычно просто нужно импортировать растровое изображение и использовать его как есть, если только вы не хотите выполнять много работы.
    • Анимации - это круто! Пользователи будут действительно впечатлены, если вы не переусердствуете. Они также могут помочь людям увидеть, что происходит, и уменьшить необходимость в освещении. Например, при перетаскивании объекта вы можете анимировать цель, чтобы показать, что произойдет, если вы ее уроните.
    • Цвета, градиентные заливки, кисти, необычные шрифты, вращение любых объектов, мозаичные кисти и т. Д. Все, что вы хотите графически, есть за ваш вопрос.
    • Невероятно настраиваемый. Мне нужно было нарисовать железнодорожные пути для одного приложения, чтобы я мог бросить на них поезд. Через пару часов у меня были железнодорожные пути, которые я мог рисовать в любом месте экрана, используя кривые Безье , и они соединялись и переключались автоматически.

    Суть в том, что любой графический интерфейс значительного размера, который вы можете создать в Windows Forms может быть построен в WPF за треть (или меньше) и выглядит намного лучше.

    Требуется ли WPF больше ресурсов (в частности, ОЗУ)

    Вы платите цену по сравнению с Windows Forms, но она небольшая.

    • ОЗУ может увеличиваться или уменьшаться в зависимости от вашей реализации. WPF хранит свои данные более эффективно, поэтому отдельные объекты меньше, но, как правило, в WPF больше объектов, чем в Windows Forms, так что это уравновешивает, и любой из них может выйти вперед.
    • ЦП повысится по сравнению с Windows Forms. По моему опыту, фактическое обновление объектов WPF на экране требует примерно вдвое больше ресурсов ЦП, чем обычный рендеринг Windows Forms. Если ваше приложение тратит большую часть своего времени на обновление экрана, WPF может быть не для вас. Но в этом случае вы, вероятно, тоже не используете Windows Forms: большинство серьезных игр написаны непосредственно на DirectX .
    • Использование диска для WPF будет немного меньше, поскольку он требует намного меньше кода, чем Windows Forms. Разумеется, данные будут одинакового размера.

    Еще одно замечание об использовании ЦП: анимации и преобразования (движение, перевод и т. Д.) На самом деле более эффективны в WPF, чем в Windows Forms, из-за его сохраненного режима хранения.

    Затраты на обслуживание

    WPF - это огромное преимущество перед Windows Forms, когда дело доходит до обслуживания. Поскольку все выполняется в 1/5 объема кода, как и раньше, остается 1/5 объема кода, который необходимо поддерживать. Плюс ко всему исчезли все шаблоны, поэтому вы можете сосредоточиться на коде, который действительно выполняет работу.

    Преимущества XAML

    XAML - это ядро ​​WPF. Хотя WPF можно использовать без XAML, XAML делает его невероятно простым в использовании. XAML имеет HTML ' s возможность легко определять пользовательский интерфейс, но его встроенные теги намного мощнее, и вы можете легко определить свои собственные. (На самом деле, это нормально.)

    Некоторые конкретные преимущества XAML:

    • Весь пользовательский интерфейс определяется в текстовом файле, который легко читать и манипулировать как для пользователей, так и для инструментов
    • MarkupExtensions позволяют указывать привязки ясным и простым способом
    • Преобразователи типов позволяют легко указывать свойства со сложными типами. Например, вы можете сказать Brush = "Green" или указать кисть радиального градиента с тремя остановками.
    • Вы можете создавать свои собственные элементы
    • Вы можете легко использовать мощные «присоединенные свойства» WPF

    Другие идеи

    Я много лет мечтал о чем-то вроде WPF. Многие люди реализовали часть этой функции, но получить все это в одном месте и по такой цене ($ 0) - это потрясающе.

    WPF - это огромный сдвиг парадигмы по сравнению с Windows Forms, и к нему нужно привыкнуть, но время, потраченное на изучение, окупится

    WPF все еще имеет несколько бородавок даже пять лет спустя, но его сила поразит вас, как только вы это почувствуете. Если кто-то попытается перетащить вас обратно в Windows Forms, вы будете только пинаться и кричать.

    Советы: - Получите копию Expression Blend для разработки - Время от времени редактируйте XAML вручную - Не сдавайтесь, если сначала это покажется странным

    74
    ответ дан 26 November 2019 в 19:07
    поделиться

    Последние три с половиной года я занимался разработкой Windows Forms (в двух компаниях). Оба приложения широко использовались, и в итоге возникли проблемы с GDI. В больших приложениях Windows Forms в конечном итоге будут исчерпаны ресурсы GDI, что приведет к перезагрузке конечного пользователя.

    3
    ответ дан 26 November 2019 в 19:07
    поделиться

    Цитата из более ранней публикации Марка :

    • В Windows Forms вы разрабатываете свой пользовательский интерфейс, а затем пишете код для управления этим пользовательским интерфейсом, который обычно также включает код для управления вашими объектами данных.
    • В WPF вы инвестируете в бизнес-уровень, который управляет вашими объектами данных, а затем разрабатываете интерфейс, который слушает ваши объекты данных.

    Я бы сказал, что это скорее выбор дизайна, чем то, являетесь ли вы с помощью Windows Forms или WPF. Однако я понимаю, что определенные технологии могут лучше подходить для конкретного подхода.

    2
    ответ дан 26 November 2019 в 19:07
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: