知識マップ: .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で明示的にスコープを作る必要があり、代表的なつまずきどころになっている。

.NET Generic Hostの知識マップGeneric HostがDI・設定・ログ・IHostedServiceやBackgroundService・ライフタイム管理をまとめ、Host.CreateApplicationBuilderやWebApplication.CreateBuilderとどうつながるかを示す図利用する利用する利用する利用する利用する実装を担うで構成できるで構成できるの後継利用する前提とする利用する利用する前提とする前提とする利用するGeneric Host依存性注入(DI).NETの構成システム(IConfiguration)Microsoft.Extensions.Logging(ILogger)IHostedServiceHostのライフタイム管理(IHostApplicationLifetime)BackgroundServiceHost.CreateApplicationBuilderHost.CreateDefaultBuilderWebApplication.CreateBuilderWeb Host(IWebHostBuilder)IServiceScopeFactoryオプションパターンWindowsサービス.NET(Core以降)HostApplicationBuilder

概念間の関係(全16件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

Generic Host
構成・DI・ロギングをまとめて面倒を見る.NETの土台。Host.CreateApplicationBuilderを使うと既定の構成プロバイダーの階層が組み立てられる。
依存性注入(DI)
クラスが必要とする相手を自分でnewせず外から渡してもらう設計手法。渡す相手をまとめて登録する置き場がDIコンテナー(IServiceProvider)で、Generic Hostは最初からこれを持つ。
BackgroundService
IHostedServiceの書きやすい実装補助となる抽象クラスで、長く走る本体をExecuteAsyncに書ける。
WebApplication.CreateBuilder
Generic HostにWeb用の都合を足した、ASP.NET Core向けの入口。
オプションパターン
設定を文字列キーではなくPOCOにバインドして型として受け取る.NETの設計パターンの総称。
IHostedService
.NETの汎用ホストが、起動時にStartAsync、停止時にStopAsyncを呼んでくれる仕組み。アプリの寿命に合わせて動く常駐処理の入口。
Host.CreateApplicationBuilder
新しい非Webアプリ向けにHostApplicationBuilderを生成する、現行テンプレートの既定の入口。builder.Servicesなどへ直接書くスタイルを取る。

機械可読データ

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。