.Net Host概述
分类: .Net技术 ◆ 标签: #.Net #.Net Host #基础 ◆ 发布于: 2023-06-15 15:29:34

.Net
的用户只需要稍微深入了解一下,一定都知道一个概念叫Host
。 什么是Host
? 我对于.Net Host
的理解是:
.Net Host
是一个框架,这个框架向用户提供很多必须的特性。.Net Host
是一个直接可以运行的库基础,用户只需要根据Host
的设计扩充它并且完善自己的应用。.Net Host
是一个专门设计用于长时间运行任务的基础库。
.Net Host
提供的特性
那么.Net Host
向用户提供了哪些特性呢?
- 向用户提供配置框架,以及默认的配置:从环境变量,命令行,配置文件等自动读入配置,并且支持多种配置来源。
- 向用户提供日志框架。
- 向用户提供依赖注入的容器服务。
- 向用户提供一个在
Host
实现服务的接口:IHostService
, 如果用想基于.Net Host
开发自己的应用,那么完全可以自己实现接口IHostService
就可以完成这个工作了。
有哪些Host
的类型
目前.Net 6
主要有三种类型的Host
:
- 基于
WebApplication
以及WebApplicationBuilder
的用户开发web的Host
, 同时也支持miniapi。 - 用户开发通用应用的
Generic Host
,.Net 6
同时支持这两种host。 - 为了向
.Net core 3
之前兼容的Host
类型WebHost
, 如果你的代码仅仅运行在.Net core 3
以及以上,可以不用考虑这个Host
类型。
在.Net Host
上实现Asp.net Core
的要素
我们上面讨论过.Net Host
提供了哪些特性,其中我们谈到有一个就是提供了一个IHostService
接口,该接口用于实现用户自己的长时间运行的应用,对于Asp.net Core
基本的原理是实现了自己的IHostService
, 也就是我们后面要了解的Asp.net Core
的Server
实现。同时有如下的概念和技术要点:
- 配置框架
- 日志框架
- 依赖注入容器
- 基于接口或者父类的Service注册和实现
middleware
- 路由系统
Routing
Endpoint
系统。
基于这些特性组成了处理http request
的pipeline
, 整个pipeline
中都是由框架定义或者用户自定义的middleware
来处理用户的Http Request
, 并返回结果给用户。
.Net Host
的基本技术要点
.Net Host
通过提供接口: IHostService
和抽象类BackgroundService
为用户提供编程接口用于编写长时间运行的应用,同时.Net Host
默认做了很多相关的配置,后面的章节我们会仔细论述。
下一节我们从.Net Host
本身的技术要点来展开。