引言

    core出来至今,已经7年了,我接触也已经4年了,从开始的2.1,2.2,3.1,5,6再到如今的7,一直都有再用,虽然我是一个Winform仔,但是源码一直从3.1到7都有再看,然后在QQ上面也一直比较活跃,之前好几年前一直说给大家解读asp.net core源码,在之前的博客中,讲的都是比较粗略化的,因为东西太多了,写也写不少东西,所以总是不了了之,然后在上个月底的时候,在微信和群友聊天,说到了这块,就想着,直播讲解一下,然后就定在了五月份去讲解源码,然后在前天,也就是五月十八号,在微信直播,哔哩哔哩录制,讲解了一下asp.net core源码,不过,由于很少直播,导致整个直播效果不是很好,因为整个节奏都是按照我自己对源码的熟悉程度来解读的,以及源码太多,我想一次性讲解完,所以导致后面的观众很少,在这向诸位观众道个歉,然后昨天,我就开始对前天晚上的直播做了总结,以及把我本来计划没有说的话,写在了一个文档里,其中包括对于直播的总结,以及开发者如何提升自己的认知还有逻辑思维能力,以及自己的一些建议,同时在昨天也开始整理asp.net core源码的解读文档,从昨天写到现在,终于写完了,希望接下来分享的东西对大家能够有帮助。

目录

    整体目录分为以下目录,从最开始的WebApplication,WebApplicationBuilder,在到WebApplicationBuilder内部的构造函数做了那些事情,每一步尽量做到了精细化,每一行代码能讲清楚就讲清楚,同时针对默认创建的Api项目的重要的几个源码做了精细化讲解,包括AddControllers,内部的AddMvcCore,注入的那么多的服务,在到如何创建GenericWebHostBuilder,构建GenericWebHostService,注入Kestrel,IIS等,配置服务,配置Host还有Configuration。

    再到WebApplication的Build方法,又如何把所有的中间件串联起来,做了哪些事情,返回的IHost是什么,在哪里,也写了MapControllers如何给EndpointDataSource添加Endpoint,如何订阅更新Endpoint的变化。又如何创建我们的请求的RequestDelegate,以及ResourceInvoker,如何执行过滤器,创建控制器,调用接口,如何请求,如何响应,以及最根本的监听,都写在了本文档里,总之把我认为最细致化的东西都给大家呈现了出来,哈哈哈当然拉,在最后的写入响应那块,实际上有的不是很详细,因为,源码跳的地方有点多,我把中间WriteAsync我认为承上启下的部分写了出来,方便大家去找到最根本的地方,

    本文档,将一个默认的WebApi项目如何启动,如何监听,以及请求过来,如何响应并且写入数据,展现出来,有的地方可以支持自定义的接口类型,也说了出来,同时相信大家,在看了本文档,再结合源码,能够很清晰的知道,自己如果需要自定义一些东西,是可以明白源码在哪里看,实现哪些接口,生命周期又是什么,如果在结合微软文档,知道了一些可以自定义的某个功能IFeature,都是可以的。

    希望大家,都能够对asp.net core源码有一个更深层次的了解,一个框架我们不仅仅是会用,还得用的好,才能提升我们的竞争力。

结尾

    最后,恳求各位大家在转载本文档的时候,能够保留文档最后的个人信息,尊重一下本人的版权,谢谢大家,码字不易,望各位理解,后续,会给大家带来更多的源码解读。

    直播总结文档地址:里面包括个人的一些心得建议,以及提升认知的方法。

    链接:https://pan.baidu.com/s/12pzpi5uCaL3p4afvWAtc-Q
    提取码:bv83

    asp.net core源码解读文档,就是如图上的文档,

    链接:https://pan.baidu.com/s/1GkWwMASVvwPyWb5VLb2yJg
    提取码:j4de

    所阅读的asp.net core源码地址

    链接:https://pan.baidu.com/s/15a16TNowbpatkJqDF8qk1A
    提取码:k7oh

    所阅读的Libraries源码地址

    链接:https://pan.baidu.com/s/1cy_5C3cwn9TQXqFjKUvWgQ
    提取码:afeo

    直播回放:

    【asp.net core源码快速解读-哔哩哔哩】 https://b23.tv/G8p6j9D

    最后如果有什么问题可以随时联系我,QQ934550201,或者添加群聊都可以找到我。

    

  

【源码解读】asp.net core源码启动流程精细解读的更多相关文章

  1. ASP.NET Core源码学习(一)Hosting

    ASP.NET Core源码的学习,我们从Hosting开始, Hosting的GitHub地址为:https://github.com/aspnet/Hosting.git 朋友们可以从以上链接克隆 ...

  2. 一个由正则表达式引发的血案 vs2017使用rdlc实现批量打印 vs2017使用rdlc [asp.net core 源码分析] 01 - Session SignalR sql for xml path用法 MemCahe C# 操作Excel图形——绘制、读取、隐藏、删除图形 IOC,DIP,DI,IoC容器

    1. 血案由来 近期我在为Lazada卖家中心做一个自助注册的项目,其中的shop name校验规则较为复杂,要求:1. 英文字母大小写2. 数字3. 越南文4. 一些特殊字符,如“&”,“- ...

  3. ASP.NET Core[源码分析篇] - WebHost

    _configureServicesDelegates的承接 在[ASP.NET Core[源码分析篇] - Startup]这篇文章中,我们得知了目前为止(UseStartup),所有的动作都是在_ ...

  4. ASP.NET Core[源码分析篇] - Authentication认证

    原文:ASP.NET Core[源码分析篇] - Authentication认证 追本溯源,从使用开始 首先看一下我们通常是如何使用微软自带的认证,一般在Startup里面配置我们所需的依赖认证服务 ...

  5. ASP .NET CORE 源码地址

    ASP .NET CORE 源码地址:https://github.com/dotnet/ 下拉可以查找相应的源码信息, 例如:查找 ASP .NET CORE Microsoft.Extension ...

  6. ASP.Net Core MVC6 RC2 启动过程分析[偏源码分析]

    入口程序 如果做过Web之外开发的人,应该记得这个是标准的Console或者Winform的入口.为什么会这样呢? .NET Web Development and Tools Blog ASP.NE ...

  7. ASP.NET Core 3.x 中间件流程与路由体系

    中间件分类 ASP.NET Core 中间件的配置方法可以分为以上三种,对应的Helper方法分别是:Run(), Use(), Map(). Run(),使用Run调用中间件的时候,会直接返回一个响 ...

  8. ASP.NET Core 源码阅读笔记(1) ---Microsoft.Extensions.DependencyInjection

    这篇随笔主要记录一下ASP.NET Core团队实现默认的依赖注入容器的过程,我的理解可能并不是正确的. DependencyInjection这个项目不大,但却是整个ASP.NET Core的基础, ...

  9. ASP.NET Core 源码阅读笔记(5) ---Microsoft.AspNetCore.Routing路由

    这篇随笔讲讲路由功能,主要内容在项目Microsoft.AspNetCore.Routing中,可以在GitHub上找到,Routing项目地址. 路由功能是大家都很熟悉的功能,使用起来也十分简单,从 ...

  10. ASP.NET Core 源码阅读笔记(3) ---Microsoft.AspNetCore.Hosting

    有关Hosting的基础知识 Hosting是一个非常重要,但又很难翻译成中文的概念.翻译成:寄宿,大概能勉强地传达它的意思.我们知道,有一些病毒离开了活体之后就会死亡,我们把那些活体称为病毒的宿主. ...

随机推荐

  1. sqli-labs搭建

    今天使用 phpstudy 搭建了 sqli-labs 练习 SQL 注入平台,其中遇到了两个问题. phpstudy phpstudy 中集成了 Apache.Nginx.PHP.Mysql.php ...

  2. 浅谈js防抖和节流

    防抖和节流是处理高频触发最常见的优化方式,对性能提升有很大的帮助. 防抖:将多次的高频操作优化为只在最后一次执行,应用场景如:输入框,只需在最后一次输入进行校验即可. 节流:保证每隔一段时间只执行一次 ...

  3. JS有哪些变态语法,你知道吗?

    JS作为一门如此灵活的语言,自然在编码时给我们带来了很多方便,但方便的同时,也衍生出了很多变态的语法,下面我们来梳理一些常见的变态语法,希望你下次在某位大牛的代码中看到这样的东西,不要惊掉下巴. NO ...

  4. C#笔记之泛型

    泛型是C#中应用极为广泛的一种语法,本篇文章将详细介绍泛型的定义.使用.性能等. 一.什么是泛型 首先需要记住的是,泛型是.NET 2.0推出的语法,这样的话,泛型基本可以用于所有程序的开发,而不需要 ...

  5. ACM-刷题记录-14届NEFU校赛

    P2031凯撒密码 #include<bits/stdc++.h> using namespace std; int main(){ string s; int d; while(cin& ...

  6. C++的一些随笔(第一篇)

    C++中 ->的作用 ->用于指针 ->用于指向结构体的指针 ->用于指向结构体的指针,表示结构体内的元素  #include<stdio.h> struct ro ...

  7. API获取商品评论?

    前言 小伙伴们好,前两天因为个人原因耽误了内容的更新,在这里和所有的小伙伴道个歉,今天CC和大家唠唠商品评论的这个话题,大家在网上购物的决策会因为<商品评论的好坏>吗,相信绝大的一部分的小 ...

  8. [Linux]Linux中安装软件的方式?

    近日处理安全漏洞时,出现了这样一个问题: 判断某软件组件是通过何种方式安装的. 知道是何种方式安装,才方便做进一步的解决(升级/配置/卸载等操作) 1 解压即用 例如: sublime_text.py ...

  9. [MySQL]SQL条件语句

    IF语句:IF(expr1, trueResultExpr, falseResultExpr) 若expr1 == TRUE, 则:返回值为 trueResultExpr: 若expr1 == FAL ...

  10. Android Activity的事件分发机制-源码解析

    查看Activity的dispatchTouchEvent方法: public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getActio ...