Web Platformの全体像を知る
はじめに
「ASP.NETでは実現できない操作性を実現したい!」。こういう場合は、Silverlightがおススメです。特に、ブラウザの外部で実行させた場合は、もはやデスクトップ・アプリケーションと言っても良いほどの機能を持っています。
現在では、ASP.NETやSilverlightアプリケーションを配置する場所も多岐にわたります。従来であればWindows Server上に展開していましたが、現在ではWindows Azure Platformと呼ぶPaaS型のクラウド・サービスを利用できます。本記事では、これら2つ(SilverlightとWindows Azure Platform)について紹介します。
Silverlight開発では、デザイナとデベロッパが共同開発できる
Silverlightは、マルチブラウザ、マルチプラットフォームという特徴を備え、強力なメディア配信機能を持つ、RIAの実行環境およびフレームワークです。最新バージョンは、Silverlight 4です。ロジックの開発には、ASP.NETやWCF同様にVisual Studio 2010(以下、VS 2010)を使います。開発言語はVB(Visual Basic)またはC#を使います。
デザインには、Expression Blendを使います。Expression Blendでデザインした画面は、XAMLファイルとして生成されます。このように、従来のデスクトップ・アプリケーションでは難しかったデザイナとデベロッパの共同開発が、ロジックとデザインを分離し、それぞれの専用ツールを用いることで、実現できるようになっています。また、SilverlightはHTMLページ内に埋め込むことができるため、ASP.NETアプリケーションや、それ以外のWebテクノロジとも組み合わせることができます。
図1: Silverlightによる分業パターン |
Silverlightの機能
以下では、Silverlightが現在備えている機能を示します。簡単に補足説明も記載します。
- マルチブラウザ対応
Internet Explorer/Firefox/Google Chromeを利用できます。
- メディア配信機能
高品質な動画を扱え、DRM(Digital Rights Management)を利用できます。また、IIS 7.0と組み合わせることで、任意の場所から再生してもバッファがほぼ発生しない、HD(高解像度)によるメディア配信が実現できます(Xbox 360のZune Videoにて採用済み)。
- バックエンドでの.NET開発
C#/VBによる開発のほか、DLR(Dynamic Language Runtime)の導入により、IronPythonやIronRubyによる開発もできます。
- DeepZoom
複数解像度の画像ファイルを用意することで、ズームイン/ズームアウトが滑らかに表示できます。
- ナビゲーション・フレームワーク
Silverlightで画面遷移を実現するフレームワークを備えています。
- Webカメラやマイクとの連動
WebカメラやマイクからのデータをSilverlight内で操作できます。
- 印刷
Silverlight内に表示されているテキストや画像を印刷できます。
- マウス・イベントのサポート
マウス・イベントが使用できます。右クリックやホイール・イベントも使えます。
- ドラッグ&ドロップのサポート
クライアントからSilverlightアプリケーション上にファイルのドラッグ&ドロップが実現できます。
- ブラウザ外での実行
Silverlightアプリケーションをクライアント端末上にインストールし、ブラウザ外で実行できます。ネットワーク接続の有無を検知したうえで実行できます。
すべてを書き切れてはいませんが、Silverlightが多くの機能を持っていることが分かるでしょう。
気になるのは、Web開発におけるSilverlightの位置づけです。.NET全体ではASP.NETをWeb開発フレームワークとして提供していますし、主要ブラウザで実装が進むHTML5の存在もあります。「オフライン対応もできるHTML5を取り込んだASP.NETですべてをまかなえるのではないだろうか」。こう考える人も多いはずです。
しかし、ASP.NETは完全ではありません。HTML5を取り込んでAJAXやオフライン機能などを盛り込んだアプリケーションは開発できると思いますが*1、デスクトップ・アプリケーションとの連動や、COM(Component Object Model)との組み合わせなど、まだ手が届かない部分が存在します。
- [*1] ただし、IE 9では、オフライン機能は実装していないので、FirefoxやChromeでのみオフライン機能を活用したアプリケーションが作成できます。
HTML5も同様です。メディア配信がHTML要素で実現できるとしても、それが高機能であるかどうかはまた別の問題です。さらに、HTML5は動画配信だけにあるわけではありません。Web全体の仕様であるため、策定から実装までを踏まえると、10年前後のスパンがかかります。
この点、Silverlightはプラグインなので、こまめにバージョンアップできますし、ブラウザ外でのアプリケーション実行や高機能なメディア配信など、HTML5で実現できない部分のニーズを埋めることができます。また米Microsoft自身も、Silverlightに継続的に投資することを明言していますし、前述の通りSilverlightは、ASP.NETやHTML5の中に組み込むことができます。排他的に考えるのではなく、ユーザーに求められることを実現するために、Silverlightを活用するというシナリオは必ず出てくると言えます。
次ページでは、今後利用が進むであろう、ブラウザ外でのSilverlightアプリケーションの実行について解説します。