Является ли WPF необычным?

Пока я программирую, я всегда делал это с помощью MS-технологий. Были DOS, MFC, VB6, затем .net с WinForms и теперь WPF.

Во всех этих технологиях GUI-вещь всегда была более или менее одинаковой, поскольку она основана на Win32 (кроме DOS). С WPF теперь все полностью изменилось. MS представила множество новых возможностей, начиная с декларативного способа создания пользовательских интерфейсов, беззаботного управления, анимации и так далее. Мне нравится эта новая UI-технология, а также основы под ней (DependencyProperty-System, RoutedEvents и т.д.).

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

Есть ли какая-то информация о сравнении современных технологий пользовательского интерфейса, которая показывает ссылки и общие шаблоны?

Ответ 1

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

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

Как только это понятно, сердце WPF представляет собой древовидную структуру, представляющую сцену, можно найти, что остальная часть построена на принципах обработки специфических особенностей растрирования визуального дерева поверх зрелой 3D-системы отображения (DirectX), Наложение потоков (DispatchObject), механизм привязки данных (DependencyObject) и UI-идиомы макета, ввода, фокуса, события (UIElement) и стилизации (FrameworkElement) - все это естественные прогрессии идей в Win32 или других конструкциях пользовательского интерфейса. Чтобы привести пример последнего: хотя в Win32 никогда не было ничего, кроме DependencyObject, популярный 3D-инструмент (Maya), представляющий 3D-сцену как Directed Acyclic Graph, имеет подобную подсистему, где узлы обладают свойствами, а когда свойства обновляются, значения передаются через node соединения по графику, и все узлы, которые заинтересованы в этом свойстве, уведомляются о новом значении. Из этого можно видеть, что, когда у вас есть центральная структура данных (дерево или граф), расслоение на новые возможности - это прямая проблема разработки программного обеспечения.

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

Ответ 2

Это не только конструкция, специфичная для MS, как вы выразились. Существуют и другие аналогичные технологии, основанные на одних и тех же принципах (XML-подобная надстройка для определения пользовательского интерфейса) - JavaFX, Adobe Flex, Flash и другие. Я не могу найти какую-либо конкретную информацию об общих шаблонах, используемых в каждом, но есть много сравнения между ними.

Ответ 3

По моему мнению, WPF вдохновлен некоторыми другими технологиями, такими как, например, StackPanel от Swing/Java. Также существовала концепция XML, описывающая интерфейс и отдельный файл кода, - см. Adobe Flex, где у вас есть XML и ActionScript.

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

Кроме того, WPF, похоже, является очень надежной технологией, потому что он не только подталкивается MS на ОС Windows Desktop, но также и на Silverlight, а также на веб-решения и на предстоящий Windows Phone 7.

Ответ 4

Для меня WPF - лучшая технология из всех других технологий MS. Я использовал его некоторое время, и я должен сказать, что я рад, что у нас есть что-то лучше, чем WinForms. WPF необычен для Microsoft, но не для других компаний, таких как Adobe, в некоторых аспектах, например, для анимации. Анимация намного мощнее во Flash. Чтобы иметь гладкую анимацию, которая работает одновременно, вам, вероятно, нужно кодировать на более низких уровнях .NET и нуждаться в хорошей графической карте.