Когда стоит переходить на платформу Windows Presentation Foundation

В прошлом году корпорация Microsoft выпустила новую платформу Windows Presentation Foundation (WPF), предназначенную для разработки расширенных интерфейсов пользователя для ОС Windows. Также корпорация Microsoft объявила, что намерена и в будущем поддерживать модель Windows Forms, сегодня широко используемую для создания традиционных приложений типа «формы поверх данных». Возникают естественные вопросы: какую технологию использовать для разработки новых приложений и когда следует переходить на платформу WPF организациям, занимающимся разработкой приложений Windows Forms? Ответы на эти вопросы зависят от многих факторов, которые рассмотрены ниже.

Преимущество многоплатформенности

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

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

Аналогично, платформу WPF можно использовать совместно с MFC и Win32. Элементы управления WPF можно размещать в коде Win32/MFC, а элементы управления Win32/MFC — в WPF. Приложение Microsoft Expression Design — пример проекта, где код Win32 используется вместе с WPF для улучшения интерфейса пользователя. Переписывать все приложение не потребовалось. Этот реальный пример показывает, что WPF не подразумевает отказа от имеющегося кода приложения.

Преимущества Windows Forms

Window Forms — это развитая технология использования «форм поверх данных». За последние 20 лет разработки на основе платформы GDI/GDI32/GDI+ сложилась обширная экосистема элементов управления, разработчиков и поставщиков. Есть все основания продолжать использование технологии Windows Forms.

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

Корпорация Microsoft объявила о том, что намеревается продолжить поддержку платформы Windows Forms, а значит, разработчики могут не беспокоиться о поддержке приложений Windows Forms. Разработчики с многолетним опытом работы с платформой Windows Forms могут по-прежнему работать с хорошо знакомой технологией. Технология Windows Forms также пригодна для развертывания приложений на устаревших ПК, где установлены более ранние версии операционной системы (предшествующие Windows XP SP2).

Если вы занимаетесь разработкой приложений на основе форм, у вас есть опыт работы с Windows Forms и вы довольны вашими инструментами и компонентами, вы можете и дальше использовать технологию Windows Forms. В ней применяются современные разработки корпорации Microsoft в области платформы .NET (например, LINQ и Dynamic Language Runtime) и предлагается набор надежных элементов управления и лучшие в своем классе интегрированная среда разработки и конструктор форм Visual Studio. Корпорация Microsoft планирует поддерживать Windows Forms в течение многих лет, так что переход на платформу Windows Presentation Foundations зависит только от вашего желания воспользоваться ее уникальными преимуществами.

Преимущества Windows Presentation Foundation

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

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

  WinForms PDF WinForms + GDI Проигрыватель Windows Media Direct3D WPF
Формы, элементы управления X   X     X
Сложный текст   X       X
Изображения     X     X
Видео и аудио       X   X
Двумерная графика     X     X
Трехмерная графика         X X

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

Ниже показаны примеры приложений, построенных на платформе WPF, с новыми типами интерфейсов пользователя.

(См. https://windowsclient.net/community/showcasedetails.aspx?p=4269.)

В состав WPF входит около тридцати элементов управления, в том числе такие оригинальные, как InkCanvas и Grid. В 2008 году планируется добавить в платформу WPF дополнительные элементы управления. Сторонние разработчики также предлагают свои элементы для платформы.

Новая платформа требует новых инструментов. В Visual Studio 2008 предусмотрена базовая поддержка WPF, включая новую рабочая область конструирования с функцией перетаскивания макета и элементов управления WPF, новый редактор свойств, а также функцию Intellisense для редактирования кода XAML. В следующей версии Visual Studio корпорация Microsoft планирует расширить поддержку WPF. Для разработки многофункциональных приложений WPF, как правило, требуется участие новых членов команды: визуальных дизайнеров и дизайнеров взаимодействия. Корпорация Microsoft представила новое средство для этих ролей — Microsoft Expression Blend. Этот продукт призван реализовать креативные, визуальные и интерактивные возможности платформы с помощью средств WYSIWYG для работы с анимацией, обложками, стилями и привязками данных и создания визуальных элементов. Для упрощения интеграции этих членов команды в приложении Expression Blend обеспечивается поддержка проектов Visual Studio.

Менее очевидное преимущество WPF — в расширении возможностей разработки с помощью декларативного языка разметки (XAML), который можно применять во многих приложениях. WPF упрощает использование схемы «модель, представление, презентер» и сокращает объем кода презентера с помощью шаблонов. XAML обладает преимуществами не только в области презентации. Привязки данных позволяют устанавливать декларативную связь с базовой моделью. Все это дает возможность изменять интерфейс пользователя, не затрагивая другие уровни приложения. Еще одно важное преимущество XAML в том, что дизайнеры и разработчики могут работать с одними и теми же файлами.

И последнее преимущество, которое стоит отметить, — в технологии Silverlight будет поддерживаться высокий уровень совместимости с WPF, то есть перенос и совместное использование веб-приложений и клиентских приложений Windows будут чрезвычайно удобными. Развертывать приложения на других платформах будет проще с кодом Silverlight, практически идентичным коду WPF.

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

Заключение

  • Если у вас есть приложения Windows Forms, или вы занимаетесь разработкой традиционных приложений на основе форм, и вам требуется надежная технология с развитыми средствами и поддержкой компонентов, вам подойдет технология Windows Forms.
  • Если у вас есть приложение Windows Forms (или MFC/Win32), которое может выиграть от расширенных возможностей представления WPF, стоит добавить платформу WPF в ваш проект.
  • Если вы разрабатываете новый расширенный, интерактивный, сложный или оригинальный интерфейс пользователя, можно уже сейчас использовать в своих проектах WPF, платформу корпорации Microsoft следующего поколения.
  • Если вы занимаетесь разработкой веб-приложений, следует учитывать, что в технологии Silverlight используется та же модель разработки, что и в WPF, однако она оптимизирована для создания облегченных, кросс-платформенных приложений. Инвестируя в любую из платформ WPF или Silverlight, вы получаете навыки, инструменты и ресурсы для обеих платформ.

Что бы вы ни выбрали, вы можете быть уверены в том, что эти платформы будут поддерживаться в течение многих лет.

С уважением,

Пит Фарадей (Pete Faraday) и Брэд Беккер (Brad Becker).