Skip to main content

.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 CoreServer实现。同时有如下的概念和技术要点:

  • 配置框架
  • 日志框架
  • 依赖注入容器
  • 基于接口或者父类的Service注册和实现
  • middleware
  • 路由系统 Routing
  • Endpoint系统。

基于这些特性组成了处理http requestpipeline, 整个pipeline中都是由框架定义或者用户自定义的middleware来处理用户的Http Request, 并返回结果给用户。

.Net Host的基本技术要点

.Net Host通过提供接口: IHostService和抽象类BackgroundService为用户提供编程接口用于编写长时间运行的应用,同时.Net Host默认做了很多相关的配置,后面的章节我们会仔细论述。

下一节我们从.Net Host本身的技术要点来展开。