@prefix schema: <https://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ks: <https://comcomponent.com/vocab/> .

<https://comcomponent.com/blog/2026/03/18/001-winforms-wpf-winui-decision-table/#article>
    schema:about <https://comcomponent.com/knowledge/windows-forms/>, <https://comcomponent.com/knowledge/wpf/>, <https://comcomponent.com/knowledge/winui/> ;
    schema:mentions <https://comcomponent.com/knowledge/windows-app-sdk/>, <https://comcomponent.com/knowledge/msix/>, <https://comcomponent.com/knowledge/package-identity/>, <https://comcomponent.com/knowledge/xaml-islands/>, <https://comcomponent.com/knowledge/mvvm-pattern/>, <https://comcomponent.com/knowledge/fluent-design/>, <https://comcomponent.com/knowledge/data-binding/>, <https://comcomponent.com/knowledge/sparse-package/>, <https://comcomponent.com/knowledge/unpackaged-app/>, <https://comcomponent.com/knowledge/xaml/>, <https://comcomponent.com/knowledge/gradual-winui-migration/>, <https://comcomponent.com/knowledge/standard-control-centric-app/>, <https://comcomponent.com/knowledge/multi-screen-business-app/>, <https://comcomponent.com/knowledge/windows-native-modern-product/> .

<https://comcomponent.com/knowledge/windows-forms/> a skos:Concept ;
    skos:prefLabel "Windows Forms"@ja ;
    skos:definition "デスクトップGUIアプリケーションを構築するための.NET/.NET FrameworkのUIフレームワーク。"@ja ;
    skos:altLabel "WinForms" ;
    ks:recommendedFor <https://comcomponent.com/knowledge/standard-control-centric-app/> ;
    ks:shouldPrecede <https://comcomponent.com/knowledge/winui/> .

<https://comcomponent.com/knowledge/wpf/> a skos:Concept ;
    skos:prefLabel "WPF"@ja ;
    skos:definition "XAMLでUIを宣言的に記述する、Windows専用のデスクトップUIフレームワーク。ベクターベースの描画とデータバインディングを特徴とする。"@ja ;
    skos:altLabel "Windows Presentation Foundation" ;
    ks:uses <https://comcomponent.com/knowledge/xaml/> ;
    ks:uses <https://comcomponent.com/knowledge/data-binding/> ;
    ks:recommendedFor <https://comcomponent.com/knowledge/multi-screen-business-app/> ;
    ks:shouldPrecede <https://comcomponent.com/knowledge/winui/> .

<https://comcomponent.com/knowledge/winui/> a skos:Concept ;
    skos:prefLabel "WinUI(Windows App SDK)"@ja ;
    skos:definition "Windows App SDKベースのUIフレームワーク。Windows 11のモダンなUIに沿った外観と、Microsoft Store/MSIXとの親和性を持つ。動作対象はWindows 10 バージョン1809(ビルド17763)以降で、Windows 11専用ではない。"@ja ;
    skos:altLabel "WinUI 3" ;
    skos:altLabel "Windows App SDK" ;
    ks:uses <https://comcomponent.com/knowledge/xaml/> ;
    ks:implements <https://comcomponent.com/knowledge/windows-app-sdk/> ;
    ks:recommendedFor <https://comcomponent.com/knowledge/windows-native-modern-product/> ;
    ks:uses <https://comcomponent.com/knowledge/fluent-design/> .

<https://comcomponent.com/knowledge/xaml/> a skos:Concept ;
    skos:prefLabel "XAML"@ja ;
    skos:definition "画面の構造を宣言的に書くためのXMLベースのマークアップ言語。WPFとWinUIが使う。"@ja ;
    skos:altLabel "eXtensible Application Markup Language" .

<https://comcomponent.com/knowledge/data-binding/> a skos:Concept ;
    skos:prefLabel "データバインディング"@ja ;
    skos:definition "画面のプロパティとデータ側のプロパティを結び付け、片方が変わればもう片方も追随させる仕組み。"@ja ;
    skos:altLabel "Data Binding" .

<https://comcomponent.com/knowledge/mvvm-pattern/> a skos:Concept ;
    skos:prefLabel "MVVM(Model-View-ViewModel)"@ja ;
    skos:definition "画面(View)、画面用の状態とコマンド(ViewModel)、業務ロジックとデータ(Model)に分ける設計パターン。"@ja ;
    skos:altLabel "Model-View-ViewModel" ;
    ks:requires <https://comcomponent.com/knowledge/data-binding/> .

<https://comcomponent.com/knowledge/windows-app-sdk/> a skos:Concept ;
    skos:prefLabel "Windows App SDK"@ja ;
    skos:definition "WinUIを含む、今のWindows向け開発ライブラリ群。UI以外の機能もあり、WPF・WinForms・Win32の既存アプリにも追加できる。"@ja ;
    skos:altLabel "WinAppSDK" ;
    ks:shouldPrecede <https://comcomponent.com/knowledge/winui/> .

<https://comcomponent.com/knowledge/msix/> a skos:Concept ;
    skos:prefLabel "MSIX"@ja ;
    skos:definition "package identityを持つ、Windowsのモダンなアプリパッケージング形式。"@ja ;
    skos:altLabel "MSIX" ;
    ks:requires <https://comcomponent.com/knowledge/package-identity/> .

<https://comcomponent.com/knowledge/package-identity/> a skos:Concept ;
    skos:prefLabel "package identity"@ja ;
    skos:definition "MSIXなどのパッケージが持つ、Windowsが認識する一意の識別子。名前、バージョン、アーキテクチャ、ResourceId、発行元という5つの組で構成される。"@ja ;
    skos:altLabel "パッケージID"@ja .

<https://comcomponent.com/knowledge/sparse-package/> a skos:Concept ;
    skos:prefLabel "外部の場所を指すpackaged(sparse package)"@ja ;
    skos:definition "既存のインストーラーをそのまま使いながら、実行ファイルにpackage identityだけを付与できるpackagingモデル。"@ja ;
    skos:altLabel "Sparse Package" ;
    ks:requires <https://comcomponent.com/knowledge/package-identity/> .

<https://comcomponent.com/knowledge/unpackaged-app/> a skos:Concept ;
    skos:prefLabel "unpackaged app"@ja ;
    skos:definition "MSIXなどのパッケージを使わず、従来どおりフォルダに実行ファイルを置く形で配布されるアプリ。"@ja ;
    skos:altLabel "アンパッケージアプリ"@ja ;
    skos:altLabel "従来型のデスクトップアプリ"@ja ;
    ks:incompatibleWith <https://comcomponent.com/knowledge/package-identity/> .

<https://comcomponent.com/knowledge/xaml-islands/> a skos:Concept ;
    skos:prefLabel "XAML Islands"@ja ;
    skos:definition "既存のWPF・WinForms・Win32アプリの一部分に、新しいXAML(WinUI系)のコントロールを埋め込むための仕組み。"@ja .

<https://comcomponent.com/knowledge/gradual-winui-migration/> a skos:Concept ;
    skos:prefLabel "既存WPF/WinFormsへのWinUI段階移行"@ja ;
    skos:definition "既存のWPF/WinFormsアプリに、XAML IslandsなどでWinUI系のコントロールを少しずつ混ぜていく移行構想。"@ja ;
    skos:altLabel "段階移行"@ja ;
    ks:requires <https://comcomponent.com/knowledge/xaml-islands/> ;
    ks:notRecommendedFor <https://comcomponent.com/knowledge/winui/> .

<https://comcomponent.com/knowledge/standard-control-centric-app/> a skos:Concept ;
    skos:prefLabel "標準コントロール中心の業務アプリ"@ja ;
    skos:definition "標準コントロールと入力フォームが中心の、比較的小〜中規模な社内ツール・業務アプリ。"@ja ;
    skos:altLabel "入力フォーム中心のツール"@ja .

<https://comcomponent.com/knowledge/multi-screen-business-app/> a skos:Concept ;
    skos:prefLabel "画面数の多い中〜大規模業務アプリ"@ja ;
    skos:definition "画面数が多く、データバインディング・スタイル・テンプレート・MVVMを活用したい中〜大規模の業務アプリ。"@ja .

<https://comcomponent.com/knowledge/windows-native-modern-product/> a skos:Concept ;
    skos:prefLabel "Windows専用の新規モダン製品UI"@ja ;
    skos:definition "Fluentや最新のWindows体験そのものが製品価値に直結する、Windows専用の新規製品のUI。"@ja .

<https://comcomponent.com/knowledge/fluent-design/> a skos:Concept ;
    skos:prefLabel "Fluent Design System"@ja ;
    skos:definition "Windows 11の見た目と操作感を定めたマイクロソフトのデザイン体系。WinUIが前提にしている。"@ja ;
    skos:altLabel "Fluent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/wpf/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/xaml/> ;
    schema:description "WPFはXAMLで画面を宣言的に記述するUIフレームワークである。"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/desktop/wpf/overview/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winui/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/xaml/> ;
    schema:description "WinUIもXAMLを使ってUIを記述する。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/winui/winui3/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/wpf/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/data-binding/> ;
    schema:description "WPFはデータバインディングを中心機能の1つとして持つ。"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/desktop/wpf/data/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/mvvm-pattern/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/data-binding/> ;
    schema:description "MVVMパターンのViewとViewModelは、データバインディングでつなぐ。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/develop/data-binding/data-binding-and-mvvm> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/wpf/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/mvvm-pattern/> ;
    schema:description "MVVMパターンを採用する場合、WPFはXAML・データバインディング・コマンドを通じて実践しやすい。"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/desktop/wpf/advanced/commanding-overview> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winui/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/mvvm-pattern/> ;
    schema:description "MVVMパターンを採用する場合、WinUIもdata binding/MVVMの導線を普通に持っている。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/develop/data-binding/data-binding-and-mvvm> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winui/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/windows-app-sdk/> ;
    schema:description "WinUIはWindows App SDKのUIフレームワーク部分として実装されている。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/windows-app-sdk/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/wpf/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/windows-app-sdk/> ;
    schema:description "UI全面移行はせず機能だけ足したい場合、既存WPFアプリにも、App Lifecycle・Windowing・Toast NotificationsなどWindows App SDKの機能を追加できる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/windows-app-sdk/migrate-to-windows-app-sdk/wpf-plus-winappsdk> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windows-forms/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/windows-app-sdk/> ;
    schema:description "UI全面移行はせず機能だけ足したい場合、既存WinFormsアプリにも、UIを維持したままWindows App SDKの機能を追加できる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/windows-app-sdk/migrate-to-windows-app-sdk/winforms-plus-winappsdk> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winui/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/msix/> ;
    schema:description "新規のWinUI 3アプリは既定でpackaged、つまりMSIXパッケージ路線が前提になる(sparse packageやunpackagedを明示的に選ばない限り)。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/package-and-deploy/packaging/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/msix/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/package-identity/> ;
    schema:description "packaged(MSIX)モデルはpackage identityを持つ。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/package-and-deploy/packaging/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/sparse-package/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/package-identity/> ;
    schema:description "外部の場所を指すpackaged(sparse package)は、既存のインストーラーを保ったままpackage identityだけを付与する方式である。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/desktop/modernize/grant-identity-to-nonpackaged-apps-overview> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/unpackaged-app/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/package-identity/> ;
    schema:description "unpackagedのアプリはpackage identityを持たない。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/package-and-deploy/packaging/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/wpf/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/xaml-islands/> ;
    schema:description "段階移行を小さく検証する場合、XAML Islandsは既存WPFアプリの一部にWinUI系のコントロールを埋め込む仕組みとして使える。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/windows-app-sdk/release-notes/windows-app-sdk-1-4> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windows-forms/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/xaml-islands/> ;
    schema:description "段階移行を小さく検証する場合、XAML Islandsは既存WinFormsアプリの一部にWinUI系のコントロールを埋め込む仕組みとしても使える。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/windows-app-sdk/release-notes/windows-app-sdk-1-4> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/gradual-winui-migration/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/xaml-islands/> ;
    schema:description "既存WPF/WinFormsへのWinUI段階移行は、XAML Islandsによるコントロール埋め込みに依存する構想である。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/windows-app-sdk/release-notes/windows-app-sdk-1-4> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/gradual-winui-migration/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/winui/> ;
    schema:description "既存WPF/WinFormsへの段階移行を、WinUI導入の主戦略として最初から前提にすることは推奨されない。先に小さく検証すべきとされる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/get-started/windows-developer-faq> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windows-forms/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/standard-control-centric-app/> ;
    schema:description "標準コントロール中心・入力フォーム中心の小〜中規模な社内ツールでは、WinFormsが本記事の推奨である。"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/desktop/winforms/overview/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/wpf/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/multi-screen-business-app/> ;
    schema:description "画面数が多く、データバインディング・スタイル・テンプレート・MVVMを使いたい中〜大規模の業務アプリでは、WPFが本記事の推奨である。"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/desktop/wpf/overview/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winui/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/windows-native-modern-product/> ;
    schema:description "Fluentや最新のWindows体験が製品価値に直結する新規のWindows専用製品では、WinUIが本記事の推奨である。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/winui/winui3/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windows-forms/> ;
    rdf:predicate ks:shouldPrecede ;
    rdf:object <https://comcomponent.com/knowledge/winui/> ;
    schema:description "既存WinFormsアプリが大きい場合は、WinUIへの全面移行を検討するより先に、まずWinForms継続を基本に見るべきとされる。"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/desktop/winforms/overview/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/wpf/> ;
    rdf:predicate ks:shouldPrecede ;
    rdf:object <https://comcomponent.com/knowledge/winui/> ;
    schema:description "既存WPFアプリが大きい場合は、WinUIへの全面移行を検討するより先に、まずWPF継続を基本に見るべきとされる。"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/desktop/wpf/overview/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windows-app-sdk/> ;
    rdf:predicate ks:shouldPrecede ;
    rdf:object <https://comcomponent.com/knowledge/winui/> ;
    schema:description "最新のWindows機能を使いたいだけなら、WinUIへのUI全面移行より先に、既存フレームワークへのWindows App SDK部分導入を検討すべきとされる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/get-started/windows-developer-faq> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winui/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/fluent-design/> ;
    schema:description "WinUIはFluent Design Systemを前提にしたUIフレームワークである。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/winui/winui3/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .
