現在
現在、Silverlight3が正式版として昨年の7月10日に公開されています。Silverlight3ではブラウザ外で実行できるOut of Browser機能やH264、AACなどのコーデックのサポートをはじめ、様々な機能が追加されアプリケーションを本格的に開発できる環境が整いました。
さらに、一息つく間もなく11月18日の約4カ月後には米国で開かれたPDC09でSilverlight4がアナウンスされBeta版が利用可能になりました。
本稿ではSilverlight4 Betaの印象的な機能を紹介し、最後に現在までの振り返りと今後の筆者の期待を込めた展望を記載します。
Silverlight 4 Betaの開発環境
Silverlight4 Betaは既に開発者向けランタイムが配布されており、従来通りのSilverlight Toolsも公開されています。Silverlight Toolsは今回からはVisual Studio 2010用のアドインとなっているため、残念ながらVisual Studio2008では開発することはできません。しかし、現在Visual Studio2010 Beta2も一般向けにダウンロード可能になっているため誰でも利用することができます。また、従来通りVisual Web Developer Express Editionでも開発が可能です。
また、Expression BlendもSilverlight4の開発に対応したExpression Blend Preview for .NET4(Expression Blend 4でないことに注意)が現在は英語版のみですがダウンロード可能になっています。
Silverlight 4 Toolsでは待望されていたVisual Studio上でデザイナー画面を使ってコンポーネントをドラッグドロップして配置するという従来のその他のテクノロジーと同様の操作がサポートされましたので、より開発者の方には親しみ深いものになりました。
それでは、以降でSilverlight4で追加された新機能で筆者が特に重要と感じたWebカメラやマイクのデバイスサポートとOut of Browserのtrustedモードをご紹介します。
Webカメラの利用
Silverlight4からはローカルPCに設定されたWebカメラとマイクをアプリケーション上で利用することが可能になりました。
Webカメラから動画を取得し画面に表示する、簡単なコード例を以下に載せます。
リスト1 Webカメラから動画を取得し画面に表示する
if (!CaptureDeviceConfiguration.AllowedDeviceAccess) {
if (!CaptureDeviceConfiguration.RequestDeviceAccess()) {
return;
}
}
CaptureSource source = new CaptureSource();
source.VideoCaptureDevice =
CaptureDeviceConfiguration.GetDefaultVideoCaptureDevice();
VideoBrush video = new VideoBrush();
video.SetSource(source);
VideoField.Fill = video; //Rectangle
try {
source.Start();
} catch (InvalidOperationException) {
MessageBox.Show("キャプチャーを開始できませんでした。");
}
Webカメラのキャプチャができることで、単に映っているものを表示するというのみならずアプリケーションの機能として幅がぐっと広がります。
まず、すぐに思いつくのはビデオチャットでしょう。今までは文字のやり取りしかできなかったものが、お互いに顔を見ながらやり取りすることがSilverlightでも可能になります。
さらに、AR(拡張現実)も可能になります。ARToolkitやiPhoneの世界カメラなどは有名ですね。ああいった現実世界との相互作用を用いたインタラクションがSilverlightでも実現できるようになります。
Out of BrowserのTrustedモード
Out of Browserは先に少し紹介したように、Silverlight3で搭載されました。これがSilverlightでは大きく拡張されています。
まず、動作モードが従来のSandbox内での動作と信頼されたTrustedモードの二つが用意されています。アプリケーションの作成時にどちらで動作してほしいかを指定する形になります。
このTrustedモードが非常に強力な機能を持っています。
クロスドメインアクセス
COMの利用
ローカルファイルの利用
ざっと挙げれば以上のことができるのですが、中でもCOMが利用できることは非常にインパクトがあります。
よく利用されるシーンとしてまず一番に思い浮かぶのがExcelの利用です。ローカルにインストールされたExcelをCOMインターフェイスから直接呼び出して、読み書きできます。今まではサーバーに一旦アップロードするか、または完全にSilverlight内で閉じるにはXML形式で自前で実装する必要がありました。
事実上、COMが公開されていれば、ほぼどんなことでも出来るようになっています。現実的かどうかはさておきADOを使ってSilverlightから直接データベースにつなぐということも可能です。
Trustedモードで動かさなければならないという制限はありますが、企業内など限られた環境ではTrustedモードも利用しやすいためSilverlightアプリケーションとして単体で出来る内容が非常に広がります。
振り返りと今後の展望
さて、Silverlight4の印象的な新機能をご紹介してきましたが、ここで少し今までのSilverlightのリリースを振り返ってみます。
Silverlightは当初WPF/E(Windows Presentation Foundation Everyware)という名前で2005年9月にPDCで構想が発表されました。その後CTPのリリースを経て、2007年4月15日のNAB2007でSilverlightに名称を変更し、15日後の2007年4月30日にSilverlight1.0のBetaがMIX07で公開されています。このとき同時に後のSilverlight2となるSilverlight 1.1 Alphaも公開されました。Silverlight1.0が正式に公開されたのは2007年9月になります。Silverlight1.0はXAML + JavaScriptでの開発になり、メディアを強く意識したものでした。
続くSilverlight2はBeta1が2008年3月にMIX08で公開されました。Beta2からRCを順次公開し、2008年10月に正式版として公開されています。Silverlight2から.NETでの開発が正式にサポートされ、開発者の手に近いものになりました。
現在、正式リリースになっている最新のSilverlight3はBetaが2009年3月にMIX09で公開されています。その約4カ月後の2009年7月に正式版がリリースされています。Silverlight3ではOut of BrowserやPixel Shaderのサポートなど多くの新機能に加えて、既存機能の拡張や整備などが進みより本格的な開発が可能になり、いよいよエンタープライズ分野への適用も進み始めました。
そして現在、Silverlight4 Betaが2009年11月のPDC09で公開されています。
ここまでの流れを簡単に表にまとめると以下のような形になります。
日付 発表/リリース イベント
2005年9月 WPF/E構想発表 PDC05
2006年12月 WPF/E CTP リリース
2007年4月 Silverlight 発表 NAB2007
2007年4月 Silverlight 1.0 Beta/Silverlihgt 1.1Alphaリリース MIX07
2007年9月 Silverlight 1.0 リリース
2008年3月 Silverlight 2 Beta 1リリース MIX08
2008年6月 Silverlight 2 Beta 2リリース
2008年9月 Silverlight 2 RC リリース
2008年10月 Silverlight 2 リリース
2009年3月 Silverlight 3 Betaリリース MIX09
2009年7月 Silverlihgt 3 リリース
2009年11月 Silverlight 4 Beta リリース PDC09
このように表にまとめると分りやすいのですが、WPF/Eの頃はさておきSilverlightと名称変更してからは1.0 , 2 , 3は毎年MIXでBeta版が公開され、その年のうちに正式版がリリースされています。しかし、Silverlight 4 BetaはMIXを待たずにPDCで発表されました。さらに正式版の公開は春ごろとアナウンスされています。さて、春ごろといえばMIX10が開催される予定になっています。あくまでも筆者の予想ではありますが、MIX10は非常に楽しみですね。
さて、少し話は変わりますがマイクロソフトは構想として3S(Three Screen)というものを発表しています。今まではPCのみが事実上唯一のネット端末であったものが、これからは携帯とテレビがこれに混ざりクラウドとシームレスにつながるだろうというものです。
その中でSilverlightはどういう位置づけになるのでしょうか。ここからはあくまでも筆者の予想(というよりはむしろ希望に近い)であり、なんの確証もありませんが、これらのスクリーン上でシームレスにSilverlightが動くようになるのではないでしょうか。既に携帯であるWindows Phoneの上で動作するSilverlightの話は出てきています。iPhoneでは直接的にSilverlightではありませんが、WMVをストリーミングで流してiPhone上で閲覧できるようにAppleと協力しているという話もでています。今後、ストリーミングのみならずSilverlight自体がiPhone上で動くように話が流れていく期待もできます。Googleが出しているAndoroidでもSilverlightが動くようになるとうれしいですね。さらにその先にはテレビが含まれてきます。ブラウザの枠を超えてまさにSilverlight Everywareな状態です。
そんな妄想を膨らませながらSilverlight 4 の正式リリースを待ちつつ、今年もSilverlightから目が離せない一年になりそうです。皆様もSilverlightの今後に期待を寄せつつ、楽しんで一緒に楽しんで頂ければと思います。