ブラウザーでホストされる WPF アプリケーション (XBAP) についてよく寄せられる質問

Windows Presentation Foundation (WPF) は、2006 年に .NET Framework 3.0 の一部としてリリースされました。 WPF アプリをホストして Web ブラウザーで実行できるようにする XAML ブラウザー アプリケーション (XBAP) 機能も、WPF の一部として同時に導入されました。 WPF と XBAP の 2006 年のリリース時点で、利用可能な最も一般的な Web ブラウザーは Internet Explorer 7、Mozilla Firefox 2、Safari 2 でした。 Google Chrome は、2 年後の 2008 年にリリースされたため、まだ利用できませんでした。

XBAP はブラウザーで ClickOnce デプロイ テクノロジを使用します。これは、ユーザーが Web ページ内のリンクをクリックしてアプリをインストールして実行できるようにする Microsoft テクノロジです。 ただし、このテクノロジは、ブラウザーでの NPAPI (Netscape プラグイン アプリケーション プログラミング インターフェイス) のサポートに大きく依存していました。 NPAPI は、セキュリティと安定性の問題により、近年段階的に廃止されています。 Edge、Chrome、Firefox、Safari などの主要なブラウザーでは NPAPI プラグインのサポートが削除されました。これは、実質的にこれらのブラウザーで XBAP アプリを実行できないことを意味します。

XBAP のサポート

Microsoft が XBAP に対して提供している現在のサポート レベルはどのようなものですか?

XBAP は .NET Framework でサポートされています。 .NET 用 WPF には、XBAP のサポートは含まれていません。

XBAP をネイティブにサポートする、現在サポートされているブラウザーはありますか?

厳密に言うと、XBAP 用に設計された、現在サポートされているブラウザーはありません。 Internet Explorer 11 のサポートは 2022 年 6 月 15 日に終了しました。 Microsoft Edge や Google Chrome などの一部のブラウザーには、従来の Internet Explorer サポートを追加する Internet Explorer モード (IE モード) 機能があります。 これらのモードは XBAP 用に設計されていないため、一部の XBAP 機能が正常に機能しない可能性があります。 詳細については、「Internet Explorer (IE) モードとは」を参照してください。

XBAP はどのようにして実行しますか?

XBAP は Web サーバーにデプロイする必要があり、Internet Explorer モード (IE モード) の互換性があるブラウザーを使用する必要があります。 適切な IE セキュリティ ゾーンでアプリを有効にするために、ローカル ポリシーを構成する必要がある場合があります。 詳細については、「Internet Explorer (IE) モードとは」と「Microsoft Edge (IE モード) 向けの従来のブラウザーのサポートを設定する」を参照してください。

移行オプション

XBAP を WPF アプリケーションに変換できますか?

はい。 アプリを標準の WPF アプリケーションに移行し、インストーラーを使用してデプロイできます。 ClickOnce を使用して WPF アプリを発行することはできますが、ClickOnce には IE モードが有効なブラウザーまたは ClickOnce を有効にするプラグインが必要です。

ブラウザーで実行する必要がありますが、どんな選択肢がありますか?

  • Blazor と WebAssembly を使用した ASP.NET Core

    Blazor は、C# を使用するフル スタックの Web アプリです。 コードが整理されていない場合や、コンパートメント化されていない場合は、Blazor でアプリのフロントエンドを書き直さなければならない可能性があります。 Blazor アプリは WebAssembly を使用してデプロイできます。これにより、アプリをブラウザーで完全にクライアント側で実行できます。

    詳細については、Blazor に関するページを参照してください。

  • .NET MAUI

    Windows 以外のオペレーティング システムで実行できるようにアプリを XBAP として作成した場合は、アプリを .NET MAUI に変換してみてください。UI には XAML も使用します。 .NET MAUI は WPF とは異なりますが、多くの似た概念を共有しています。 詳細については、「.NET MAUI とは」を参照してください。

  • OpenSilver

    OpenSilver プロジェクトは、Silverlight の代わりに作成されました。 Silverlight は、かなり前に廃止された WPF のサブセットです。 XBAP プロジェクトが OpenSilver に変換される場合があります。 詳細については、OpenSilver の Web サイトGitHub リポジトリを参照してください。