【コラム】
通常、SilverlightアプリケーションはHTML文書に組み込まれてInternet ExplorerやFirefoxなどのブラウザ内で動作するものです。しかし、Silverlight 3からはブラウザ外実行(Out of Browser)と呼ばれる新機能によって、デスクトップアプリケーションのようにブラウザとは独立したプロセスとして実行することができるようになりました。
SilverlightやFlashなどの新しいプラットフォームによって視覚的な表現力は補えるようになりましたが、それでもWebベースのアプリケーションやサービスは従来のデスクトップアプリケーションと比較して不便な側面もあります。代表的なデメリットはオンラインでなければ使えず、アプリケーションを利用するためにブラウザを起動して対象のページに移動するという手間を強いられることです。特にWebで動作することが重要ではない業務系の社内アプリケーションではこの点が導入のハードルとなることがあるでしょう。
ブラウザ外実行はSilverlightアプリケーションをクライアントPCにインストールし、デスクトップアプリケーションと同じようにアイコンから直接起動できる仕組みを提供します。これによって、利用者はブラウザを起動せずにアプリケーションにアクセスできるようになります。また、アプリケーションはオンラインとオフラインの状態を識別できるため、オフライン時にはデータをキャッシュしてオンラインになったときに操作を実行するなどの仕組みも実現できます。
Silverlightアプリケーションのインストールはガジェットのように簡単です。プログラムからApplicationクラスのInstall()メソッドを呼び出してインストールを開始することも可能ですが、通常Silverlightアプリケーションがブラウザ外実行に対応していれば、右クリックで表示されるコンテキストメニューにインストール項目があるので、それを選択するだけです。
すると「アプリケーションをインストールします」ダイアログが表示されるので、ショートカットを作成する場所のチェックを設定して「OK」ボタンを押します。これだけでアプリケーションがインストールされるため、利用者にとっても開発者にとってもアプリケーションの配置が楽になるでしょう。ブラウザ外実行の仕組みはXAPファイル内のマネージコードをクライアントPC上のSilverlightランチャーが読み込んで実行しているだけので、プログラム自体に特別な仕掛けは必要ありません。
インストールされたアプリケーションは、ブラウザとは別の独自のプロセス(ウィンドウ)で実行できるようになります。インストール後は、ブラウザを起動することなく「スタート」メニューやデスクトップに作られたくショートカットから直接アプリケーションを起動できます。
アプリケーションは自分自身がブラウザ外で実行されているのか、インストールされているかどうかを調べて処理を分けることもできます。
図04は、ブラウザ外実行で起動しているSilverlightアプリケーションです。インストールしたアプリケーションは、右クリックで表示されるコンテキストメニューの「このアプリケーションを削除します...」からアンインストールできます。
ブラウザ外で実行されるアプリケーションは、ブラウザ情報の取得やJavaScriptとの連携などブラウザに関連する機能を使うことはできません。よって、Silverlightアプリケーションをブラウザ外実行に対応させるには明示的にアプリケーションがブラウザ外実行に対応していることをアプリケーションマニフェストで宣言しなければなりません。Visual Studio 2008を使っている場合、プロジェクトのプロパティを開いて「Silverlight」タブを選択し、「アプリケーションのブラウザー外実行を有効にする」にチェックを入れてください。
続いて「ブラウザー外実行の設定」ボタンを押して、インストールするアプリケーションのタイトルや説明、アイコンなどを設定します。各項目に必要な情報を入力して「OK」ボタンを押してください。
Visual Studioは、プロジェクトにブラウザー外実行の設定を保存したXMLファイル「OutOfBrowserSettings.xml」を追加します。このファイルを開いて、ブラウザー外実行の設定をテキストエディタで編集することも可能です。
ただし、これはビルド時にアプリケーションマニフェストである「AppManifest.xml」と統合されます。ビルド後に生成されたXAPファイル内のアプリケーションマニフェストを開くと、以下のように「Deployment.OutOfBrowserSettings」要素以下に「OutOfBrowserSettings.xml」の内容が結合されています。
コード01 AppManifest.xaml
<Deployment
xmlns="http://schemas.microsoft.com/client/2007/deployment"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
EntryPointAssembly="SilverlightApplication1"
EntryPointType="SilverlightApplication1.App"
RuntimeVersion="3.0.40818.0"
>
<Deployment.OutOfBrowserSettings>
<OutOfBrowserSettings ShortName="Test アプリケーション" EnableGPUAcceleration="False" ShowInstallMenuItem="True">
<OutOfBrowserSettings.Blurb>Silverlight ブラウザ外実行のテストアプリケーションです。</OutOfBrowserSettings.Blurb>
<OutOfBrowserSettings.WindowSettings>
<WindowSettings Title="Kitty on your lap" Height="600" Width="800" />
</OutOfBrowserSettings.WindowSettings>
<OutOfBrowserSettings.Icons />
</OutOfBrowserSettings>
</Deployment.OutOfBrowserSettings>
<Deployment.Parts>
<AssemblyPart x:Name="SilverlightApplication1" Source="SilverlightApplication1.dll" />
</Deployment.Parts>
</Deployment>
Visual Studioを使わずにXAPファイルを直接編集してブラウザー外実行に対応させる場合は、コード01のようにアプリケーションマニフェストにブラウザー外実行の設定を記述します。これらブラウザー外実行の設定情報は、実行時にDeploymentオブジェクトのOutOfBrowserSettingsプロパティから取得できます。
アプリケーションがインストール用のUI(図01の「インストール」ボタンのような)を独自に提供し、右クリックで表示されるコンテキストメニューが不要であれば「OutOfBrowserSettings」要素の「ShowInstallMenuItem」属性をFalseに設定することで非表示に変更できます。この項目のみ、Visual Studio 2008からは設定できません。
このように、ブラウザ外実行によって、Silverlightアプリケーションをデスクトップアプリケーションのように見せることができます。Silverlightでは、ファイルの読み込みや書き込みダイアログで選択されたファイルに対してアクセスできるので、完全にオフラインでの利用を想定した(Web サービスと連動しない)アプリケーションにも応用できるでしょう。
著者プロフィール:赤坂玲音
フリーランスのテクニカルライタ兼アプリケーション開発者。主にクライアント技術、プレゼンテーション技術が専門。2005年から現在まで「Microsoft MVP Visual C++」受賞。技術解説書を中心に著書多数。近著に『Silverlight入門』(翔泳社)などがある。
| Google+アプリ、iOS版に続いてAndroid版も新UIに、独自機能も [16:25 5/25] |
| Googleウェブマスターツール、ナビゲーションやダッシュボード画面を変更 [14:43 5/25] |
| Instagramキラー!? Facebookがカメラアプリをリリース [10:44 5/25] |
| 楽天、マレーシア国内向けのオンラインモール事業に参入 [10:11 5/25] |
| グリー、最大153ヵ国にアプリ配信ができる「GREE Platform」の提供を開始 [09:45 5/25] |
|
【連載】これだけは要チェック! TOEIC(R)単語帳 第108回 今回のお題は…「issue」 [20:00 5/27] キャリア |
|
TVアニメ『ペルソナ4』、新規カットを加えた再編集版を劇場でイベント上映 [20:00 5/27] ホビー |
|
「ギャラクシーエンジェル」の大月悠祐子がWEBで新連載 [19:52 5/27] ホビー |
|
[9nine]制服姿見納め? セーラー服で登場も川島海荷「4人はコスプレ」 [19:15 5/27] エンタメ |
|
「NO.6」4巻は書き下ろしドラマCD付、木乃のサイン会も [18:49 5/27] ホビー |