Web Platformの全体像を知る

2011年3月30日(水)
ナオキ(監修:山田祥寛)

はじめに

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による分業パターン

図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アプリケーションの実行について解説します。

著者
ナオキ(監修:山田祥寛)
WINGSプロジェクト

有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表:山田祥寛)。おもな活動は、Web開発分野の書籍/雑誌/Web記事の執筆。ほかに海外記事の翻訳、講演なども幅広く手がける。2011年3月時点での登録メンバは36名で、現在もプロジェクトメンバーを募集中。執筆に興味のある方は、どしどしご応募頂きたい。著書多数。
http://www.wings.msn.to/

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています