知識マップ: WinForms/WPF/WinUIの選び方 - 実務判断表
記事「WinForms/WPF/WinUIの選び方 - 実務判断表」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
WinForms・WPF・WinUIをどう選ぶかを、新規開発か既存資産の延長か、画面が標準フォーム中心か表現力重視かという軸で整理する記事で、標準コントロール中心の業務アプリにはWinForms、データバインディングとMVVMを活かす中〜大規模業務アプリにはWPF、Fluentや最新のWindows体験が製品価値に直結する新規Windows専用製品にはWinUIを推奨する。WinUIはWindows App SDKのUIフレームワーク部分であり、既定でMSIXパッケージとpackage identityを前提とする一方、Windows App SDK自体は既存のWPF/WinForms資産にも機能追加できるためUI全面移行は必須でないとし、XAML Islandsによる段階移行は主戦略にする前に小さく検証すべきだと注意を促す。
flowchart LR
accTitle: WinForms/WPF/WinUIの選び方の知識マップ
accDescr: WinForms・WPF・WinUIが新規開発と既存資産のどちらに向くかの判断軸、WinUIがWindows App SDK・MSIX・package identityを前提にすること、MVVMとデータバインディングの関係、XAML Islandsによる段階移行への注意点を示す図
windows_forms["Windows Forms"]
wpf["WPF"]
winui["WinUI(Windows App SDK)"]
xaml["XAML"]
data_binding["データバインディング"]
mvvm_pattern["MVVM(Model-View-ViewModel)"]
windows_app_sdk["Windows App SDK"]
msix["MSIX"]
package_identity["package identity"]
sparse_package["外部の場所を指すpackaged(sparse package)"]
unpackaged_app["unpackaged app"]
xaml_islands["XAML Islands"]
gradual_winui_migration["既存WPF/WinFormsへのWinUI段階移行"]
standard_control_centric_app["標準コントロール中心の業務アプリ"]
multi_screen_business_app["画面数の多い中〜大規模業務アプリ"]
windows_native_modern_product["Windows専用の新規モダン製品UI"]
fluent_design["Fluent Design System"]
wpf -->|"利用する"| xaml
winui -->|"利用する"| xaml
wpf -->|"利用する"| data_binding
mvvm_pattern -->|"前提とする"| data_binding
wpf -.->|"利用する"| mvvm_pattern
winui -.->|"利用する"| mvvm_pattern
winui -->|"実装を担う"| windows_app_sdk
wpf -.->|"利用する"| windows_app_sdk
windows_forms -.->|"利用する"| windows_app_sdk
winui -.->|"前提とする"| msix
msix -->|"前提とする"| package_identity
sparse_package -->|"前提とする"| package_identity
unpackaged_app -->|"両立しない"| package_identity
wpf -.->|"利用する"| xaml_islands
windows_forms -.->|"利用する"| xaml_islands
gradual_winui_migration -->|"前提とする"| xaml_islands
gradual_winui_migration -->|"用いるのは非推奨"| winui
windows_forms -->|"推奨される対応"| standard_control_centric_app
wpf -->|"推奨される対応"| multi_screen_business_app
winui -->|"推奨される対応"| windows_native_modern_product
windows_forms -->|"より先に行うべき"| winui
wpf -->|"より先に行うべき"| winui
windows_app_sdk -->|"より先に行うべき"| winui
winui -->|"利用する"| fluent_design
概念間の関係(全24件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- WPFはXAMLを利用します。
- WinUI(Windows App SDK)はXAMLを利用します。
- WPFはデータバインディングを利用します。
- MVVM(Model-View-ViewModel)はデータバインディングを前提とします。
- WPFはMVVM(Model-View-ViewModel)を利用します。
- WinUI(Windows App SDK)はMVVM(Model-View-ViewModel)を利用します。
- WinUI(Windows App SDK)はWindows App SDKの実装を担います。
- WPFはWindows App SDKを利用します。
- Windows FormsはWindows App SDKを利用します。
- WinUI(Windows App SDK)はMSIXを前提とします。
- MSIXはpackage identityを前提とします。
- 外部の場所を指すpackaged(sparse package)はpackage identityを前提とします。
- unpackaged appはpackage identityと両立しません。
- WPFはXAML Islandsを利用します。
- Windows FormsはXAML Islandsを利用します。
- 既存WPF/WinFormsへのWinUI段階移行はXAML Islandsを前提とします。
- 既存WPF/WinFormsへのWinUI段階移行をWinUI(Windows App SDK)に用いることは推奨されません。
- Windows Formsは標準コントロール中心の業務アプリに対する本記事の推奨です。
- WPFは画面数の多い中〜大規模業務アプリに対する本記事の推奨です。
- WinUI(Windows App SDK)はWindows専用の新規モダン製品UIに対する本記事の推奨です。
- Windows FormsはWinUI(Windows App SDK)より先に行うべきです。
- WPFはWinUI(Windows App SDK)より先に行うべきです。
- Windows App SDKはWinUI(Windows App SDK)より先に行うべきです。
- WinUI(Windows App SDK)はFluent Design Systemを利用します。
主要概念の定義
機械可読データ
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。