知識マップ: IEモードの次はWebView2でいいのか ── ActiveXが動かない制約と現実的な移行設計
記事「IEモードの次はWebView2でいいのか ── ActiveXが動かない制約と現実的な移行設計」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
WebView2はChromiumベースのMicrosoft Edgeを埋め込むコントロールで、既存のWinFormsやWPFアプリに部分的にWeb UIを組み込めるが、ChromiumのためActiveXをホストできず、Tridentエンジンで動くIEモードとは両立しない。ランタイムは自動更新されるEvergreenが原則で、オフラインの製造装置など限定的な場面を除きFixed Versionは避けるべきとされる。ユーザーデータフォルダーを明示的に指定しないと、Program Files配下のアプリでは初期化に失敗する。ネイティブとWebの連携はWebメッセージを基本にし、AddHostObjectToScriptのホストオブジェクト公開は内部でCOMの仕組みを使うため信頼できないコンテンツには登録しない。IEモードのActiveX依存画面を移行するには、ActiveXが担っていた機能をネイティブ側へ再実装しWebメッセージ経由で呼び出す設計が必要になる。
flowchart LR
accTitle: WebView2によるWeb UI組み込みの知識マップ
accDescr: WebView2がChromiumベースのMicrosoft Edgeを利用しActiveXと両立しないこと、Evergreenランタイムとユーザーデータフォルダーの扱い、ネイティブとWebのメッセージ連携、ActiveX機能をネイティブへ再実装する移行設計の関係を示す図です。
webview2["Microsoft Edge WebView2"]
activex["ActiveX"]
microsoft_edge["Microsoft Edge"]
ie_mode["IEモード"]
windows_forms["Windows Forms"]
webview2_user_data_folder["ユーザーデータフォルダー(UDF)"]
webview2_initialization_failure["WebView2の初期化エラー"]
webview2_evergreen_runtime["Evergreenランタイム"]
webview2_fixed_version["Fixed Versionランタイム"]
closed_network["閉域ネットワーク"]
webview2_web_messaging["Webメッセージ連携(PostWebMessageAsJson/WebMessageReceived)"]
webview2_host_object["ホストオブジェクト公開(AddHostObjectToScript)"]
com["COM(コンポーネントオブジェクトモデル)"]
webview2_navigation_whitelist["遷移先ホワイトリスト検査(NavigationStarting)"]
activex_native_reimplementation["ActiveX機能のネイティブ再実装"]
dotnet[".NET(Core以降)"]
dotnet_framework[".NET Framework"]
untrusted_web_content["信頼できないWebコンテンツ"]
webview2 -->|"利用する"| microsoft_edge
webview2 -->|"両立しない"| activex
ie_mode -->|"利用する"| activex
windows_forms -.->|"利用する"| webview2
webview2 -->|"前提とする"| webview2_user_data_folder
webview2_user_data_folder -.->|"原因になり得る"| webview2_initialization_failure
webview2 -.->|"利用する"| webview2_evergreen_runtime
webview2 -.->|"利用する"| webview2_fixed_version
webview2_fixed_version -.->|"推奨される対応"| closed_network
webview2_fixed_version -->|"用いるのは非推奨"| webview2
webview2 -->|"利用する"| webview2_web_messaging
webview2 -.->|"利用する"| webview2_host_object
webview2_host_object -->|"利用する"| com
webview2 -->|"で構成できる"| webview2_navigation_whitelist
activex_native_reimplementation -->|"の後継"| activex
activex_native_reimplementation -->|"前提とする"| webview2_web_messaging
webview2 -.->|"利用する"| dotnet
webview2 -.->|"利用する"| dotnet_framework
webview2_host_object -->|"用いるのは非推奨"| untrusted_web_content
概念間の関係(全19件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- Microsoft Edge WebView2はMicrosoft Edgeを利用します。
- Microsoft Edge WebView2はActiveXと両立しません。
- IEモードはActiveXを利用します。
- Windows FormsはMicrosoft Edge WebView2を利用します。
- Microsoft Edge WebView2はユーザーデータフォルダー(UDF)を前提とします。
- ユーザーデータフォルダー(UDF)はWebView2の初期化エラーの原因になることがあります。
- Microsoft Edge WebView2はEvergreenランタイムを利用します。
- Microsoft Edge WebView2はFixed Versionランタイムを利用します。
- Fixed Versionランタイムは閉域ネットワークに対する本記事の推奨です。
- Fixed VersionランタイムをMicrosoft Edge WebView2に用いることは推奨されません。
- Microsoft Edge WebView2はWebメッセージ連携(PostWebMessageAsJson/WebMessageReceived)を利用します。
- Microsoft Edge WebView2はホストオブジェクト公開(AddHostObjectToScript)を利用します。
- ホストオブジェクト公開(AddHostObjectToScript)はCOM(コンポーネントオブジェクトモデル)を利用します。
- Microsoft Edge WebView2は遷移先ホワイトリスト検査(NavigationStarting)で構成できます。
- ActiveX機能のネイティブ再実装はActiveXの後継に当たります。
- ActiveX機能のネイティブ再実装はWebメッセージ連携(PostWebMessageAsJson/WebMessageReceived)を前提とします。
- Microsoft Edge WebView2は.NET(Core以降)を利用します。
- Microsoft Edge WebView2は.NET Frameworkを利用します。
- ホストオブジェクト公開(AddHostObjectToScript)を信頼できないWebコンテンツに用いることは推奨されません。
主要概念の定義
機械可読データ
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。