Являются ли WPF более яркими, чем winforms? - PullRequest
1 голос
/ 11 октября 2008

Я только что установил Visio, и установщик почти казался встроенным во Flash. Кнопки как бы светились, когда я завис над ними, и когда я нажал «продолжить», форма постепенно исчезла.

Я предполагаю, что он был встроен в WPF.

Так или иначе, поэтому WPF более похож на flash (визуально говоря). Есть ли у них новые свойства, благодаря которым вы можете плавно и плавно удалять формы по сравнению с winforms?

Ответы [ 4 ]

12 голосов
/ 11 октября 2008

Отказ от ответственности : я работаю в Microsoft. Однако я не работаю в команде Visio, WPF, CLR или Silverlight. Итак, следующее мое личное мнение об этих технологиях. Если вы хотите процитировать меня, не делайте этого, подразумевая, что это официальная позиция Microsoft. : -))

Обновление : все, что я скажу ниже о Flash / Flex / AIR, может быть неверным, поскольку я не работал с этими технологиями, и то, что я знаю о них, основано на том, что я прочитал на страницах. :-) Если вы заметили что-то не так, просто кричите в комментарии, и я исправлю это.

Насколько мне известно, установщик Visio не построен с WPF. Это все неуправляемый код; просто люди очень старались сделать его по-настоящему отполированным.

WPF - это новая платформа пользовательского интерфейса для создания автономных приложений для ОС Windows. Он поддерживает декларативный язык пользовательского интерфейса - XAML и связанные с ним типы CLR для программирования. WPF - это другая платформа, нежели WinForms, хотя можно создавать приложения, которые сочетают в себе пользовательский интерфейс и оба. WPF поддерживает множество вещей, которых нет в WinForms, например растровые эффекты, анимации, стили управления и т. Д., И предоставляет их как в XAML, так и через код. Кроме того, WPF сильно зависит от векторной графики, в отличие от пиксельной графики в WinForms. Короче говоря, WPF довольно мощный и позволяет создавать очень привлекательный интерфейс. (Не верьте мне на слово, хотя, поскольку я предвзят, посмотрите, что люди говорят об этом или готовятся к нему.: -))

WPF и WinForms не конкурируют с Flash / Flex. WPF и WinForms - это пользовательские интерфейсы для создания автономных клиентских приложений. Насколько я знаю, Flash / Flex - это фреймворки для создания многофункциональных интернет-приложений - RIA (хотя в последнее время люди стали интерпретировать эту аббревиатуру как многофункциональные интерактивные приложения).

Adobe разработала AIR около полугода (или, возможно, года) назад, что позволяет создавать автономные клиентские приложения, поэтому вы можете сказать, что Adobe пытается позиционировать Flash / Flex / AIR, чтобы конкурировать с WPF. Конечно, это мое мнение, и я сомневаюсь, что официальная позиция Adobe такова.

Если вы хотите сравнить определенные технологии MS с Flash / Flex, взгляните на Silverlight - это платформа MS RIA.

Silverlight относится к WPF в том смысле, что они совместно используют XAML и соответствующие типы CLR. Silverlight поддерживает только подмножество того, что предлагает WPF, поскольку он не предназначен только для ОС Windows и поэтому ограничен тем, что он должен быть переносимым.

Быстрое обновление, чтобы отразить изменения за год с тех пор, как я написал ответ: -)

С поставкой Silverlight 3 SL и WPF становятся еще ближе и делятся большим набором поддерживаемых функций. Кроме того, большинство новых элементов управления XAML созданы для платформы одновременно. Таким образом, SL / WPF достигают точки сингулярности ...

Кроме того, SL 3 поддерживает приложения вне браузера. В этом смысле SL не только начинает конкурировать с Flash / Flex, но и вторгается в сферу влияния AIR.

И нет, я до сих пор не работаю в команде WPF или Silverlight. : -)

5 голосов
/ 11 октября 2008

WPF используется в качестве замены для WinForms и в качестве конкурента для Flash в виде Silverlight . WPF состоит из совершенно новой объектной модели, которая находится поверх DirectX (по крайней мере, для настольной версии). Вы можете создавать окна WPF, элементы управления и т. Д., Полностью используя C # или другой язык .Net, точно так же, как вы можете визуализировать WinForms. Однако Microsoft также создала язык разметки под названием XAML (расширяемый язык разметки приложений). Узлы в документе XAML (XML) отображаются на объекты аналогично тому, как ASP.Net сопоставляется с веб-элементами управления. XAML обычно существует в проекте .Net вместе с файлом C # в стиле code-behind (или VB.Net или чем-то еще). Файл C # взаимодействует с объектами, сгенерированными XAML. Это вполне согласуется с моделью «графика через разметку, логика через код», которую продвигают Microsoft и другие.

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

Возвращаясь к графической стороне дома, WPF позволяет довольно просто сделать существующий элемент управления похожим на что угодно. WP позволяет вам составить свой собственный шаблон для того, как должен выглядеть класс кнопок, или одна кнопка, или все кнопки. Или радио кнопки. Или ярлыки. Вы поняли мой дрейф. Представьте, если бы CSS включал возможность определять, как будет выглядеть кнопка ввода, используя другие элементы управления HTML.

Они также предоставляют ряд элементов управления макетом. Вы можете продолжать использовать точное позиционирование, как в WinForms, или вы можете использовать различные методы, чтобы заставить ваше окно работать как веб-страница, которая увеличивается и уменьшается при изменении размера и т. Д.

Недостатки: Слишком легко создавать впечатляющие эффекты, которые ползут на медленных машинах. Некоторые графические объекты не используют аппаратное обеспечение видеокарт, хотя Microsoft постепенно улучшала их поддержку. Я верю, что когда вышла 3.0, тени падали только с помощью программного обеспечения. Я думаю, что 3.5 или 3.5 SP1 изменили это так, чтобы WPF использовал графическое оборудование для этой задачи. Microsoft заявила, что продолжит улучшать WPF таким образом.

WPF - это .Net 3.0 и выше, который работает на XP SP2, Vista и серверах 03 и 08. Поэтому не планируйте развертывание WPF для клиентов с настольными компьютерами Win2k.

Сводка: Если вы занимаетесь программированием на настольном компьютере в .Net, вы должны делать это в WPF, если вы не нацелены на Win2k. Вы можете избежать недостатков WPF, и есть много минусов. Возможно, Microsoft выпустит WinForms в будущем выпуске, или, по крайней мере, вы перестанете видеть новые функции и т. Д.

Что касается Silverlight, бета-версии для SL 2.0 выглядят неплохо. Я думаю, что Silverlight потребует широкого распространения. Microsoft уже пыталась добиться этого. Сайт NBC Olypmics использовал Silverlight, а Major League Baseball использует его для своего продукта MLB.tv. Как только Silverlight получит хорошую базу для установки, я думаю, вы увидите, что сторона разработки в Microsoft начинает отходить от Flash и Silverlight.


Редактировать после использования Silverlight 3 и MVVM:

Я ушел из WPF и много занимаюсь разработкой Silverlight 3. Но я думаю, что мои комментарии здесь будут по-прежнему применимы к разработчику WPF.

Я использовал шаблон MVVM в своем приложении (подумайте MVC с изюминкой). Команда Microsoft Patterns and Practices выпустила набор библиотек, известных как Prism , которые поддерживают различные аспекты MVVM. Есть версии WPF и Silverlight. Взгляните на MVVM и Prism, если вы собираетесь заниматься разработкой WPF или Silverlight.

2 голосов
/ 11 октября 2008

Вы можете делать много флеш с Winforms или с пользовательскими компонентами. Но если вы хотите получить доступ к новым возможностям, WPF - это то, что вам нужно.

Да, я думаю, что намерение быть похожим на флеш, мне кажется, что MS нацелился на уничтожение Adobe.

0 голосов
/ 11 октября 2008

Я вижу это так: WPF - это Flash, а WinForms - это Flex. В WPF больше внимания уделяется векторам и состояниям, чем программированию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...