.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本身的技术要点来展开。