Silverlight 2とは
本連載では、RIA(Rich Internet Application)技術であるSilverlight 2について、とりわけ業務アプリケーションの実装でどのように活用できるか、という観点で解説します。
「Silverlight 2」はクロスブラウザ、クロスプラットフォーム、およびクロスデバイスに対応する、Webブラウザのプラグインです。Webブラウザ上で、動画や音楽などさまざまなリッチコンテンツを扱うことを可能にします。現在、RIA分野においてはFlashの利用が一般的ですが、Silverlight 2はFlashと似た側面を持つ技術と言えます。しかし、ただFlash対抗というだけではなく、Microsoftの技術ならではの特徴も多く持っています。
Silverlightは当初、処理記述にJavaScriptのみをサポートする1.0がリリースされました。現在は.NET Frameworkのサブセットをサポートし、記述言語をC#、VBなどに拡張したSilverlight 2(正式名称はSilverlight 2.0ではなくSilverlight 2です)がリリースされています。またこのメジャーバージョンアップにより、.NET利用者が使い慣れた多くのコントロールが利用できるようになりました。
Silverlight 1.0の後継として当初、.NET Frameworkのサポートが追加されたSilverlight 1.1アルファ版がリリースされました。しかし、結局のところSilverlight 1.1はアルファ版リリースが最後でベータ版リリースにまで至ることはありませんでした。1.1の後継として数々のコントロールを追加したうえでSilverlight 2ベータ版がリリースされ、現在の正式版に至っています。
対象読者
- Silverlight開発初心者
- Visual Studio 2008利用者
Silverlight 2の特徴およびアーキテクチャ
Silverlight 2のいくつかの特徴、およびアーキテクチャについて解説します。
実現できる事柄
Silverlight 2は軽量なWebブラウザ用プラグインとして動作します。エンドユーザーはSilverlight 2のプラグインを導入したブラウザを利用するだけで、多種多様なリッチコンテンツを簡単に楽しむことができます。また、Silverlight 2はWindows/Mac OS X、各種ブラウザ、各種端末デバイスに対応するため、複数の環境下での同一コンテンツの提供および利用を可能にします。以下に現時点で対応しているプラットフォームでの動作要件を記します。
プラットフォーム | 動作要件 |
Windows | x86(x86-64) 500MHz以上のプロセッサ 128MB以上のメモリ |
Mac OS X | Intel Core Duo 1.83GHz以上のプロセッサ 128MB以上のメモリ |
以下に各ブラウザ、OSの対応状況を示します。なお、Silverlight 1.0はPowerPC版のMac OSに対応していますが、Silverlight 2は対応していません。
OS | IE7 | IE6 | Firefox | Safari |
Windows Vista | ○ | ― | ○ | ― |
Windows XP(SP2以降) | ○ | ○ | ○ | ― |
Windows 2000 | ― | ○ | ― | ― |
Mac OS 10.4.8以降(Intel) | ― | ― | ○ | ○ |
技術的特徴
Silverlightは旧バージョンの1.0から、映像や音楽、インタラクティブなコンテンツなどのリッチコンテンツをブラウザ上で扱うことを可能にしてきました。実際、これらのリッチコンテンツの種類はFlashがカバーするそれと大差はなく、後継バージョンであるSilverlight 2も表面的に見ればFlashの単なる対抗馬に過ぎないように感じられるかもしれません。
しかし、Silverlight 2の持つ大きな特徴の一つはその「開発効率」にあります。Silverlight 2は既存のMicrosoft技術や標準技術と高い親和性を持っています。例えばSilverlight 2はユーザーインターフェイス部分の定義にWPF(Windows Presentation Foundation)で用いられているXAMLを採用しています。また、ロジック部分にはJavaScriptやC#,VB,Python,Rubyなど幅広い言語を利用することができます。言うまでもなくこれらは多くの技術者が既に習得しているか、あるいは比較的容易に習得しうるものです。また、Silverlight 2の開発を通して習得した技術は当然、.NET環境の他の分野でも応用することができます。さらにSilverlight 2は「Visual Studio」やユーザーインターフェイスデザインの専用ツールである「Expression Blend 2」を利用できるなど、Microsoftの統合開発環境と非常に高い親和性を持っています。
Flashはある意味で「職人」的性質を持つ技術であり、アニメーションやストーリーボードなど、開発者にとってはややなじみづらい概念を基礎としています。これとは対照的に、Silverlight 2は特に.NET環境の背景を持つ開発者にとってなじみ深い概念やスタイルを基礎にしています。これらの要素は言うまでもなく、開発コストや開発期間の低減という効果をもたらし、さらに開発者の教育また確保を容易にするでしょう。この点は業務でSilverlight 2を採用するメリットと言えます。
加えて、Silverlight 2はブラウザ上で.NET技術を幅広く活用することを可能にします。つまりブラウザという限定された環境においてWindowsアプリケーションに限りなく近い機能を実現することができます。これによって、スタンドアロンなアプリケーションに比べて表現力や操作性において劣るとされてきた従来のWebアプリケーションを、業務使用に耐えうるレベルに引き上げることができるのです。加えて、Silverlight 2では.NET技術を活用したアプリケーションをMac OS環境上で走らせることも可能となっています。
以下の図にSilverlight 2のアーキテクチャを示します。
Silverlight 2の中核となっているのは、.NET Framework for Silverlightおよびプレゼンテーションコアです。.NET Framework for Silverlightは.NET Frameworkのサブセットで、Silverlight専用の軽量版CLR上で動作します。Silverlightの動作にはブラウザプラグインのインストールが必要ですが、.NET Frameworkフルセットのインストールは不要となっています。また、プレゼンテーションコアについてはWPFと同様に、XAMLによってユーザーインターフェイスを定義します。Silverlightのコントロール、データバインディング、レイアウトマネージメントについては以降の連載でも取り上げます。さらにSilverlight 2は後でも述べる通り、著作権管理機能であるDRMやプログラム上でクエリを扱うためのLINQ、動的言語をサポートするDLRなどの機能を含んでいます。