技术归档文章随笔一句话导航搜索关于

Asp.Net Core

日期: 2023-05-11 分组: .NET 标签: .NET面试 4分钟 663字

Asp.Net Core 优势

跨平台、高性能、模块化、内置依赖注入、现代化的部署方式。

  1. 跨平台支持: 最大的亮点之一是其跨平台能力,可以在 Windows、macOS 和 Linux 等多种操作系统上进行开发和部署。
  2. 高性能:ASP.NET Core 是 ASP.NET 的重写版本,在性能上有了显著提升。
  3. 内置依赖注入:框架内置了对依赖注入的支持,构建松耦合、可测试和易于维护的应用程序。
  4. 模块化和轻量级:采用了模块化的设计,可以根据需要选择所需的组件。
  5. 灵活的部署方式:可以自包含部署,也可以部署到各种 Web 服务器(如 IIS、Nginx、Apache)或容器平台(如 Docker)上。
  6. 基于环境的配置系统:提供了灵活的、基于环境的配置系统,方便管理不同环境下的配置信息。

ASP.NET Core 管道

ASP.NET Core 的请求管道基于 中间件 (Middleware) 模型,它会通过一系列按顺序配置的中间件执行流程。

  1. 服务器接收请求: Kestrel(默认)或其他配置的服务器(如 IIS、Nginx)接收到原始 HTTP 请求。
  2. 构建中间件管道: 在应用程序启动时,通过 Startup 类的 Configure 方法来构建请求处理管道。Configure 方法接收一个 IApplicationBuilder 实例,通过在其上调用 Use、Run 或 Map 等扩展方法来添加中间件组件。
  3. 中间件的处理: 每个中间件组件都是一个类或一个匿名委托,它接收一个 HttpContext 对象。中间件可以执行以下操作:
    1. 执行一些逻辑(如日志记录、错误处理、身份验证、静态文件服务等)。
    2. 选择性地将请求传递给管道中的下一个中间件,通过调用 _next.Invoke(context)(如果它是基于委托的中间件)或调用下一个中间件的 InvokeAsync 方法。
    3. 如果中间件完全处理了请求并生成了响应(例如,一个静态文件中间件找到了请求的文件并发送回客户端),它可以“短路”管道,不再将请求传递给后续中间件。
  4. 终端中间件 (Terminal Middleware): 管道的末端通常有一个终端中间件(例如,MVC 或 Razor Pages 中间件),它负责执行最终的业务逻辑并生成最终的响应。终端中间件通常不会调用下一个中间件。
  5. 响应回传: 响应生成后,会沿着中间件管道反向传递回去,每个中间件都有机会在响应发送回客户端之前进行处理。
人应当是有理想的.
文章目录