Pull to refresh

A bit of XAML. 0.

Reading time 3 min
Views 3.1K
Для начала, что такое XAML.
Xaml (произносится замл) stans for Xtensible Application Markup language. По сути — подмножество XML, позволяющее описывать пользователский интерфейс и его логику. Справедливости ради надо отметить, что изначально акроним был eXtensible Avalon Markup Lang, да вот совпало :). Xaml, по сути — вещь открытая, но нам он сейчас интересен именно как база для работы новой системы предстваления и интерфейсов Microsoft Windows Presentation Foundation.

Для чего это всё
Опыт разработки приложений уже давно всем показывает, что неплохо бы не смешивать логику кода и логику представления (данных). Отчасти потому что это облегчает разработку, отчасти потому, что очень вредно (для конечных пользователей) заставлять программистов писать пользовательские интерфейсы. Хороший интерфейс — половина дела, но его и придумать надо, и сделать переносимым, и менять отдельно от логики, и оптимизировать под аудитории, и… в общем, востребовано.
Да, у этого чуда есть аналоги: XUL, UIML, Adobe Flash+Flex, Adobe Apollo и что-то там еще.

Как это работает
XAML, декларативный язык разметки, позволяет указать системе, что именно из компонентов интерфейса мы хотим видеть у себя. В стандартном пакете есть как законченные контролы (листбокс, кнопка, etc), так и заготовки/программные шаблоны для наследования и создания своих (ContentPresenter, Control, etc). Приложение фреймворка, PresentationHost (или ApplicationHost, если речь о браузере) получает описание сцены и пытается отобразить его у себя при помощи системных средств, дополняя недостающие данные и собственно управляя процессом. Дескрипторов окон, кстати, здесь нет и быть не может.

XML-base позволяет описывать очень серъезные и глубокие наборы элементов интерфейса. К примеру, никто не может мне помешать создать область отрисовки (Grid) внутри варианта поведения для кнопки, который будет показан при наведении мыши, а на Grid-е положить видео в трехмерной плоскости. И всему этому задать относительные размеры. Концепты элементов управления очень и очень условны, и я вполне могу показывать видео на трехмерном торе, вращающемся внутри некоей области; а для программиста — внимание! — это будет стандартный (равнозначный стандартному) ListBox… в общем, покажу.

Где это использовать (софт и железо)
Microsoft говорит, что WPF работает везде, где встанет NETfx3. Это немного преувеличено.

На текущий момент всё это более-менее работает на Vista, а также в ограниченном виде на Win XP SP2 и сервере. Предвосхищая вопросы: нет, только SP2 либо SP1 для сервера. На XPSP2 не будет работать application host (интеграция xaml как системного скриптового языка), но в целом ничего.

Железо: нормального соременного компьютера будет достаточно. Зная, что вот сейчас эта фраза вызвала у многих нервный смех :), поясню. По моим наблюдениям, не стоит пытаться запускать у себя всё это хозяйство, если а) оперативной памяти меньше 128М, б) видеопамяти меньше 8М, в) частота процессора меньше 1-1.2GHz. Оно, кстати, всё равно заработает, но работать будет ну уж совсем грустно.
Кстати, графического ускорения за счет видеокарты можно ощутимо добиться только на WinVista. Для всех видеовыводов используются функции DirectX, если они не срабатывают — software wrapper. Не срабатывает, по опыту — часто.

Сразу говорю, что Vista я пока в работе не использую, и все примеры будут на XPSP2/WSSP1. Если вы используете — вам проще :)
Никто не говорил, что будет легко. Но будет красиво…



Давайте определимся, что нам может понадобиться для практического знакомства с технологией:

— для собственно работы presentation host нам не обойтись без .NET framework 3.0 (51M). Это ссылка на полный пакет, экономящие траффик могут взять стандартный 2.8М установщик. Те, у кого стоит Vista RC1 или Vista RTM могут эту ссылку не скачивать, у вас уже всё и так есть.

— для визуальной работы со сценами нам нужен MS Expression Interactive Designer (7.1M). Это CTP-версия. Региться, кстати, не нужно, если сказать внизу «no, thanks» (прям как в том анекдоте:). Эта весчь умеет компилить/билдить проекты и ограниченно работать с xaml-кодом. Кстати, оно само отчасти написано на XAML, в чем будет возможность убедиться.

— не обязательна, но полезна будет Visual Studio или ее express-версия. Они, кто не знает, бесплатны. PHP-шникам рекомендую CSharp, остальным — решайте сами. Инсталлер сливает 40-60 метров, если нужен iso-шник — здесь (450-500М).

— для того, чтобы работать в Студии с WPF-проектами, нужно поставить extensions for WPF+WCF (4.0М).

На текущий момент всё еще ведется разработка XAML и прилегающих к нему технологий. Однако постепенно появляются живые приложения, как указаный на картинке NewYork Times Reader. Помимо очевидного присутствия из-за «гонки технологий», здесь есть действительно серьезные инновации как для пользователя, так и для команды разработки (дизайнер+программист).

Взято в ЖЖ cgvictor'a, с разрешения автора.

Если кому-нибудь будет интересно, буду постить сюда свежие статьи из его блога на эту тему.
Tags:
Hubs:
+7
Comments 4
Comments Comments 4

Articles