@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/14/000-dotnet-generic-host-what-is/#article>
    schema:about <https://comcomponent.com/knowledge/generic-host/>, <https://comcomponent.com/knowledge/dependency-injection-dotnet/> ;
    schema:mentions <https://comcomponent.com/knowledge/host-application-builder/>, <https://comcomponent.com/knowledge/host-create-application-builder/>, <https://comcomponent.com/knowledge/host-create-default-builder/>, <https://comcomponent.com/knowledge/web-application-builder/>, <https://comcomponent.com/knowledge/web-host-legacy/>, <https://comcomponent.com/knowledge/ihostedservice/>, <https://comcomponent.com/knowledge/backgroundservice/>, <https://comcomponent.com/knowledge/host-lifetime/>, <https://comcomponent.com/knowledge/dotnet-configuration/>, <https://comcomponent.com/knowledge/dotnet-options-pattern/>, <https://comcomponent.com/knowledge/dotnet-ilogger/>, <https://comcomponent.com/knowledge/iservice-scope-factory/>, <https://comcomponent.com/knowledge/windows-service/>, <https://comcomponent.com/knowledge/dotnet/> .

<https://comcomponent.com/knowledge/generic-host/> a skos:Concept ;
    skos:prefLabel "Generic Host"@ja ;
    skos:definition "構成・DI・ロギングをまとめて面倒を見る.NETの土台。Host.CreateApplicationBuilderを使うと既定の構成プロバイダーの階層が組み立てられる。"@ja ;
    skos:altLabel "HostApplicationBuilder" ;
    skos:altLabel "Host.CreateApplicationBuilder" ;
    ks:uses <https://comcomponent.com/knowledge/dependency-injection-dotnet/> ;
    ks:uses <https://comcomponent.com/knowledge/dotnet-configuration/> ;
    ks:uses <https://comcomponent.com/knowledge/dotnet-ilogger/> ;
    ks:uses <https://comcomponent.com/knowledge/ihostedservice/> ;
    ks:uses <https://comcomponent.com/knowledge/host-lifetime/> ;
    ks:configuredBy <https://comcomponent.com/knowledge/host-create-application-builder/> ;
    ks:configuredBy <https://comcomponent.com/knowledge/host-create-default-builder/> ;
    ks:requires <https://comcomponent.com/knowledge/dotnet/> .

<https://comcomponent.com/knowledge/dependency-injection-dotnet/> a skos:Concept ;
    skos:prefLabel "依存性注入(DI)"@ja ;
    skos:definition "クラスが必要とする相手を自分でnewせず外から渡してもらう設計手法。渡す相手をまとめて登録する置き場がDIコンテナー(IServiceProvider)で、Generic Hostは最初からこれを持つ。"@ja ;
    skos:altLabel "Dependency Injection" ;
    skos:altLabel "IServiceProvider" ;
    skos:altLabel "依存性注入 (DI)"@ja ;
    skos:altLabel "DIコンテナ"@ja .

<https://comcomponent.com/knowledge/dotnet-configuration/> a skos:Concept ;
    skos:prefLabel ".NETの構成システム(IConfiguration)"@ja ;
    skos:definition "JSON・環境変数・コマンドライン引数など性質の異なる構成ソースを、複数の構成プロバイダーの重ね合わせとして背後に統合する.NETのキー・バリューストア。"@ja ;
    skos:altLabel "IConfiguration" ;
    skos:altLabel "Configuration System" .

<https://comcomponent.com/knowledge/dotnet-ilogger/> a skos:Concept ;
    skos:prefLabel "Microsoft.Extensions.Logging(ILogger)"@ja ;
    skos:definition ".NET標準のログAPI。ログレベル・カテゴリ・出力先を差し替えるプロバイダーの仕組みを持ち、多くの.NET SDKに暗黙の参照として含まれる。"@ja ;
    skos:altLabel ".NET標準のILogger API"@ja ;
    skos:altLabel "ILogger / ロギング基盤"@ja ;
    skos:altLabel "ILogger<T>" .

<https://comcomponent.com/knowledge/ihostedservice/> a skos:Concept ;
    skos:prefLabel "IHostedService"@ja ;
    skos:definition ".NETの汎用ホストが、起動時にStartAsync、停止時にStopAsyncを呼んでくれる仕組み。アプリの寿命に合わせて動く常駐処理の入口。"@ja .

<https://comcomponent.com/knowledge/host-lifetime/> a skos:Concept ;
    skos:prefLabel "Hostのライフタイム管理(IHostApplicationLifetime)"@ja ;
    skos:definition "Ctrl+C・SIGTERM・サービス停止などの合図を受けて、アプリの開始から停止までの終わり方をそろえる仕組み。"@ja ;
    skos:altLabel "IHostApplicationLifetime" .

<https://comcomponent.com/knowledge/backgroundservice/> a skos:Concept ;
    skos:prefLabel "BackgroundService"@ja ;
    skos:definition "IHostedServiceの書きやすい実装補助となる抽象クラスで、長く走る本体をExecuteAsyncに書ける。"@ja ;
    skos:altLabel "BackgroundService クラス"@ja ;
    ks:implements <https://comcomponent.com/knowledge/ihostedservice/> .

<https://comcomponent.com/knowledge/host-create-application-builder/> a skos:Concept ;
    skos:prefLabel "Host.CreateApplicationBuilder"@ja ;
    skos:definition "新しい非Webアプリ向けにHostApplicationBuilderを生成する、現行テンプレートの既定の入口。builder.Servicesなどへ直接書くスタイルを取る。"@ja ;
    ks:uses <https://comcomponent.com/knowledge/host-application-builder/> .

<https://comcomponent.com/knowledge/host-create-default-builder/> a skos:Concept ;
    skos:prefLabel "Host.CreateDefaultBuilder"@ja ;
    skos:definition "既存コードや古い拡張メソッド主体の構成向けに、ConfigureServicesなどをチェーンする書き方でhostを組み立てる従来の入口。"@ja .

<https://comcomponent.com/knowledge/web-application-builder/> a skos:Concept ;
    skos:prefLabel "WebApplication.CreateBuilder"@ja ;
    skos:definition "Generic HostにWeb用の都合を足した、ASP.NET Core向けの入口。"@ja ;
    skos:altLabel "WebApplicationBuilder" ;
    ks:succeeds <https://comcomponent.com/knowledge/web-host-legacy/> ;
    ks:uses <https://comcomponent.com/knowledge/generic-host/> .

<https://comcomponent.com/knowledge/web-host-legacy/> a skos:Concept ;
    skos:prefLabel "Web Host(IWebHostBuilder)"@ja ;
    skos:definition "かつてASP.NET Coreにあった、非WebのGeneric Hostとは別に用意されていたWeb専用のホスト機構。"@ja ;
    skos:altLabel "IWebHostBuilder" .

<https://comcomponent.com/knowledge/iservice-scope-factory/> a skos:Concept ;
    skos:prefLabel "IServiceScopeFactory"@ja ;
    skos:definition "明示的にDIのscopeを作るためのファクトリー。BackgroundServiceのように既定scopeを持たない場所でscopedサービスを使うのに使う。"@ja .

<https://comcomponent.com/knowledge/dotnet-options-pattern/> a skos:Concept ;
    skos:prefLabel "オプションパターン"@ja ;
    skos:definition "設定を文字列キーではなくPOCOにバインドして型として受け取る.NETの設計パターンの総称。"@ja ;
    skos:altLabel "Options Pattern" ;
    skos:altLabel "IOptionsファミリー"@ja ;
    ks:uses <https://comcomponent.com/knowledge/dotnet-configuration/> .

<https://comcomponent.com/knowledge/windows-service/> a skos:Concept ;
    skos:prefLabel "Windowsサービス"@ja ;
    skos:definition "ユーザーのサインインと無関係にバックグラウンドで動くWindowsのプロセス。"@ja ;
    skos:altLabel "サービス"@ja .

<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 .

<https://comcomponent.com/knowledge/host-application-builder/> a skos:Concept ;
    skos:prefLabel "HostApplicationBuilder"@ja ;
    skos:definition "Generic Hostを組み立てるためのビルダーオブジェクト。Services・Configuration・LoggingといったプロパティへBuild()を呼ぶまで登録していく。"@ja .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/generic-host/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/dependency-injection-dotnet/> ;
    schema:description "Generic HostはIServiceCollectionからのDIコンテナーを最初から持っている"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/extensions/generic-host/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/generic-host/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/dotnet-configuration/> ;
    schema:description "Generic Hostはappsettingsや環境変数、コマンドライン引数などをまとめるConfigurationの仕組みを含む"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/extensions/configuration/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/generic-host/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/dotnet-ilogger/> ;
    schema:description "Generic HostはILogger<T>を使うためのロギング基盤を作る"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/extensions/generic-host/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/generic-host/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/ihostedservice/> ;
    schema:description "Generic HostはIHostedServiceの起動と停止を扱う"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/extensions/workers/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/generic-host/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/host-lifetime/> ;
    schema:description "Generic HostはIHostApplicationLifetimeなどを通じて開始・停止を扱う"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/extensions/generic-host/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/backgroundservice/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/ihostedservice/> ;
    schema:description "BackgroundServiceはIHostedServiceの実装を簡略化する基底クラスで、ExecuteAsyncを介して常駐処理を書く"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/extensions/workers/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/generic-host/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/host-create-application-builder/> ;
    schema:description "新しい非Webアプリでは、Host.CreateApplicationBuilder(args)からGeneric Hostを構成するのが素直とされる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/extensions/generic-host/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/generic-host/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/host-create-default-builder/> ;
    schema:description "既存コードや古い拡張メソッド主体の構成に合わせる事情があるなら、Host.CreateDefaultBuilderでGeneric Hostを構成する経路も残っている"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/extensions/generic-host/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/web-application-builder/> ;
    rdf:predicate ks:succeeds ;
    rdf:object <https://comcomponent.com/knowledge/web-host-legacy/> ;
    schema:description "かつてASP.NET Core専用だったWeb Host(IWebHostBuilder)は、その後Generic Hostに寄せられ、WebApplication.CreateBuilderがその入口になった"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/aspnet/core/fundamentals/host/generic-host?view=aspnetcore-10.0> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/web-application-builder/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/generic-host/> ;
    schema:description "WebApplication.CreateBuilder(args)は、Generic Hostの考え方をWeb用に広げた入口である"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/aspnet/core/fundamentals/host/generic-host?view=aspnetcore-10.0> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/backgroundservice/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/iservice-scope-factory/> ;
    schema:description "BackgroundServiceには既定のscopeがないため、scopedサービスを使うにはIServiceScopeFactoryで明示的にscopeを作る必要がある"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/extensions/scoped-service/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dotnet-options-pattern/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/dotnet-configuration/> ;
    schema:description "Options パターンは設定のセクションをConfigurationから読み取ってクラスへ束ねる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/extensions/options/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/generic-host/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/windows-service/> ;
    schema:description "常駐workerとして育てる場合、BackgroundServiceを使ってWindows Service化できる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/extensions/windows-service/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ihostedservice/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/host-lifetime/> ;
    schema:description "hosted serviceの開始・停止はhostのライフタイム管理と連動して動く"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/extensions/generic-host/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/generic-host/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/dotnet/> ;
    schema:description "Generic HostはMicrosoft.Extensions.Hostingパッケージとして.NET上で提供される"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/extensions/generic-host/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/host-create-application-builder/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/host-application-builder/> ;
    schema:description "Host.CreateApplicationBuilder(args)は、Services・Configuration・Loggingを持つHostApplicationBuilderのインスタンスを返す"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/extensions/generic-host/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .
