1. StartUp类

Startup.ConfigureServices方法里配置或注册服务

Startup.Configure方法里配置请求处理管道。请求处理管道由一系列中间件组建构成,每个中间件对HttpContext进行异步操作,然后调用下一个中间件组件,或是结束请求。

2.依赖注入

asp.net core拥有内建的依赖注入框架。在应用中,可以通过创建参数中包含目标服务的类型或接口的构造函数,来获取这个服务的实例。

3.中间件

asp.net core包含丰富的内建中间件,你也可以实现自己的中间件。中间件通常是在Startup.Configure方法里,通过调用它的Use...扩展方法来加入到请求处理管道里,比如UseStaticFiles或者UseMvc等。

4.主机

asp.net core在启动时构建一个主机。主机封装了应用需要的所有资源,比如HTTP服务器、中间件、日志系统、依赖注入框架、配置等。之所以把所有的资源放在一个地方,是为了生命周期管理。

有两种主机可用,通用主机和web主机。推荐使用通用主机,web主机是为了向后兼容考虑的。

创建主机的代码在Program.Main方法里:

public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
} public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}

5.服务器

asp.net core应用程序使用HTTP服务器监听http请求。服务器把对应用程序的请求转化为HttpContext。

6.配置

asp.net core中有一系列内建的配置提供器,比如appsettings.json,环境变量,命令行参数等,你也可是实现自定义的配置提供器。

7.选项

asp.net core 尽可能地遵照选项模式来存储和检索配置信息。选项模式使用类来代表一组相关的设置。

8.环境

执行环境包括3中类型:开发,暂存,生产。可以在ASPNETCORE_ENVIRONMENT环境变量里设置具体的执行环境。程序在启动的时候,读取这个环境变量,并且把值存储在IHostingEnvironment实现里。在应用中,可以通过DI依赖注入来获取它的实例。

9.日志

asp.net core支持日志api,它能和许多内建的和第三方日志提供程序通信。

在应用中通过依赖注入获取一个ILogger实例,并调用log方法记录日志。

10.路由

路由就是对请求url和处理程序的映射。

11.错误处理

asp.net core包含内建的错误处理机制。

12.构造HTTP请求

IHttpClientFactory实现可以用来创建HttpClient实例。

13.内容根目录

通常内容根目录指向web app可执行文件所在目录,可以在构建主机的时候配置其他的位置。

14.web根目录

web根目录下存放公共的静态的资源,比如css,js和图片文件,通常指向目录{Content Root}/wwwroot,可以在构建主机的时候配置其他的位置。默认情况下,静态文件中间件只会从web根目录和它的子目录里提供文件。

在razor(.cshtml)文件里,~/代表的就是web根目录。以~/开头的路径被称为虚拟路径。

3.asp.net core 关键概念的更多相关文章

  1. .NET 云原生架构师训练营(ASP .NET Core 整体概念推演)--学习笔记

    演化与完善整体概念 ASP .NET Core 整体概念推演 整体概念推演到具体的形式 ASP .NET Core 整体概念推演 ASP .NET Core 其实就是通过 web framework ...

  2. .net core 关键概念

    startup       startup asp.net core 的入口,在构造函数中完成环境参数的配置. 其中Configure 方法是用来控制如何respond一个http请求的, 例如配置l ...

  3. 200行代码实现Mini ASP.NET Core

    前言 在学习ASP.NET Core源码过程中,偶然看见蒋金楠老师的ASP.NET Core框架揭秘,不到200行代码实现了ASP.NET Core Mini框架,针对框架本质进行了讲解,受益匪浅,本 ...

  4. Asp.net Core IdentityServer4 入门教程(一):概念解析

    目录 1.IdentityServer4 是什么 2.什么是OpenID和OAuth 2.0协议 3.IdentityServer4 可以用来做什么 其他 1.IdentityServer4 是什么 ...

  5. ASP .Net Core路由(Route) - 纸壳CMS的关键

    关于纸壳CMS 纸壳CMS是一个开源免费的,可视化设计,在线编辑的内容管理系统.基于ASP .Net Core开发,插件式设计: GitHub:https://github.com/SeriaWei/ ...

  6. ASP.NET Core on K8S学习初探(2)K8S基本概念快速一览

    在上一篇<单节点环境搭建>中,通过Docker for Windows在Windows开发机中搭建了一个单节点的K8S环境,接下来就是动人心弦的部署ASP.NET Core API到K8S ...

  7. 【翻译】asp.net core 3.0基本概念

    这篇文章描述了开发asp.net core所需要掌握的基本概念. 原文地址:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/?vie ...

  8. asp.net core 3.x 身份验证-1涉及到的概念

    前言 从本篇开始将围绕asp.net core身份验证写个小系列,希望你看完本系列后,脑子里对asp.net core的身份验证原理有个大致印象.至于身份验证是啥?与授权有啥联系?就不介绍了,太啰嗦. ...

  9. asp.net core 3.x 授权中的概念

    前言 预计是通过三篇来将清楚asp.net core 3.x中的授权:1.基本概念介绍:2.asp.net core 3.x中授权的默认流程:3.扩展. 在完全没有概念的情况下无论是看官方文档还是源码 ...

随机推荐

  1. SpringBoot整合Hibernate

    编写配置文件 <!--配置读取properties文件--> <context:property-placeholder location="classpath:jdbc. ...

  2. openresty开发系列28--openresty中操作mysql

    openresty开发系列28--openresty中操作mysql Mysql客户端   应用中最常使用的就是数据库了,尤其mysql数据库,那openresty lua如何操作mysql呢?   ...

  3. postgresql 所有聚合函数整理

    SELECT DISTINCT(proname) FROM pg_proc WHERE proisagg order by proname 查所有 SELECT * FROM pg_proc WHER ...

  4. 003-结构型-06-组合模式(Composite)

    一.概述 将对象组合成树形结构以表示“部分一整体”的层次结构 组合模式是为了表示那些层次结构,同时部分和整体也可能是一样的结构,常见的如文件夹或者树. 通过递归手段来构造树形的对象结构,并可以通过一个 ...

  5. Qt连接数据库

    Qt连接数据库,参数设置 //连接数据库 bool VCManageDatabase::connectMYSQL() { //判断testConnect连接是否存在并连接 if (QSqlDataba ...

  6. 在Spring+MyBatis组合中使用事务

     通过Spring和MyBatis的组合,给出一个较为详细的实例 代码清单:配置Spring+MyBatis测试环境 <?xml version='1.0' encoding='UTF-8' ? ...

  7. 接口请求报错 504 Gateway Time-out

    最近程序接口请求报了一个错误,如图 很明显的请求超时,以前也没出现过这个问题,突然就报了这个错,很懵. 百度之后网上说是nginx的问题,然后突然想起来,因为业务需要我在nginx里配了接口的转发. ...

  8. java-socket-demo的实现

    目录 前言 IO通讯模型 IO通讯模型简介 1. 阻塞式同步IO 2. 非阻塞式同步IO 3. 多路复用IO(阻塞+非阻塞) 4. 异步IO Java对IO模型的支持 注意点及实现方案 TCP粘包/拆 ...

  9. MangoDB

    <MongoDB权威指南> 一.简介 MongoDB是一款强大.灵活.且易于扩展的通用型数据库 1.易用性 MongoDB是一个面向文档(document-oriented)的数据库,而不 ...

  10. 微信小程序bug集

    bug1:navigator标签无法跳转,控制台不报错,解决方案如图