Статьи Новости Контакты

21.09.2006
Анатолий Крысов

Microsoft's XAML и немного о .NET 3.0

обзор XAML и .NET 3.0

XAML

XAML в одночасье стал одной из самых "горячих" частей программной модели, которую предложит Microsoft с выходом Vista. Если коротко, то XAML — это базирующийся на XML-синтаксисе скриптовый язык для создания интерфейсов как для desktop-приложений, так и для веб-сервисов. Что заставляет нас ждать XAML? Компания Microsoft, что бы о ней ни говорили, всегда отличалась своим умением создавать новые технологии на основе уже существующих, оставляя все преимущества и добавляя новый функционал. Отличный пример — Microsoft .NET Framework.

XML был разработан в основном для хранения данных. Специалисты же из Microsoft серьезно расширили область применения и возможности XML, превратив его в XAML — язык программирования для .NET. То есть в ближайшее время мы, если работаем на этой платформе, уже будем активно использовать новую технологию в повседневных проектах. Из явных преимуществ XAML помимо простоты в понимании и использовании можно также упомянуть возможность использования любого из представленных в семействе .NET языков программирования в качестве CodeBehind. Главная прелесть XAML состоит в том, что с его помощью мы не просто описываем элементы пользовательского интерфейса, их размеры и цвет, расположение, но и управляем событиями и методами.

Кроме того, не стоит забывать и о преемственности: каждый современный веб-специалист знаком с XML, поэтому трудностей с изучением XAML у него возникнуть не должно. Итак, я обрисовал ситуацию вокруг новой технологии от Microsoft вкратце, а теперь перейдем к более детальному обсуждению.

Что такое XAML

Определение я дал чуть выше, поэтому начнем сразу с конкретики. Первое, что следует запомнить, — декларативность. XAML — декларативный язык. Второе — это тот факт, что основным и фактически единственным применением новой технологии является разработка пользовательского интерфейса, но, с другой стороны, достаточно глубокая и, я бы сказал, продвинутая. Если говорить о структуре XAML, то код состоит из тегов, хранится в отдельных файлах с расширением .xaml — этот подход похож на уже применяющийся в модели Windows Forms.

XAML — декларативный XML-язык для описания пользовательского интерфейса
Теперь короткий пример.

<?xml  version="1.0"  standalone="yes"?>  
<Window>  
        <Button>Hello,  Hostinfo</Button>  
</Window>

Думаю, что ни у кого их читателей настоящего материала не возникло проблем с расшифровкой примера. В нем дано базовое описание обычного окна с одной-единственной кнопкой. Аналогичные теги в XAML есть для всех необходимых контролов. Более того, у разработчиков есть возможность включать код C# или VB.NET прямо в файлы XAML.

Почему именно XAML? Ответ прост. Как я уже говорил, XML был создан исключительно для хранения и эффективного обмена данными и не имел функционала для полноценного программирования — не тот формат. XAML расширяет возможности тегового подхода, добавляя необходимый функционал для разработки полноценных приложений, которые могут одинаково работать в вариантах desktop и веб. Иными словами, по мнению многих экспертов главная цель XAML — свести воедино два мира программирования: Windows и Web.

XAML

Рассказывая об этой технологии, невозможно не упомянуть Windows Presentation Foundation (WPF, бывший Avalon). WPF является новой API в .NET Framework 3.0 (бывшие WinFX). С помощью WPX разработчики могут работать напрямую из любого языка семейства, могут описывать элементы пользовательского интерфейса в XAML, могут комбинировать эти две техники. Возможностей у WPF очень много: от стандартных объектов Windows (кнопки, поля ввода и т. д.) до 3D-графики, специальных эффектов и элементов мультимедиа.

Однако не стоит думать, что раз XAML имеет неразрывную связь с WPF, то работать с ним можно будет лишь на платформе Windows. Уже существует инициатива WPF/E (Windows Presentation Foundation/Everywhere), которая, скорее всего, портирует XAML на другие платформы достаточно быстро. Кроме того, слишком часто встречаются высказывания, в которых функционал XAML и WPF по ошибке или нарочно перемешивается. В связи с этим следует помнить, что хоть они и идут рука об руку, но все же XAML — это язык на базе XML-разметки, а WPF — графическая API.

Синтаксис XAML с виду привычен, факт. Он описывает объекты, их свойства и способы взаимодействия в рамках приложения. Свойства могут обозначаться в качестве атрибутов тега или с помощью period notation, когда child тега описывает его свойство. Обе методики показаны в примере.

<object>  
        <child  property="x"  property="y">  
                <child.property>  
                        <class  property="u"  property="v"/>  
                </child.property>  
        </child>  
</object>

Общее описание XAML я закончу еще двумя очень важными моментами. Во-первых, не следует даже сравнивать XAML с SVG, как это стало модным в последнее время. Эти две технологии разные, и созданы они для разных целей. Если SVG — это стандарт исключительно для работы с двухмерной векторной графикой, состоящий из XML-разметки и API для управления, то XAML имеет 3D-функционал и не является API.

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

Web 2.0 + .NET 3.0

Интересную комбинацию я поставил в подзаголовок, верно? Веб-приложения второго поколения на данный момент являются основным трендом, поэтому каждый разработчик спит и видит, как бы усовершенствовать уже существующий инструментарий и получить что-то новое. Одно из преимуществ современных AJAX-приложений — это полноценный пользовательский интерфейс, который постепенно приближается к desktop-приложениям. Первый шаг в этом направлении Microsoft сделала, выпустив AJAX framework под названием Atlas. Следующий шаг — XAML и .NET 3.0.

К релизу Windows Vista и всего сопутствующего запланирован и релиз продуктов из линейки Microsoft Expression. Скажем и о них пару слов.

  • Microsoft Expression Graphic Designer. Этот графический пакет нам интересен лишь в плане общего контекста. К разработке он имеет весьма опосредованное отношение: Expression Graphic Designer — это просто средство для работы с изображениями, комбинирующее работу с вектором и растром. Перспектива неплохая, но детально говорить о ней не будем.
  • Microsoft Expression Interactive Designer. Тут дела обстоят уже чуть интереснее: упомянутый продукт поможет разработчикам создавать интерфейсы для desktop-приложений, работающих на базе WPF. Однако это снова не Веб, поэтому движемся дальше.
  • Microsoft Expression Web Designer. А вот этот пакет — как раз то, о чем стоит рассказать подробнее. Это полноценное средство для разработки веб-приложений, ориентированное в первую очередь на дизайн. Однако на официальном сайте XAML не упоминается, но многие аналитики предсказывают, что этот функционал все же там будет в том или ином виде.

WPF — это API в .NET 3.0
XAML
Пример приложения на XAML

В любом случае, Expression Web Designer и Expression Interactive Designer с самого начала направлены в сторону Rich Internet Applications (RIAs), что не может не радовать. Тут, кстати, можно упомянуть и основных конкурентов Microsoft: компанию Adobe с недавно вышедшей второй версией Flex (применение этой технологии кажется более узким), Laszlo Systems с бесплатным продуктом Openlaszlo, который также позволяет разрабатывать RIAs как для платформы Flash, так и с использованием DHTML. Думаю, в ближайшие пару лет мы станем свидетелями очень любопытных событий, которые вполне могут изменить лицо современного Веба еще раз.

Web 3D

Последнее, о чем хотелось бы рассказать в статье, — это заложенный в WPF 3D-функционал, который, ко всему прочему, будет доступен из XAML. Правда, мы не можем говорить точно, станет ли Интернет трехмерным, пока не будет наработан какой-то опыт или пока не получим финальные версии технологий в свои руки для экспериментов. Но поразмышлять все-таки можно.

.NET 3.0 может сделать Интернет трехмерным
3D-графика уже давно стала стандартом визуализации во многих сферах (наука, медицина, промышленность и т. д.), но все попытки сделать Веб объемным до сих пор так и не принесли существенных результатов. Правда, есть X3D, но эта технология — тема для отдельного материала. Но поможет ли .NET 3.0 со всеми его новшествами добиться результата и на этом поприще? Известный эксперт по веб-технологиям Рон Де Серанно (Ron DeSeranno) считает, что да.

XAML
Схема обработки XAML

В одной из своих статей он рассказывает о том, как к нему на курсы по .NET 3.0 пришла женщина-разработчик и показала веб-приложение, которое находилось у нее в работе. Это была RIA для местного книжного магазина. Женщина открыла веб-браузер, набрала URL, и приложение загрузилось. Пользователь мог не просто посмотреть изображение магазина, но и перемещаться по нему в полностью трехмерном пространстве и даже брать книги с полок, причем качество картинки было очень приличным, со слов Рона Де Серанно.

Если рассмотреть эту историю в ракурсе современных технических средств, то трехмерный Интернет не выглядит такой уж далекой фантазией. Сегодня чувствуется скорее недостаток инструментов, чем возможностей для их потенциального применения. И Microsoft делает многое для того, чтобы их становилось больше. С другой стороны, корпорация Билла Гейтса снова предпринимает попытку заставить рынок и общественность играть по своим правилам. Что из этого получится, скоро увидим.

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



Скоро на сайте

  • Wordpress

    Серия статей о плагинах к движку WordPrress
  • AJAX

    Проекты и продукты, ориентированные на AJAX
  • Новые сервисы Google

    Обзор новых сервисов Google
 

Copyright © 2003—2018 Все права защищены

При использовании материалов сайта ссылка на hostinfo.ru обязательна

  • хостинг от .masterhost
  • Rambler's Top100