3.asp.net core 关键概念
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 关键概念的更多相关文章
- .NET 云原生架构师训练营(ASP .NET Core 整体概念推演)--学习笔记
演化与完善整体概念 ASP .NET Core 整体概念推演 整体概念推演到具体的形式 ASP .NET Core 整体概念推演 ASP .NET Core 其实就是通过 web framework ...
- .net core 关键概念
startup startup asp.net core 的入口,在构造函数中完成环境参数的配置. 其中Configure 方法是用来控制如何respond一个http请求的, 例如配置l ...
- 200行代码实现Mini ASP.NET Core
前言 在学习ASP.NET Core源码过程中,偶然看见蒋金楠老师的ASP.NET Core框架揭秘,不到200行代码实现了ASP.NET Core Mini框架,针对框架本质进行了讲解,受益匪浅,本 ...
- Asp.net Core IdentityServer4 入门教程(一):概念解析
目录 1.IdentityServer4 是什么 2.什么是OpenID和OAuth 2.0协议 3.IdentityServer4 可以用来做什么 其他 1.IdentityServer4 是什么 ...
- ASP .Net Core路由(Route) - 纸壳CMS的关键
关于纸壳CMS 纸壳CMS是一个开源免费的,可视化设计,在线编辑的内容管理系统.基于ASP .Net Core开发,插件式设计: GitHub:https://github.com/SeriaWei/ ...
- ASP.NET Core on K8S学习初探(2)K8S基本概念快速一览
在上一篇<单节点环境搭建>中,通过Docker for Windows在Windows开发机中搭建了一个单节点的K8S环境,接下来就是动人心弦的部署ASP.NET Core API到K8S ...
- 【翻译】asp.net core 3.0基本概念
这篇文章描述了开发asp.net core所需要掌握的基本概念. 原文地址:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/?vie ...
- asp.net core 3.x 身份验证-1涉及到的概念
前言 从本篇开始将围绕asp.net core身份验证写个小系列,希望你看完本系列后,脑子里对asp.net core的身份验证原理有个大致印象.至于身份验证是啥?与授权有啥联系?就不介绍了,太啰嗦. ...
- asp.net core 3.x 授权中的概念
前言 预计是通过三篇来将清楚asp.net core 3.x中的授权:1.基本概念介绍:2.asp.net core 3.x中授权的默认流程:3.扩展. 在完全没有概念的情况下无论是看官方文档还是源码 ...
随机推荐
- 初始化html font-size
(function () { var docEl = document.documentElement, resizeEvt = 'orientationchange' in window ? 'or ...
- GitHub上优秀的开源资源
(1)整理了所有跟编程相关的免费书籍 https://github.com/EbookFoundation/free-programming-books/blob/master/free-progra ...
- pytorch模型存储的两种方式
1.保存整个网络结构信息和模型参数信息: torch.save(model_object, './model.pth') 直接加载即可使用: model = torch.load('./model.p ...
- Spring cloud微服务安全实战_汇总
Spring cloud微服务安全实战 https://coding.imooc.com/class/chapter/379.html#Anchor Spring Cloud微服务安全实战-1-1 课 ...
- 用VS Code写C#
目录 前言 下载SDK 安装C#支持 快速创建C#控制台 格式化代码 launch:launch.json must be configured. change 'program' to the pa ...
- CSS3 column 分栏
column的布局形式还没有使用过,后续的bug和解决方案有待检验. column column-count:number: 设置内容分为多少栏显示 column-width:长度单位:设置每一栏的 ...
- SQL网页端在线自定义查询工具
TreeSoft数据库管理系统,是用JAVA开发,基于网页的数据库SQL查询工具.功能包括:数据库的展示,库表的展示,表字段结构的展示,SQL语句的在 线编辑批量执行,表结构的在线设计维护,数据的在线 ...
- RabbitMQ官方教程五 Topic(GOLANG语言实现)
在上一教程中,我们改进了日志记录系统. 我们没有使用只能进行虚拟广播的fanout交换器,而是使用直接交换器,并有可能选择性地接收日志. 尽管使用直接交换改进了我们的系统,但它仍然存在局限性-它不能基 ...
- ffmpeg.编译(20191129)
1.一步步实现windows版ijkplayer系列文章之一——Windows10平台编译ffmpeg 4.0.2,生成ffplay - HarlanC - 博客园.html(https://www. ...
- 根据SNP的位置从基因组提取上下游序列
代码如下: #!/usr/bin/perl -w use strict; die "perl $0 <vcf> <genome>" if(@ARGV = ...