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. Hystrix原理与实战(转)

    背景 分布式系统环境下,服务间类似依赖非常常见,一个业务调用通常依赖多个基础服务.如下图,对于同步调用,当库存服务不可用时,商品服务请求线程被阻塞,当有大批量请求调用库存服务时,最终可能导致整个商品服 ...

  2. error C2061: 语法错误: 标识符“openmode”

    今天在一台新机子上编译项目,出现了这个错误,不知如何解决,先记录一下. 1>------ 已启动全部重新生成: 项目: ZERO_CHECK, 配置: Debug x64 ------1> ...

  3. QML工程加载main.qml的两种方式

    1. QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); if (e ...

  4. rf安装对应requests库的方法

    先要安装requests,再安装requestsLibrary pip install requests pip install robotframework-requests github地址 ht ...

  5. 了解有后门的sshd服务是如何劫持密码的

    在服务器上安装一个打了后门补丁的sshd服务,当用户连接时,直接把密码记录下来,然后使用脚本发送到邮箱中. (1).实验环境 使用CentOS6.2作为系统环境,查看sshd和gcc的版本 [root ...

  6. OpenGL程序无法启动此应用程序,因为计算机中丢失glut32.dll(转))

    今天打开一个OpenGL源码,各种修改之后想要运行看一下效果,结果在我的开发环境下出现缺少相应的dll库: Windows7 64位+VS2010 提示:程序无法启动此应用程序,因为计算机中丢失glu ...

  7. MongoDB学习笔记一:MongoDB基础

    目录 MongoDB是什么? 学了有什么用? MongoDB入门 安装 修改数据库位置 MongoDB的启动方式 MongoDB的图形化工具 MongoDB基本命令 增 查询 更新 删除 排序 投影 ...

  8. composer autoload优化

    为生产环境作准备 最后提醒一下,在部署代码到生产环境的时候,别忘了优化一下自动加载: composer dump-autoload --optimize 安装包的时候可以同样使用--optimize- ...

  9. LODOP中table自动分页补线加border

    LODOP中可以用ADD_PRINT_TABLE.ADD_PRINT_HTM.ADD_PRINT_HTML.ADD_PRINT_TBURL等可以输出超文本的表格,超文有超过打印项高度或纸张高度自动分页 ...

  10. easyui datagrid里的toobar按钮隐藏、显示、禁用等方式的实现

    easyui datagrid里的toobar按钮隐藏.显示.禁用等方式的实现 //隐藏第一个按钮 $('div.datagrid-toolbar a').eq(0).hide(); //隐藏第一条分 ...