目录
1.1 Asp.netCore之控制台启动项目
2.Asp.Net Core之核心套路组件形式组装整个项目 不再是.netfrom全家桶形式
3.Asp.Net Core 之Log4Net日志组件扩展,cmd启动程序
5.Asp.Net Core 之Startup.Configure Use(组件化解析)
6.Asp.Net Core 之依赖注入+asp.net core IOC容器与autofac容器解析 IOC容器的生命周期 以及Ui层实现依赖注入
7.Asp.Net Core 之AOP思想_通过MVC自带的Filter+Attribute实现自定义异常捕获 实现 方法级别 控制器级别 全局级别捕捉异常
10.Asp.Net Core 之用户登录退出,使用UseAuthentication自带过滤器进行鉴权
11.Asp.Net Core 之网站访问前给http头部添加信息
.netcore能跨平台的原因:
asp.netcore(内置Kestrel=主机,) 只要安装core sdk环境就有Kestrel sdk环境在哪里 就有Kestrel 就可以执行core程序 这也是能够跨平台的原因
.Net core .Net 5 源码解读 执行的源码解读
//1.程序启动的时候,得到一个最小的IHostBuilder(主机),包含的是最基本的配置,专门用来生成最基础的Host; //2.通过【 webBuilder.UseStartup<Startup>()】里面的不同的扩展,扩展IHostBuilder,每一层扩展都是在之前的基础上,进一步封装相关配置(套娃模式); //3. 就可以通过扩展把我们自己的写的配置给替换到默认配置上去;包括指定请求来了以后的处理过程; //4.Build方法执行后,所部分配置都给执行,得到一个WebHost;把WebHost所需要的 包含基础的服务,IOC容器; //5.用WebHost.Run();启动起来,把Kestrel启动起来,绑定端口,把服务启动起来;应装配了所有的环节! //Http请求进来—Kestrel监听---启动一个线程--包装context上下文—调用application /// <summary> /// 其实我们所谓的aspnetcore是一个控制台; /// </summary> public class Program { /// <summary> /// 程序的入口 /// </summary> /// <param name="args"></param> public static void Main(string[] args) { //1.程序启动--CreateHostBuilder(创建一个主机Kestral) //2.调用build 方法的到一个主机 //3.主机开始运行 var builder = CreateHostBuilder(args); //1.创建默认主机的建造者 IHost host = builder.Build(); //2.build一下 host.Run();//3.主机开始运行 //什么是主机:例如:IIS //主机运行是为了执行我们自己定义的代码;代码在哪儿?其实集成到主机中去了; } /// <summary> /// 这个类其实就是相当于程序运行前需要的一些基础的初始化配置,或者自己在里面增加一些配置 /// /// </summary> /// <param name="args"></param> /// <returns></returns> public static IHostBuilder CreateHostBuilder(string[] args) { //var host = Host.CreateDefaultBuilder(args); //Microsoft.Extensions.Hosting.HostBuilder IHostBuilder build = Host.CreateDefaultBuilder(args); //创建默认主机的建造者; var builder2 = build.ConfigureLogging(loggbuild => { loggbuild = loggbuild.AddLog4Net("CfgFile/log4net.Config"); }); ///配置logging(指定使用Log4net) var builder3 = builder2.ConfigureWebHostDefaults(webBuilder => //配置一个默认的Web主机 { webBuilder.UseStartup<Startup>(); //如何配置? 配置全交给Startup来完成; }).UseServiceProviderFactory(new AutofacServiceProviderFactory()); //build.ConfigureServices() return build; } }