Silverlightアプリケーション開発では、アプリケーション開発者がロジックを記述し、デザイナがアプリケーションの外観や演出を作成する分業を実現できます。Silverlightは、ロジックをプログラミング言語で記述する一方で、デザインなどの静的なインスタンスの構造をXAMLで宣言できます。これによって、デザイナがアプリケーションをデザインし、その結果をXAMLで受け取ってプログラムから制御できます。

Silverlightアプリケーションの開発には、多くのWindowsアプリケーション開発者にとってなじみ深い「Visual Studio」を使えます。上位バージョンのVisual Studio 2008はもちろん、無償で公開されているVisual Web Developer 2008 Express Editionでも開発できます。開発ツールの詳細はVisual Studioのページ、およびMSDNのSilverlightデベロッパーセンターをご覧ください。

Visual Studio による Silverlight アプリケーション開発

現在開発中の次期バージョンVisual Studio 2010では、標準でSilverlightアプリケーション開発がサポートされる予定です。

一方、デザイナはMicrosoftの新しいデザインツールである「Expression Studio」を使ってアプリケーションをデザインできます。Expression Studioは、Webページをデザインする「Expression Web」や、アプリケーションをデザインする「Expression Blend」、XAMLに対応したグラフィックデザインツールである「Expression Design」などを含む製品群です。詳しくは、Expressionのページをご覧ください。

アプリケーションのデザインを専門とするExpression Blend

Expression Studioのうち、Silverlightアプリケーションのデザインを行うのはExpression Blendです。Expression Blendでは、Visual Studio互換のプロジェクトを作成および読み込みが可能であり、開発者とデザイナが共同で、それぞれの専門領域を担当しながら 1 つのアプリケーションを構築できます。

もちろん、Visual Studioだけでも標準コントロールを貼り付けた程度の簡単なデザインなら可能ですが、カスタマイズされたコントロールや、アニメーション処理、複雑なベクタグラフィックスの作成には、Expression Studioを使うことで高品質なアプリケーションを効率的にデザインできます。

理想的な役割分担

Silverlightアプリケーションの開発では、開発者とデザイナが、それぞれ専門のツールを使って分業し、並列で作業を進めることができます。しかし、最後にはデザイナが作成したデザインをロジックと結合する必要があるため、双方のコミュニケーションを密にしなければ予期しない問題が発生します。プログラム側の事情をよく知る人物がデザインを並行して担当できる能力があることが好ましいのですが、そうではない場合には注意が必要です。

多くの場合、ロジックとデザインは完全に独立しているのではなく、部分的に依存することなります。必要なインスタンスが宣言されていなかったり、適切なイベントハンドラと関連付けられていなければ、プログラムは正しく動作しません。開発者は、必要なコントロールや呼び出すべきイベントハンドラをデザイナに指示する必要があり、デザイナもまた、デザインを破壊するような振る舞いをしないよう開発者に注文することがあるかもしれません。そのため、プロジェクト内に開発者とデザイナ、双方の事情をよく知る橋渡し役が必要になるでしょう。そうでなければ、開発者とデザイナが双方の合意を得るためのコミュニケーションに時間を取られてしまい、逆に生産性を落としかねません。

理想的な開発者とデザイナの分業体制

開発チームの規模にもよりますが、プログラムとXAML、双方のコードを読める結合責任者を配置することで、混乱なく開発者とデザイナがそれぞれ責任を負うべき範囲を管理できるでしょう。

Silverlightは、標準コントロールを貼り付けるだけのUIではなく、デザイナの感性を生かした自由度の高いデザインやカスタムコントロールを実現できる柔軟性を兼ね備えています。だからこそ、開発者とは別に、デザインを専門とするデザイナをチームに加えるのです。

Silverlightでは、ボタンやリスト、図形、画像、さらには動画をも、自由に組み合わせたりレイアウトしたりできます。これは、描画可能なすべてのオブジェクトがUIElementクラスによって統一されているためです。次回は、すべてのデザインの基底クラスに位置するUIElementクラスをピックアップします。

著者プロフィール:赤坂玲音

フリーランスのテクニカルライタ兼アプリケーション開発者。主にクライアント技術、プレゼンテーション技術が専門。2005年から現在まで「Microsoft MVP Visual C++」受賞。技術解説書を中心に著書多数。近著に『Silverlight入門』(翔泳社)などがある。