Windows Vista для разработчиков

14 сентябрь, 2005 - 23:00Вячеслав Колдовский

Создавая Windows Vista, Microsoft затратила достаточно много усилий для того, чтобы не только сама операционная система стала более защищенной, надежной, функциональной и прозрачной в использовании, но и приложения, которые будут разрабатываться для нее, также соответствовали этим требованиям. Попробуем разобраться, какие для этого существуют возможности.

Windows Vista для разработчиков
Три основные части WinFX

Microsoft считает переход от Win32 к новым средствам программирования в Windows Vista не менее важным и принципиальным, чем, скажем, миграция с Win16 на Win32 или с DOS на Win16. Если кратко, то главное отличие заключается в долгожданном отказе от морально устаревшего процедурного API, свойственного даже последним на текущий момент официально выпущенным операционным системам. Ему на смену приходит новый программный интерфейс – WinFX, который изначально построен на объектно-ориентированных технологиях и фактически является надмножеством .Net Framework 2.0. Основу WinFX составляют три краеугольных камня:

  • Windows Presentation Foundation (WPF, в прошлом Avalon) – подсистема, отвечающая за отображение документов, мультимедийной информации, манипуляцию с ними и формирование пользовательского интерфейса;
  • Windows Communication Foundation (WCF, в прошлом Indigo) – набор коммуникационных технологий, предназначенный для создания распределенных приложений;
  • Windows File System (WinFS) – файловая система, основанная на технологии реляционных баз данных. Не войдет в релиз Windows Vista, но позже станет доступна в качестве дополнения.

Конечно, в таком виде общая картина выглядит несколько упрощенно, на самом же деле за ней скрывается целый ряд новых технологий и концепций, среди которых, скажем, отдельного внимания заслуживает ClickOnce, по замыслу Microsoft – основа для создания клиентских приложений нового типа.

WPF

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

  • WPF Engine. Включает векторный графический движок Windows Graphics Foundation (WGF), являющийся развитием DirectX и предоставляющий возможность использования всего потенциала современных видеоакселераторов при отрисовке графики. Также отвечает за воспроизведение аудио и визуализацию содержимого документов;
  • WPF Framework. Объектно-ориентированная среда для создания приложений, применяющих WPF Engine. Предоставляет разработчику классы, позволяющие манипулировать различной мультимедийной информацией и обеспечивающие взаимодействие с пользователем.
Windows Vista для разработчиков
WPF отвечает за всевозможные способы предоставления информации и взаимодействия с пользователем

С WPF тесно связан с XAML (eXtensible Application Markup Language) – декларативным, основанным на XML языком разметки для описания пользовательского интерфейса. Идея, положенная в основу XAML, не нова, похожий подход уже достаточно давно применяет в своих продуктах Borland, разделяя программный код и код, описывающий элементы интерфейса. Однако XAML имеет несколько более широкий смысл – задумка Microsoft состоит в том, чтобы максимально повысить роль профессиональных дизайнеров в процессе создания программных продуктов, предоставив им возможность независимо от программистов работать над пользовательским интерфейсом любой сложности.

При этом XAML – очень гибкий язык, позволяющий абстрагироваться от устройств визуализации. С его помощью можно одинаково легко создавать элементы интерфейса, предназначенные для отображения в виде «обычных» окон или страниц в окне браузера либо для вывода на печать. Именно это свойство и позволило Microsoft разработать на основе XAML формат документов XPS (в прошлом Metro), конкурирующий с PDF.

WCF

Основная задача WFC – обеспечение функционирования распределенных приложений. Само по себе это довольно универсальное понятие, охватывающее как комплекс приложений, работающих в удаленных точках и взаимодействующих через Интернет, так и приложения, выполняющиеся на одном компьютере, но состоящие из отдельных компонентов.

Соответственно, подсистема WCF создана на основе таких существующих технологий Microsoft, как COM+, MSMQ и Web-сервисы ASP.NET и призвана заменить их. На деле WFC особенно близка именно к Web-сервисам, однако имеет и множество существенных отличий. В частности, WCF обеспечивает поддержку большого количества транспортных протоколов (HTTP, TCP, UDP, IPC), транзакции, стандартные механизмы аутентификации и шифрования, топологии взаимодействия (клиент-сервер, Peer-to-Peer, издатель-подписчик).

Главным нововведением WCF можно считать принятие сервис-ориентированной архитектуры (SOA) для построения распределенных приложений, которая основывается на объектно-ориентированном подходе и принципах компонентного программирования, положенных в основу .Net Framework. В целом же WFC предоставляет весьма обширный набор готовых средств для построения коммуникационных приложений различного уровня, что должно существенно облегчить труд разработчика.

WinFS

Первоначально WinFS создавалась вместе с остальными технологиями Windows Vista, но позже была изъята из проекта новой ОС, чтобы не сорвать график ее выпуска. Несмотря на это данная технология по-прежнему считается одной из составляющих WinFX и после официального выхода несомненно займет свое законное место.

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

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

ClickOnce

Основная идея ClikOnce состоит в том, чтобы обеспечить для обычных настольных программ возможности распространения и развертывания, характерные для Web-приложений. Это укладывается в новую концепцию «умных клиентов», которую сейчас активно продвигает Microsoft.

Действует данная технология следующим образом. Разработчик создает приложение и публикует его на интранет- или интернет-сервере. Пользователи обращаются по указанному URL, загружают приложение и устанавливают его на своей локальной машине. При каждом последующем запуске приложение обращается к «домашнему» серверу и, в случае обнаружения новой версии, автоматически производит свое обновление. Для снижения нагрузки на сеть используются компонентизация, HTTP-компрессия и «докачка» в случае обрыва связи.

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

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

Заключение

До недавних пор как технология .Net, так и новый язык программирования C# воспринимались многими разработчиками недостаточно серьезно в связи с тем, что сама Microsoft не слишком широко применяла их в собственных продуктах. Теперь ситуация наверняка существенно изменится, поскольку значительная часть кода Windows Vista создана именно средствами .Net и C#.

Более того, Microsoft всячески поощряет разработчиков уже сейчас создавать программы на основе WPF/WCF и WinFS и даже обещает, что данные технологии будут доступны и для предыдущих версий Windows, таких как Windows XP и Windows 2003 Server.

Учитывая множество действительно принципиальных нововведений и тот энтузиазм, с которым сама Microsoft движется в направлении Windows Vista, можно смело утверждать, что наступило время присмотреться к предложенным технологиям и начать применять их в своей практике, поскольку задержка в данном случае может означать потерю конкурентных преимуществ.

e-mail автора: [email protected]