【夏休み特別講座】Silverlightをおさらいしてみよう(1) | RBB TODAY

【夏休み特別講座】Silverlightをおさらいしてみよう(1)

ブロードバンド その他

ネットのあちら側とこちら側のテクノロジー分布
  • ネットのあちら側とこちら側のテクノロジー分布
  • Silverlightアプリケーション 実行の流れ
 MicrosoftからSilverlightが発表されてから早3か月が経過した。その間、Silverlightによる画期的なアプリケーション、コンテンツが続々と発表されたかというと、あまりそういうわけではないのだが、それでも発表当時に比べて情報は浸透してきているようだ。Flashを使用したコンテンツの制作やアプリケーションの開発に携わる人間の間でも、多少なりとも話が上がるようになった。ただ、未だ「具体的にはどういうファイルフォーマットなの」「何があれば開発できるの」といった基本的な部分がわからず、手を出しそびれている人も多いように感じる。

 この記事では、そうした「Silverlightって聞きはしているけど具体的にどういうものなの」という部分をおさらいの意味を込めて、改めて解説する。


■プラットフォームの位置づけ——リッチとリーチのバランス取り

 元々、Micorosoftのテクノロジといえば、VBやC#を使用したWindows FormなどWindowsに完全に依存する形のプラットフォームを思い浮かべる方が多いかと思う。また、ゲームなど高度な表現が必要とされる際に使用されるDirectXや、最近ではWindows Vistaに搭載された.NET Framework3.0のプレゼンテーションレイヤ担当のWPFなど「リッチではあるけれどWindowsでしか動かない」ものこそがMicrosoft発のテクノロジだったと言える(ASP.NETはさておき)。

 とはいえMicrosoftとしても、デスクトップアプリケーションだけでなく、AdobeやGoogleなどに席巻されている感のある昨今のWEBアプリケーションの世界へ切り込むに当たり、クロスブラウザ・クロスプラットフォームというような、多様なプラットフォームやユーザへのリーチの長さを意識せざるを得なくなってきていた。そこに登場したのが、Silverlightである。

 そこでは、DirectXやWPFのようなハードウェアレンダリングを必要とするようなグラフィックアクセラレーションの恩恵はないものの、WEB上のいわゆるRIA(Microsoft的にはRich Interactive Applicationとのこと)を開発するには十分なプラットフォームが提供される。そして、IEとWindowsのみならずFirefoxやSafari、そしてMac OS環境などでも、問題なく動作する。しかも、WPF譲りのグラフィック、アニメーション、そして映像などを、.NET Frameworkベースの開発環境でオーサリングすることができる。そんなリッチとリーチの良いとこ取り、それがSilverlightだ。

 Microsoftは従来の「リッチではあるがネットを挟んでデスクトップ側から出られなかった」いわば重量級のテクノロジから、Silverlightという飛び道具を携え、WEBの世界へ攻め入ろうとしている。

 その反面、これまでクロスブラウザ・クロスプラットフォーム前提のリーチの長さと、アニメーションツール発の敷居の低さを売りに、RIAの世界を事実上支配してきたAdobe Flash陣営も、FlashやFlexなどの言わば「リーチは長いがネットを挟んでブラウザの側でしか動かなかった」テクノロジも、AIRという揚陸艦を手に入れ、デスクトップの方へ攻め入ろうとしている。Google Desktopも然り、だ。

■特徴——あのテクノロジに対して何故Silverlightを使うか

 クロスブラウザ・クロスプラットフォームに関しては、同じ土俵に立ったに過ぎず、アドバンテージとは言えない。では何故Silverlightで開発を行う必要があるか。大きなメリットは2つ。一つは開発環境、もう一つは映像である。

 Silverlightは.NET Frameworkに基づくアーキテクチャで構成され、これまでのWindowsプラットフォームアプリケーションの開発モデルがそのまま通用する。従来、デスクトップアプリケーションを作成してきた会社にとっても、これまでのリソースを生かしてWEBアプリケーションの開発に乗り出せる。またその際、ExpressionおよびVisualStudioといった、社内での開発フローを意識したデザイナ・プログラマそれぞれの役割分担に対応したツールが提供され、高い生産性が期待できる。

 映像は、昨今のRIAではますます使用される頻度が高くなってきているが、SilverlightではWMV7、8、9に加え、VC-1フォーマットでの高品質なHD映像(720pまで)までもサポートしている。当然、プログレッシブダウンロードによる配信も、WindowsMediaサーバを使用してストリーミング配信を行うことも可能だ。そして次期バージョンからはDRMも正式サポートされる。Silverlightを使用することで、従来「ただ見せられれば良かった」映像配信から、より高品質かつインタラクティブな動作に組み入れられた映像体験へと進化させることができるようになる。


■ファイルの実体と構成——Silverlightアプリケーションを公開するには

 Silverlightは通常のWEBサーバでホストすることができる。特別な設定などは不要で、単純にサーバへアップロードすればそれで公開可能である。そのコンテンツへユーザがアクセスすると、ブラウザにインストールされたSilverlightプラグインがコンテンツを解釈し、GUIを表示する。

 コンテンツのファイル構成として、UIを記述するXAMLファイル、裏側のロジックを記述するコードビハインドファイルの2種がある。

 前者は拡張子が.xamlとなるXMLファイルで、この中に画面を構成するUI要素が単純なテキストで記述される。WPFで使用されるものと異なり、これは事前にコンパイルされずにサーバ上に配置され、ランタイムにSilverlightプラグインに解釈される。FlashやFlexで言うところの、mxmlファイルとFlash Playerの関係に近い。

 後者はイベントの制御やサーバとのやりとりなど、UIに出てこない裏側の動作を記述するコード部分である。現行のSilverlightはまだVersion1.0のRC版が出たところだが、このバージョンではJavaScriptで記述することになる。当然、JavaScriptを経由してHTML DOMやJSONなどと連携することが可能だ。

 なお、Silverlight 1.1ではこのコードビハインド部分をC#やVB、Ruby、Pythonなどで記述できるCLR(Common Language Runtime)が実装される。また、このVB、Ruby、Pythonなどをランタイムに動的に解釈するDLR(Dynamic Language Runtime)も実装される。

■最後に——開発を始めるには

 開発環境としては、未だ正式版はリリースされていないが、Microsoftのデザインツール群であるExpression Studioの次期バージョン、およびロジック開発用にVisual Studioが必要となる。いずれもSilverlightのHPから、無償のベータ版が提供されている。ただ極端な話、UIのXAMLと裏側のJavaScriptコードを記述できるメモ帳でもあれば開発することは可能だ。

 なお、ご興味を持たれた方には、まずは一度SilverlightのHP(関連リンク参照)を開いてみることをオススメする。
《後藤雄介》

関連ニュース

特集

page top