Windows Presentation Foundation XAML ブラウザ アプリケーションの概要

更新 : 2008 年 7 月

XAML ブラウザ アプリケーション (XBAP) は、Web アプリケーションとリッチ クライアント アプリケーションの両方の機能を組み合わせます。XBAP は、Web アプリケーションと同じように、Web サーバーに公開して Internet Explorer から起動できます。また、リッチ クライアント アプリケーションと同じように、XBAP で WPF の機能を活用できます。XBAP の開発もリッチ クライアントの開発に似ています。このトピックでは、XBAP 開発の概略を示し、XBAP 開発が標準的なリッチ クライアント開発と異なる点を中心に説明します。

このトピックには次のセクションが含まれています。

  • XAML ブラウザ アプリケーション (XBAP) の実装
  • XAML ブラウザ アプリケーションの配置
  • XBAP セキュリティの考慮事項
  • XBAP 起動時のパフォーマンスに関する考慮事項

XAML ブラウザ アプリケーション (XBAP) の実装

新しい XBAP プロジェクトを作成する最も簡単な方法は、Microsoft Visual Studio を使用することです。

  1. [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。

  2. [新しいプロジェクト] ダイアログ ボックスの [プロジェクトの種類] ペインで、[Visual Basic] または [Visual C#] をクリックします。[テンプレート] ペインで [WPF ブラウザ アプリケーション] をクリックします。

  3. プロジェクト名を入力して [OK] をクリックし、新しいプロジェクトを作成します。

WPF ブラウザ アプリケーション テンプレートは、以下を含む XBAP アプリケーション プロジェクトを作成します。

  • アプリケーション定義、Application.xaml。

  • ページ、Page1.xaml。

必要に応じて、これらへの追加が可能です。

コマンド ライン コンパイルを必要とするツールを使用する開発については、「WPF アプリケーション (WPF) のビルド」を参照してください。

XBAP を実行すると、スタンドアロン ウィンドウからではなくブラウザ ウィンドウから起動されます。XBAP を Visual Studio でデバッグする場合、アプリケーションはインターネット ゾーン アクセス許可付きで実行されるため、そのアクセス許可を超えるとセキュリティ例外がスローされます。詳細については、「WPF アプリケーション (WPF) のビルド」を参照してください。

XAML ブラウザ アプリケーションの配置

XBAP をビルドすると、Microsoft ビルド エンジン (MSBuild) によって少なくとも次の 3 つのファイルが生成されます。

  • 実行可能ファイル。コンパイル済みのコードが含まれます。拡張子は .exe です。

  • アプリケーション マニフェスト。これにはアプリケーションに関連付けられたメタデータが含まれ、拡張子は .manifest です。

  • 配置マニフェスト。このファイルには、ClickOnce がアプリケーションの配置に使用する情報が含まれ、拡張子は .xbap です。

XBAP を Web サーバー (Microsoft インターネット インフォメーション サービス (IIS) 以降) に公開します。.NET Framework を Web サーバーにインストールする必要はありませんが、WPF Multipurpose Internet Mail Extensions (MIME) 型とファイル拡張子を登録する必要はあります。詳細については、「方法 : WPF アプリケーションを配置するように IIS 5.0 および IIS 6.0 を構成する」を参照してください。

XBAP を配置用に準備するには、.exe と関連マニフェストを Web サーバーにコピーします。Web ページに配置マニフェストへのハイパーリンクを作成します。ユーザーがそのリンクをクリックして .xbap ファイルに移動すると、アプリケーションのダウンロードと起動を ClickOnce が自動的に処理します。

キャッシュされた XBAP の削除

XBAP を再ビルドして起動した後に、以前のバージョンの XBAP が起動されることがあります。これは、XBAP アセンブリのバージョン番号が固定で、XBAP をコマンド ラインから起動すると起こることがあります。この場合、キャッシュされているバージョン (それまで起動されていたもの) と新しいバージョンとでバージョン番号が変わらないので、XBAP の新しいバージョンはダウンロードされず、キャッシュされたバージョンが読み込まれます。

このような場合は、Mage コマンド (Windows SDK と共にインストールされる) をコマンド プロンプトから使用して、キャッシュされているバージョンを削除できます。

Mage.exe -cc

これにより、キャッシュされているバージョンが見つからなくなるため、XBAP の最新バージョンが起動されるようになります。Visual Studio 2005 を使用してデバッグしている場合は、F5 キーを押すと、XBAP の最新版が起動されます。

一般的に、アセンブリ バージョン番号は、ビルドするたびに更新することをお勧めします。

XBAP セキュリティの考慮事項

XBAP は、インターネット ゾーン アクセス許可セットに制限された部分信頼セキュリティ サンドボックス内で実行する必要があります。したがって、実装ではインターネット ゾーン内でサポートされている WPF 要素のサブセットをサポートする必要があります。「Windows Presentation Foundation のセキュリティ」を参照してください。

Internet Explorer ブラウザ プロセスで WebBrowser ActiveX コントロール (WebOC) をホストするときは、次のセキュリティ制限が適用されます。

  • Internet Explorer は、DHTML alert 関数のモーダル ダイアログ ボックスと、HTML でホストされる ActiveX コントロールをブロックします。Internet Explorer は、アクティブなタブのスレッド以外のスレッドによるダイアログ ボックスを抑制します。

  • XBAP がドメイン間で HTML ページに読み込みまれるときに WebOC コントロールをホストすると、例外が発生します。

XBAP 起動時のパフォーマンスに関する考慮事項

XBAP のパフォーマンスにとって重要な側面は、その起動時にあります。最初に読み込む WPF アプリケーションが XBAP である場合は、コールド スタート時間が 10 秒以上かかる可能性があります。これは、進行状況ページは WPF によってレンダリングされますが、そのページを表示するには CLR と WPF の両方をコールド スタートする必要があるためです。

Visual Studio 2008 SP1 以降、XBAP のコールド スタート時間は、アンマネージ進行状況ページを配置サイクルの初期に表示することで短縮されています。進行状況ページは、ネイティブ ホスティング コードによって表示され、HTML でレンダリングされるので、ほぼアプリケーションの起動直後に表示されます。

さらに、ClickOnce のダウンロード シーケンスの同時実行の改良によって、開始時間は最大 10% 短縮されます。ClickOnce がマニフェストをダウンロードして評価した後、アプリケーションのダウンロードが開始され、プログレス バーの更新が開始されます。

履歴の変更

日付

履歴

理由

2008 年 7 月

XBAP 起動時のパフォーマンスに関するセクションを追加

SP1 機能変更