知識マップ: .NET Generic Hostとは - DI・設定・ログの土台
記事「.NET Generic Hostとは - DI・設定・ログの土台」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
.NET Generic Hostは、依存性注入・設定・ロギング・IHostedServiceやBackgroundServiceによる常駐処理・Ctrl+CやSIGTERMに応じたライフタイム管理を1つの土台にまとめる仕組みで、新しい非WebアプリケーションではHost.CreateApplicationBuilderから組み立てるのが素直とされる。既存コード向けにはHost.CreateDefaultBuilderという経路も残り、ASP.NET CoreのWebApplication.CreateBuilderはかつて別に存在したWeb Hostに代わって、この考え方をWeb用に広げた入口になっている。BackgroundServiceには既定のスコープがないため、scopedなサービスを使うにはIServiceScopeFactoryで明示的にスコープを作る必要があり、代表的なつまずきどころになっている。
flowchart LR
accTitle: .NET Generic Hostの知識マップ
accDescr: Generic HostがDI・設定・ログ・IHostedServiceやBackgroundService・ライフタイム管理をまとめ、Host.CreateApplicationBuilderやWebApplication.CreateBuilderとどうつながるかを示す図
generic_host["Generic Host"]
dependency_injection_dotnet["依存性注入(DI)"]
dotnet_configuration[".NETの構成システム(IConfiguration)"]
dotnet_ilogger["Microsoft.Extensions.Logging(ILogger)"]
ihostedservice["IHostedService"]
host_lifetime["Hostのライフタイム管理(IHostApplicationLifetime)"]
backgroundservice["BackgroundService"]
host_create_application_builder["Host.CreateApplicationBuilder"]
host_create_default_builder["Host.CreateDefaultBuilder"]
web_application_builder["WebApplication.CreateBuilder"]
web_host_legacy["Web Host(IWebHostBuilder)"]
iservice_scope_factory["IServiceScopeFactory"]
dotnet_options_pattern["オプションパターン"]
windows_service["Windowsサービス"]
dotnet[".NET(Core以降)"]
host_application_builder["HostApplicationBuilder"]
generic_host -->|"利用する"| dependency_injection_dotnet
generic_host -->|"利用する"| dotnet_configuration
generic_host -->|"利用する"| dotnet_ilogger
generic_host -->|"利用する"| ihostedservice
generic_host -->|"利用する"| host_lifetime
backgroundservice -->|"実装を担う"| ihostedservice
generic_host -->|"で構成できる"| host_create_application_builder
generic_host -->|"で構成できる"| host_create_default_builder
web_application_builder -->|"の後継"| web_host_legacy
web_application_builder -->|"利用する"| generic_host
backgroundservice -.->|"前提とする"| iservice_scope_factory
dotnet_options_pattern -->|"利用する"| dotnet_configuration
generic_host -.->|"利用する"| windows_service
ihostedservice -.->|"前提とする"| host_lifetime
generic_host -->|"前提とする"| dotnet
host_create_application_builder -->|"利用する"| host_application_builder
概念間の関係(全16件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- Generic Hostは依存性注入(DI)を利用します。
- Generic Hostは.NETの構成システム(IConfiguration)を利用します。
- Generic HostはMicrosoft.Extensions.Logging(ILogger)を利用します。
- Generic HostはIHostedServiceを利用します。
- Generic HostはHostのライフタイム管理(IHostApplicationLifetime)を利用します。
- BackgroundServiceはIHostedServiceの実装を担います。
- Generic HostはHost.CreateApplicationBuilderで構成できます。
- Generic HostはHost.CreateDefaultBuilderで構成できます。
- WebApplication.CreateBuilderはWeb Host(IWebHostBuilder)の後継に当たります。
- WebApplication.CreateBuilderはGeneric Hostを利用します。
- BackgroundServiceはIServiceScopeFactoryを前提とします。
- オプションパターンは.NETの構成システム(IConfiguration)を利用します。
- Generic HostはWindowsサービスを利用します。
- IHostedServiceはHostのライフタイム管理(IHostApplicationLifetime)を前提とします。
- Generic Hostは.NET(Core以降)を前提とします。
- Host.CreateApplicationBuilderはHostApplicationBuilderを利用します。
主要概念の定義
機械可読データ
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。