【MIX10レポート】
Silverlight 4 RCで追加された機能

Silverlightの歴史。2007年の登場以後、クロスプラットフォーム対応のRIAツールとして着実に機能が追加されてきている

会期:3月15日~17日(現地時間)
会場:米国ネバダ州ラスベガスMandalay Bay Convention Center



 MIX10初日の基調講演で製品候補(RC)版の提供が発表されたSilverlight 4。正式リリースは4月を予定し、多くの機能追加が施された。ここでは、Silverlight 4 RCで実現された機能や、セッションで紹介されたデモを紹介する。

●Silverlight 4 RCの概要

 MIX10期間中に提供を開始したSilverlight 4 RC(Build 4.0.50303.0)では、ベータ版にはなかったさまざまな機能が実装された。まずは、その概要を紹介するセッションの内容、デモをピックアップしたい。

 Silverlight 4では、リッチテキストボックスが提供されるが、RC版ではこれに関する機能がいくつか実装されている。リッチテキスト内のテキスト選択、コピー&ペーストなどのクリップボードの活用、さまざまなコンテンツの埋め込みが可能になっている。開発視点でいえば、リッチテキストの操作はUI Automation Text Patternにより抽象化されているのもポイントとなる。

 セッションでは、このリッチテキストコントロールを利用したリッチテキストエディタのデモが行なわれた。

 構文解析は完全に開発視点の話になるが、これまではContentプロパティで指定していたコンテンツ内容を直接指定できるようになったり、xmlnsの属性にsdkやtoolsが追加されたことで、これらのファンクションを呼び出したい場合のXAMLからの指定が大幅に簡略化できるようになる。

 メディアファイルに絡んだ点では、基調講演でも紹介されたとおり、Webカメラやマイクを利用できるようになったのがSliverlight 4の特徴の1つになるが、Silverlightのプロパティ画面には、そのプレビュー設定が設けられた。コンテンツ保護やエラー出力についても新機能が追加されている。Silverlight 4におけるコンテンツ保護の新機能としては、ベータ版ですでに実装されている、PlayReady DRMのオフライン状態での利用なども重要なポイントと言える。

 入出力関連では、基調講演でも紹介があったセカンダリ出力へのフルスクリーン表示、アラビア語やヘブライ語、タイ語、ベトナム語のサポートなどが挙げられる。アラビア語やヘブライ語は、右から左で記述する言語となるが、そうした入力にも対応できるのがポイントだ。

 ネットワーク関連では、アップロードの進捗状況をチェックできるようになり、クライアント側でのネットワークキャッシュの利用が可能になった。http経由でのソケット通信やaccept-languageヘッダのサポートは商用アプリで役立ちそうである。

 データ処理関連では、INotifyErrorDataInfoのデータグリッドでの実行、XPathのサポートが挙げられた。前者はSliverlight 4で追加されたデータ検証を行なうためのインターフェイスで、複数のプロパティにまたがった検証が可能なもの。サーバに問い合わせが必要な検証では非同期通信もサポートされる。RC版ではデータグリッドに対して、これを利用できるようになったというわけだ。

 グラフィックス、印刷周りの機能では、パースペクティブトランスフォーム(遠近感をつけるエフェクト)に対するハードウェアアクセラレーションが可能になったほか、パフォーマンスの改善、印刷エリアの指定などを含む印刷機能が実装された。

Silverlight 4 Betaで実装されていた機能Silverlight 4 RCで実装された新たな機能リッチテキストボックス内で利用できる機能が拡充されている
構文解析周りのアップデート。主に開発者への負担を減らすメディア関連のアップデート。コンテンツ保護、Webカメラに新機能を追加入出力周りでは、サポート言語の追加などが行なわれている。言語は正式版までにさらに増える予定
ネットワーク周りの主なアップデートデータ処理周りはデータグリッドに対するINotifyErrorDataInfoのサポート、Xpathライブラリのサポートが主なものグラフィックスや印刷機能。ハードウェアアクセラレーションはSilverlight 3から適用範囲が広がっている

 デモが行なわれたリッチテキストエディタは、WebブラウザおよびOut-of-Browserで動作するもの。リボン風のUIには、クリップボード、フォント、各種オブジェクトのインサート機能、印刷機能、表示切り替え、ハイライト、XAMLソースの表示機能を持っている。

 リッチテキストボックスそのものが新機能のかたまりといえるもので、さまざまなフォントの利用、データグリッドやカレンダーの埋め込みなどをデモした。また、右クリックすることでコピー&ペーストのコンテキストメニューを呼び出せる。右クリック操作による処理の追加もSliverlight 4の新機能である。

 印刷機能は、そのまま印刷するとリボン風UI部も印刷されてしまうが、先述したとおり印刷エリアの指定が可能なので、リッチテキストボックス内のみ印刷するようになっている。また、印刷プレビュー画面の追加や、テキストが用紙エリアをはみ出した際の対策としてワードラップを行なう処理を、実際のコードとともに紹介している。

Silverlight 4 RCの機能を使ったリッチテキストエディタのデモリッチテキストボックス内に、データグリッドやカレンダーなど異なるオブジェクトを埋め込んでいるクリップボードの利用も可能。クリップボード利用時にはユーザの承認が必要になる
印刷機能のデモでは、リッチテキストボックスの中だけを印刷する例を紹介。さらにそのまま印刷すると用紙の横幅が足りないという問題に対して、印刷プレビュー機能の追加や、ワードラップの追加で解決する手法を紹介した

 もう1つのデモはWebカメラを用いたもの。Webカメラから取り込んだ映像に対して、ピクセルシェーダを用いてエフェクトをかけるというもの。Silverlightのプロパティ画面にWebカメラのプレビュータブが追加されていることも示している。

SilverlightからWebカメラ利用時にもユーザの承認が必要となるSilverlight 4 RCで追加されたプロパティ画面におけるプレビュー表示Webカメラのデモ。動きのある部分を強調表示するエフェクトとオリジナル画像をオーバーレイ表示させている

●Out-of-Browserの機能拡充

 Silverlight 3で採用されたOut-of-BrowserはクロスプラットフォームのRIAツールらしい機能として、Silverlightの特徴の1つになった機能だ。通常Webブラウザ上で動作するSilverlightアプリケーションを、スタンドアロンアプリケーションかのように、Webブラウザ外で動作させる機能である。Silverlight 4では、Out-of-Browserに多くの機能追加が行なわれている。該当セッションからその概要を紹介する。ここの内容はRC版で追加された機能に限定していない点には注意されたい。

 一般的なアップデート内容として、アプリケーション上にWebブラウザ(HTML)をホスティングすることができるようになったことが最初に挙げられる。これはアプリケーション上の一部にWebコンテンツをそのまま表示させることができるものだ。そのためにXAMLにWebBrowserコントロールが追加されている。

 表示されたWebコンテンツにエフェクトをかけることも可能だ。WebBrowserBrushコントロールを用いることで、表示したWebコンテンツに対して、回転や不透明度、拡大/縮小などを指定することができる。

 独立したアプリケーションのように動作するOut-of-Browser画面のカスタマイズ機能も追加された。スタートアップ時の位置や大きさ、サイズの変更が行なえるようになっている。終了時や終了をキャンセルしたときのイベントなども追加されている。

 また、トースト画面を表示させられるようになっている。トースト画面はタスクトレイのところに表示されるポップアップ通知で、最大で400×100ドットの画面を30秒間表示させることができる。

 インストール/アンインストールに関する機能もアップデートされ、コマンドラインを用いたサイレントインストール/アンインストールが可能になった。これはエンタープライズを意識した機能で、スクリプトを用いて社内クライアントすべてにアプリケーションをインストールする、といった用途が可能になる。そのためのコマンドラインツールであるSLLauncher.exeが提供される。

Silverlight 4 RCで追加実装されたOut-of-Browser関連の新機能Silverlight 4のOut-of-Browserの特徴。Webホスティング、画面周りの機能拡充、オフラインDRMを含む保護コンテンツの再生、インストール/アンインストール周りの機能拡充がトピック

 Silverlight 4のOut-of-Browserでもっとも大きな変更点といえるのが、Trusted(信頼された)アプリケーションとして動作させることで、利用できる範囲が広がることだ。SilverlightのOut-of-Browserは、Silverlightが定義するサンドボックス内というセキュアな環境内で動作するのが前提となっていた。Silverlight 4では、Out-of-BrowserをTrustedモードにすることで、従来のサンドボックスを超えた機能が利用できるようになった。

 例えば、ローカルファイルへのアクセス、ドラッグ&ドロップの利用、フルスクリーンモード時のキーボードの占有、COMオートメーションの利用、クライアントからのクロスドメインアクセスといった、サンドボックス内実行ではできないことが可能になる。また、ウィンドウの四隅をラウンドコーナー(丸みのある角)にするといった、画面のカスタマイズ機能も強化される。

 RC版ではXAPファイルの署名機能も追加。XAPファイルはSilverlightアプリケーションの実体ともいえるファイルで、実行に必要な情報がすべて格納されている。このファイルに署名することで、ユーザに対してより信頼性の高いアプリケーションを提供することができる、ということである。

従来のサンドボックスを飛び越えた操作が可能になるTrustedアプリケーションで利用可能な機能。ローカル環境やクロスドメインアクセスなどが特徴になるSilverlightアプリケーション開発時にTrustedモードへの昇格を要求する指定を行なっておくことでTrustedモードが利用できる
Trustedへの昇格を要求するアプリケーションをインストールするさいにはセキュリティダイヤログが表示されるローカルファイルへのアクセス、ラウンドコーナーなどTrustedモードを活用したアプリケーションの例

Silverlight 4 RC以降に追加実装することが予定されている機能

 最後に、RC版以降の拡張予定であるが、新たな言語の追加、クッキーなどの情報を残さないプライベートモードの追加、Google Chromeのサポート、IsoStore(Silverlightが使うキャッシュ領域のようなもの)のパフォーマンス改善、Deep-Zoomのハードウェアアクセラレーションなどが予定されている。

(2010年 3月 23日)

[Reported by 多和田 新也]