はじめに
Silverlightが、それまでのWebブラウザのプラグインという位置づけから一歩抜け出したのは、Silverlight 3でブラウザ外実行というアプリケーションの形態をサポートした時からでしょう。
Silverlight 4では、ブラウザ外実行時に限りHTMLをSilverlightのウインドウ内に表示したり、OSに対してトースト通知を行ったりする機能が追加されています。また、信頼されたアプリケーションという完全信頼の実行形態では、Silverlightのさまざまな制約が緩和され、よりパワフルな機能の利用が可能になります。
また下記のURLでは、毎年パシフィコYokohamaで行われているMicrosoftの大規模カンファレンスTechEdで、Microsoftのデベロッパーエバンジェリストである大西氏によるラウザー外実行に関するセッションビデオを参照できます。
- TechEd 2010 Japan T6-303「Silverlight 4 のブラウザ外実行 徹底解説 第 2 弾」
今回はブラウザ外実行のうち、権限の昇格が必要ない機能について解説します。
ブラウザ外実行の復習と開発ツールのサポート
ブラウザ外実行の設定の方法や基本的な概要は、Silverlight 3時点とあまり変わっていません。まずはこちらの記事を参照して、ブラウザ外実行がどのようなものかを確認してください。
Visual StudioやExpressionBlendを使った設定
Silverlightの機能強化を受け、Visual Studio 2010のブラウザ外実行の設定画面には、表示するウインドウの位置や、Silverlight 4で追加された信頼されたアプリケーションの設定チェックボックス、ウインドウスタイルなどの設定項目が追加されていることを確認できます(図1)。
また、XAMLのデザインツールであるExpression Blend 4でも、ブラウザ外実行の設定を行うことができるようになりました。Expression Blendでは、[プロジェクト]-[Silverlightプロジェクトの設定]メニューから設定できます(図2)。
Silverlight 4で追加されたブラウザ外実行の設定情報も、Silverlight 3の場合と同様に、OutOfBrowserSettings.xmlに保存されます。OutOfBrowserSettings.xmlの詳しい要素の説明は、MSDNの『方法:ブラウザ外実行サポート用にアプリケーションを構成する』を参照してください。
Visual Studio でのデバックの強化
Silverlight 3の連載で紹介したとおり、Visual Studio 2008では、動作中のブラウザ外アプリケーションにVisual Studioでアタッチすることで、デバックを行うことができました。Visual Studio 2010では、Silverlightプロジェクトにブラウザ外実行の設定が行われている場合は、デバックの開始動作の設定でブラウザ外実行アプリケーションを選択できます。この場合、Visual Studioから直接ブラウザ外実行のSilverlightを起動して、アプリケーションのデバックを行うことができます。
また、図3のデバックの設定画面で[ページを指定する]を選択することで、特定ページに埋め込まれたSilverlightアプリケーションのデバックを行うこともできます。
ブラウザ外実行のアプリケーションは、ローカル環境にインストールしたSilverlightアプリケーションを、sllauncherと呼ばれるアプリケーションにホストすることで実現されています。Silverlight 4のsllauncherは /emulateスイッチと/originスイッチを利用することで、インストールされいないXAPファイルを指定して起動する機能が追加されています。起動例を下記に示します。
sllauncher /emulate:"C:¥temp¥sample.xap" /origin:http://localhost
/emulateスイッチは起動するXAPファイルのパスを、/originスイッチには、Silverlightが通信するWebサイトのURLを指定します。たとえSilverlightが通信を行わない場合でも、/emulate スイッチでSilverlightを起動する場合には、/originに何らかのURLを指定する必要があります。もちろん、Visual Studioのアタッチ機能を利用することで、デバックを行うことができます。
sllauncherは、次のディレクトリーに配置されています。
- %ProgramFiles(x86)%¥Microsoft Silverlight¥