本連載では,これまで4回にわたって Webユーザー・インタフェース における「ユーザー・エクスペリエンス」という考え方から,それらを実現する新技術である「Windows Presentation Foundation (WPF)」「Silverlight」「ASP.NET AJAX」 を順に紹介してきました。これらの技術は単独でも高度な表現を実現できるパワフルな技術なのですが,組み合わせることでそれぞれの長所をより生かし,短所を補うことができます。連載の最終回である今回は,総まとめとしてそれらを少し紹介します。

 この連載の第1回でも紹介しました通り,マイクロソフトのリッチ・クライアント・テクノロジは多くのプラットフォームをサポートしています(図1)。

図1:マイクロソフトのリッチ・クライアント技術

 これらの技術はすべて Web アプリケーションとして実現する技術であり,サーバーサイドで動作するものとクライアントサイドで動作するものの二つに分けることができます。すべての技術は標準技術をベースとして .NET 上で実現されているので,同じプラットフォーム上で動作する技術は組み合わせて利用することが可能です(当然ですが,サーバーサイドで動作する技術とクライアントサイドで動作する技術を組み合わせることはできません)。既存の技術と組み合わせることで,その組み合わせは無限に広がりますが,ここでは代表的なものに絞って紹介します。

サーバーサイド Web アプリケーションにおける組み合わせ

ASP.NET AJAX + Silverlight

 前回までに説明してきたようにASP.NET AJAX を使うと,通常の Ajax 対応の Web アプリケーションを容易に実現できます。ユーザーの使い勝手(ユーザビリティ)を向上させるためにさらに,ベクターベースのグラフィックス,2Dアニメーション,動画や音声などのメディアと組み合わせることが考えられますが,これはASP.NET や ASP.NET AJAX に,Silverlight を連携させることで容易に実現できます。いずれの技術も .NET をベースにしているため,親和性も高く,より密接に連携させられます。

 ASP.NET AJAX から Silverlight を実行するには,HTML の <object> タグのような XAML を呼び出すためのカスタムコントロールが必要となります。執筆時点(2007/08/15)では,ASP.NET Features と呼ばれる,ASP.NET に将来組み込まれる予定のコントロール群に含まれている XAML コントロールと MEDIA コントロールがそれに該当します。

 XAML コントロールは,その名の通り,XAML を実行するために使用されるコントロールです。プロパティに XAML を指定することで,Silverlight の呼び出しロジックを記述することなく,Silverlight アプリケーションを実行できます。

クライアントサイド Web アプリケーションにおける組み合わせ

Windows フォーム + WPF

 Windows フォームと WPFはもともと同じテクノロジに位置するため,特に意識することなく組み合わせることが可能です。実際WPF は,XAML を書かなくとも,.NET対応のプログラミング言語であるC# や VB .NET のロジックで定義できます。WPF のリリース当初は,既存の Windows フォーム・アプリケーションの描画部分 (UI) を WPF にするという組み合わせがよく使われました。

ガジェット + WPF

 どちらとも新しいテクノロジです。ガジェットは JavaScript を使ったノンブラウザ・タイプの新しいクライアント Web アプリケーションです。ただし,ガジェットのコンセプトは,同じように JavaScript を使う Silverlight よりもむしろWPF に近いので,ガジェットのユーザー・インタフェースに WPF が使われることもあります。

 使い方としては,HTML の <IFRAME> タグを使用し,src 属性に XAML を指定する方法が一般的です。ちなみに,Silverlight はブラウザ・ベースの技術ですから,ガジェットと組み合わせることはできません。

最後に

 昨今の Web には多くの技術が入り乱れていますが,それぞれの技術には必ず向き不向きが存在します。これからはそれらの特性を理解したうえで,適材適所に活用する能力が求められるようになります。

 今回紹介したマイクロソフトのテクノロジは,ベースがすべて .NET であり,既存のテクノロジとも同じベースとなっています。そのため,一つのアプリケーションでも用途に合わせてテクノロジの使い分けが可能になっています。言語特性も開発環境も同じなので,個々の技術では満たせない要件に対し,組み合わせることによって対応できることが他にはない最大の特徴となっています。

 最後になりましたが,本連載が皆様のユーザー・エクスペリエンスの向上に少しでもお役に立てることを願っています。