コードジンのヘッダーが入ります
マイクロソフトはWindows Vistaのリリースに合わせ、ユーザーの体験、つまりユーザーエクスペリエンスという概念の重要性をアピールしてきた。そこで求められているのは「コンピュータを使って何かをしたい」というユーザーの衝動を削がず、より加速することだ。「そこでポイントとなるのは直感的に操作できるユーザーインターフェース(UI)」と、マイクロソフトの高橋忍氏は強調する。
しかし、優れたUIを考案できるデザイナーの多くにはビジネスロジックを開発する技術力が無く、開発者はデザインセンスに乏しいという現実があり、両者のコラボレーションには数々の障害があった。そこで登場したのがWindows Presentation Foundation(WPF)というテクノロジだ。「10年来のGDIベースのプレゼンテーションテクノロジに、初めて新しい技術が入った」(高橋氏)というわけだ。
WPFではバックグラウンドの部分はVBやC#で開発し、UIはXMLベースの定義言語XAML(Extensible Application Markup Language)で書く(図1)。両者を連携させるプラットフォームがVisual Studio 2008とExpression Blendだ。
Expression Blendは、主にXAMLによるデザインを担う。画面構成はすべてレイアウトを基本に考える。デザインのためのさまざまな手法が用意されているが、高橋氏のオススメはGridレイアウトだ。オブジェクトは必要に応じて階層化することができる。また、ウィンドウサイズに応じて中のUIが追随する。その結果、画面サイズにかかわらず、各ユーザーが同じように自分の使いやすいウィンドウで操作できるようになっている。
面白い機能の1つにオブジェクトのデータを連係させる「データバインド」がある。たとえばスライダーとUIの構成要素のプロパティを紐づけ、動かしたスライダーの数値をテキストボックスに表示したり、図形を変形させたりすることも可能だ。また、ネットワーク上からRSSのデータを拾ってきて表示する、RSSリーダーを作成することもこの機能で実現できる。
デザインを効率的に行うための便利な仕組みがスタイル、テンプレート、リソースだ。たとえばスタイルは、ボタンのデザインやトリガーなどの動的要素を定義づけておき、まとめて再利用する仕組みだ。個々のプロパティだけではなく、オブジェクトのUI全体を定義しておくのがテンプレートになる。両者の定義項目はリソースとして格納されている。高橋氏は「作成したオブジェクトをリソース化することをぜひ覚えてほしい」と話す。
また、Expression Blendに3Dオブジェクト作成機能は無いが、インポートして利用することができる。バーチャルのカメラを動かして視線を変えることも可能だ。そのほか、プロパティを時間変化させることで、さまざまなタイムラインアニメーションを作成する機能も搭載されている。
Expression Blendには動的な処理をするためのコード編集機能は無い。機能を持たせたいオブジェクトをダブルクリックするとVisual Studioが開き、ロジックを書くことができる。Expression Blendで作成したプロジェクトをVisual Studioで開くことも可能だ。
それでは実際の開発では、どちらのツールでスタートすればいいのか。高橋氏は「基本的にVisual Studioで始めることを勧めたい」という。そこで基本設計やプロジェクト管理を行い、そこにデザイン担当者がExpression BlendでUIを構築して戻す、というイメージだ。高橋氏は「内容に合わせてツールを使い分けることが大切」と強調し、セッションを終了した。