asp网上书店系统_Asp.net Core启动流程讲解(一)
asp.net core默认项目包括
项目根目录级的Startup.cs、Program.cs、appsettings.json(appsettings.Development.json) launchSettings.json
Controllers文件夹下面的ValuesController.cs
以及启动配置文件launchSettings.json
Program.cs
Program.cs 配置程序启动项以及各类初始化, Asp.net Core 3.0以及以后版本的替换依赖注入就得在Program内配置
.net core 3.0之前的Program.cs
.net core 3.0之后的Program.cs
.net core 3.0之前的Program.cs
.net core 2.2以及之前的版本,控制容器的,主要是WebHost,默认实现也以此为主
在WebHost.CreateDefaultBuilder(args)之后,就可以完成各种对于WebHost的配置,常见的默认函数 UseStartu、UseUrl以及UseConfiguration等。
执行完CreateWebHostBuilder函数后,返回IWebHostBuilder,然后Build->Run项目启动
.net core 3.0之后的Program.cs
.net core 3.0以及以后,控制容器的,从WebHost变成Host,默认实现也以此为主
在WebHost.CreateDefaultBuilder(args)之后,执行ConfigureWebHostDefaults函数,在函数内就可以完成各种对于WebHost的配置,常见的默认函数 UseStartu、UseUrl以及UseConfiguration等。
执行完CreateWebHostBuilder函数后,返回IWebHostBuilder,然后Build->Run项目启动
Startup.cs
Startup是Asp.net core启动程序
Startup启动过程中默认实现并启动了IStartup接口和IStartupFilter接口
IStartup是Starup的隐式实现,IStartupFilter是启动过程中的过滤器,可以完成一些加载在asp.net core管道/中间件之前的额外流程
IStartup/Startup
Starup是根据IStartup实现的
public interface IStartup { IServiceProvider ConfigureServices(IServiceCollection services); void Configure(IApplicationBuilder app); }
ConfigureServices方法只能有一个参数,且参数类型为IServiceCollection,返回值为IServiceProvider
Startup类的ConfigureServices方法,在asp.net core 3.0以及以上,返回值只能为void
Configure方法可以依赖注入多个Singleton/Transient生命周期的服务
IStartupFilter
IStartupFilter是启动前的过滤器
public interface IStartupFilter { Action Configure(Action next); }
在启动过程中,通过Ioc容器获取一组IStartupFilter实力,然后列表反转执行
private RequestDelegate BuildApplication(){ .. IApplicationBuilder builder = builderFactory.CreateBuilder(Server.Features); builder.ApplicationServices = _applicationServices; var startupFilters = _applicationServices.GetService>(); Action configure = _startup.Configure; foreach (var filter in startupFilters.Reverse()) { configure = filter.Configure(configure); } configure(builder); return builder.Build();}
后记
开了一个系列,杂谈一下asp.net core的内容,做一下系统性的总结分享。网上不缺乏分享asp.net core细节的,无论是源码级,还是应用上的sample,但是缺乏一个系统性的系列。
不自量力,想分享一点。
asp网上书店系统_Asp.net Core启动流程讲解(一)相关推荐
- (附源码)ssm网上书店系统 毕业设计 061436
SSM网上书店系统 摘 要 随着科学技术的飞速发展,社会的方方面面.各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,网上书店系统当然也不能排除在外.网上书店系统是以实际运用为开发背 ...
- 一张图理清ASP.NET Core启动流程
1. 引言 对于ASP.NET Core应用程序来说,我们要记住非常重要的一点是:其本质上是一个独立的控制台应用,它并不是必需在IIS内部托管且并不需要IIS来启动运行(而这正是ASP.NET Cor ...
- 网上书店系统/书店管理系统的设计与实现
摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息.为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代, ...
- [附源码]java毕业设计网上书店系统
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- MySQL数据库设计作业 ——《网上书店系统》数据库设计实验报告
数据库设计作业--<网上书店系统>数据库设计 一.功能需求 普通用户:可以进行最基础的登陆操作,可浏览图书.按类别查询图书.查看 图书的详细信息,还可以注册成为会员. 会员:需要填写详细信 ...
- 基于java web的网上书店系统
006基于java web的网上书店系统(含论文) 开发环境: Eclipse/MyEclipse.Tomcat8.Jdk1.8 数据库: MySQL 适用于: 课程设计,毕业设计,学习等等 系统介绍 ...
- 基于JSP网上书店系统的设计与实现
欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye2 摘 要 JAVA语言是目前Internet上大型的WEB应用程序开发时使用得最热门的编程语言, ...
- java和sql网上书店系统_网上书店管理系统(java。SQL Server数据库)
[实例简介] 网上书店管理系统(java.SQL Server数据库) [实例截图] [核心代码] 网上书店系统(1) └── 网上书店系统 └── Store ├── bookDB │ ├── ...
- [附源码]计算机毕业设计JAVA网上书店系统
[附源码]计算机毕业设计JAVA网上书店系统 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(Intell ...
最新文章
- [置顶] 面向业务开发应用
- 碰到Maven依赖冲突,想砸电脑?这个IDEA插件必须了解一下...
- Hbase完全分布式的搭建
- python树莓派设备_Python+树莓派制作IoT(物联网)门控设备
- mysql截取栏目字符_substring从指定字符串开始截取(图)
- 二值形态学操作、图像的边缘检测、图像编码
- 被嫌弃的互联网的 “一生”(上)
- .Net Framework4.5中Asp.net mvc使用Singal R轮训实现导入进度条功能
- 菜鸟教程 php mysql_PHP MySQL 读取数据 | 菜鸟教程
- 分治法:归并排序求逆序对
- 获取pycharm 2016.1.4 注册码 (window系统) 2016.3注册码(Ubuntu系统)
- Makefile 中$@ $^ $ 解释
- filebeat日志采集的一次流程记录
- 关于微信隐藏分享按钮的心得
- 使用自定义手势处理器-陈鹏
- 高并发 问题怎么解决
- 使用el-image-viewer的预览功能
- windows xp sp3(XP3)无法安装或使用iis的根本原因及解决办法研究
- 《剑来》语句摘录(六)
- element-ui input 身份证号码验证