@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/13/001-dotnet-native-aot-what-is/#article>
    schema:about <https://comcomponent.com/knowledge/native-aot/> ;
    schema:mentions <https://comcomponent.com/knowledge/jit-compilation/>, <https://comcomponent.com/knowledge/readytorun/>, <https://comcomponent.com/knowledge/self-contained-deployment/>, <https://comcomponent.com/knowledge/single-file-deployment/>, <https://comcomponent.com/knowledge/trimming/>, <https://comcomponent.com/knowledge/source-generator/>, <https://comcomponent.com/knowledge/reflection-dotnet/>, <https://comcomponent.com/knowledge/dynamic-code-generation/>, <https://comcomponent.com/knowledge/builtin-com-interop/>, <https://comcomponent.com/knowledge/comwrappers/>, <https://comcomponent.com/knowledge/system-text-json-source-gen/>, <https://comcomponent.com/knowledge/wpf/>, <https://comcomponent.com/knowledge/windows-forms/>, <https://comcomponent.com/knowledge/dotnet/> .

<https://comcomponent.com/knowledge/native-aot/> a skos:Concept ;
    skos:prefLabel "Native AOT"@ja ;
    skos:definition ".NETアプリを単一のネイティブバイナリへ事前コンパイルする発行方式。非対応リストにC++/CLIが明記されている。"@ja ;
    skos:altLabel "PublishAot" ;
    ks:requires <https://comcomponent.com/knowledge/trimming/> ;
    ks:incompatibleWith <https://comcomponent.com/knowledge/dynamic-code-generation/> ;
    ks:incompatibleWith <https://comcomponent.com/knowledge/builtin-com-interop/> ;
    ks:uses <https://comcomponent.com/knowledge/source-generator/> ;
    ks:requires <https://comcomponent.com/knowledge/self-contained-deployment/> ;
    ks:requires <https://comcomponent.com/knowledge/dotnet/> .

<https://comcomponent.com/knowledge/jit-compilation/> a skos:Concept ;
    skos:prefLabel "JIT(Just-In-Time)コンパイル"@ja ;
    skos:definition "実行時に中間コード(.NETのILやJavaのバイトコードなど)からネイティブコードを生成するコンパイル方式。"@ja ;
    skos:altLabel "実行時JIT"@ja .

<https://comcomponent.com/knowledge/readytorun/> a skos:Concept ;
    skos:prefLabel "ReadyToRun"@ja ;
    skos:definition "ILを残したまま、JITの仕事の一部をpublish時に前倒しする発行方式。実行時JITもまだ使う場面がある。"@ja ;
    skos:altLabel "R2R" .

<https://comcomponent.com/knowledge/trimming/> a skos:Concept ;
    skos:prefLabel "trimming(トリミング)"@ja ;
    skos:definition "publish時に使われていないコードを削る.NETの機能。Native AOTではほぼ前提になる。"@ja ;
    skos:altLabel "Trimming" .

<https://comcomponent.com/knowledge/reflection-dotnet/> a skos:Concept ;
    skos:prefLabel "リフレクション"@ja ;
    skos:definition "実行時に型やメンバーを動的に調べたり呼び出したりする.NETの機能。Native AOTでは制約が強くなる。"@ja ;
    skos:altLabel "Reflection" .

<https://comcomponent.com/knowledge/dynamic-code-generation/> a skos:Concept ;
    skos:prefLabel "動的コード生成(Reflection.Emit等)"@ja ;
    skos:definition "実行時にILやコードを生成する仕組み。Native AOTでは使えない。"@ja ;
    skos:altLabel "System.Reflection.Emit" .

<https://comcomponent.com/knowledge/builtin-com-interop/> a skos:Concept ;
    skos:prefLabel "built-in COM interop"@ja ;
    skos:definition "WindowsがOS標準で提供するCOM相互運用機構。Native AOTには存在しない。"@ja ;
    skos:altLabel "built-in COM" .

<https://comcomponent.com/knowledge/comwrappers/> a skos:Concept ;
    skos:prefLabel "ComWrappers / source-generated COM"@ja ;
    skos:definition "built-in COMを使わずにCOM相互運用を実現する、source generatorベースの仕組み。"@ja ;
    skos:altLabel "ComWrappers" ;
    ks:recommendedFor <https://comcomponent.com/knowledge/native-aot/> .

<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:incompatibleWith <https://comcomponent.com/knowledge/trimming/> ;
    ks:notRecommendedFor <https://comcomponent.com/knowledge/native-aot/> .

<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:requires <https://comcomponent.com/knowledge/builtin-com-interop/> ;
    ks:notRecommendedFor <https://comcomponent.com/knowledge/native-aot/> .

<https://comcomponent.com/knowledge/source-generator/> a skos:Concept ;
    skos:prefLabel "source generator"@ja ;
    skos:definition "実行時の動的処理をビルド時のコード生成へ寄せる仕組み。Native AOTと相性がよい。"@ja ;
    skos:altLabel "ソースジェネレーター"@ja .

<https://comcomponent.com/knowledge/system-text-json-source-gen/> a skos:Concept ;
    skos:prefLabel "System.Text.Jsonのsource generation"@ja ;
    skos:definition "reflectionに頼らずJSONのシリアライズ・デシリアライズコードをビルド時に生成する仕組み。"@ja ;
    skos:altLabel "JsonSerializerContext" ;
    ks:mitigates <https://comcomponent.com/knowledge/reflection-dotnet/> .

<https://comcomponent.com/knowledge/self-contained-deployment/> a skos:Concept ;
    skos:prefLabel "self-contained発行"@ja ;
    skos:definition "アプリの実行に必要な.NETランタイム一式も一緒に配布する発行形式。"@ja ;
    skos:altLabel "self-contained" .

<https://comcomponent.com/knowledge/single-file-deployment/> a skos:Concept ;
    skos:prefLabel "single-file発行"@ja ;
    skos:definition "配布物を1ファイルにまとめる発行オプション。"@ja ;
    skos:altLabel "single-file" .

<https://comcomponent.com/knowledge/dotnet/> a skos:Concept ;
    skos:prefLabel ".NET(Core以降)"@ja ;
    skos:definition ".NET Frameworkの後継となる、クロスプラットフォーム対応の.NETランタイム(.NET 5以降)。"@ja ;
    skos:altLabel ".NET Core" ;
    skos:altLabel "モダンな.NET"@ja .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/native-aot/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/jit-compilation/> ;
    schema:description "publish時に生成されるNative AOTのネイティブバイナリは実行時JITを使わない。ただし通常のdotnet runや開発時の実行は引き続きJITのままである"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/readytorun/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/jit-compilation/> ;
    schema:description "ReadyToRunはILを残したままJITの仕事の一部を前倒しするが、実行時JITもまだ使う場面がある"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/deploying/ready-to-run> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/native-aot/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/trimming/> ;
    schema:description "Native AOTはtrimmingとほぼ前提として結びついた発行モデルである"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/prepare-libraries-for-trimming> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/native-aot/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/reflection-dotnet/> ;
    schema:description "実行時に見て決める自由なリフレクションは、publish時に必要コードを確定しにくくNative AOTと相性が悪い"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/fixing-warnings> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/native-aot/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/dynamic-code-generation/> ;
    schema:description "System.Reflection.Emitのような実行時コード生成はNative AOTでは使えない"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/fixing-warnings> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/native-aot/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/builtin-com-interop/> ;
    schema:description "WindowsのNative AOTにはbuilt-in COMが無い"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/incompatibilities> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/comwrappers/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/native-aot/> ;
    schema:description "COM相互運用がどうしても必要な場合、built-in COMの代わりにComWrappers/source-generated COMを前提に設計し直すことがNative AOTでは有力な選択肢になる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/standard/native-interop/comwrappers-source-generation> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/wpf/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/trimming/> ;
    schema:description "WPFはreflectionと実行時のコード検査への依存が強くtrimming後にほぼ動かないため、.NET SDK側でtrimmingサポートが無効化されている"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/incompatibilities> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windows-forms/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/builtin-com-interop/> ;
    schema:description "WinFormsはbuilt-in COM marshallingへの依存が重い"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/incompatibilities> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/wpf/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/native-aot/> ;
    schema:description "trimmingとの相性が悪いため、WPF本体を最初のNative AOT候補にするのは慎重に見るべきとされる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/incompatibilities> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windows-forms/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/native-aot/> ;
    schema:description "built-in COM marshallingへの依存が重いため、WinForms本体を最初のNative AOT候補にするのは慎重に見るべきとされる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/incompatibilities> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/native-aot/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/source-generator/> ;
    schema:description "Native AOTはsource generatorと相性がよく、実行時の動的処理をビルド時へ寄せる設計と噛み合う"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/source-generation> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/system-text-json-source-gen/> ;
    rdf:predicate ks:mitigates ;
    rdf:object <https://comcomponent.com/knowledge/reflection-dotnet/> ;
    schema:description "System.Text.Jsonのsource generationは、reflectionに頼らずシリアライズコードをビルド時に生成することで、Native AOTとの相性問題を避けやすくする"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/source-generation> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/native-aot/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/self-contained-deployment/> ;
    schema:description "Native AOTはself-contained系の発行モデルとして考える"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/native-aot/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/single-file-deployment/> ;
    schema:description "single-fileの本質とは別だが、Native AOTの発行結果はsingle-fileに近い1本の実行ファイルになりやすい"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/native-aot/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/dotnet/> ;
    schema:description "Native AOTは.NET 8以降のSDKでサポートされる発行方式である"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .
