.net 5 源码 解读

1..Net 的体型架构:

AppModel
BCL
Runtime

2.框架升级,体积变大,无法适应云开发,移动开发,不能按需加载,跨平台
.net core 大类库拆分--组件化--nuget 按需加载安装

c#/f# -->编译器--.dll/exe(metadata,IL)-->CLR/JIT --机器码01010101

多平台 CLR--BCL 一套支持

U3D是c++写的底层,c#写的逻辑
表面光鲜亮丽,背后千疮百孔

.net framework(WPF,WinForms,ASP.NET) + .net core(.net core,asp.net core) + xamarin(ios,android)

 

3.net 5 统一开发平台:

desktop:window forms
web:asp.net
cloud azure
mobile:xamarin
game:
Iot:arm32,arm64
AI:


.net 6 LTS

 

4 .net 5 移除的:

ASP.NET webforms
wcf:windows communication foundation
wwf:window workflow foundation

vs2022
https://visualstudio.microsoft.com/zh-has/vs/preview/vs2022

 

5.asp.net core 源码下载

https://github.com/dotnet/aspnetcore
https://github.com/dotnet/runtime //extend扩展卡
https://github.com/dotnet/kestrelhttpserver

https://pan.baidu.com/s/

源码依赖node.js +java jdk


理解流程--扩展定制--掌握心法
理解设计模式,抓住核心套路


6.asp.netcore 全貌:
program:main-->startup初始化配置,IOC,HTTP Request,-->appsettings-->mvc
startup
mvc
appsettings


初始化 ---启动流程:net6/asp.netcore/src/mvc/startvs.cmd启动
请求来了--运行流程


实例化host: createwebhostbuilder:实例化builder --> 多次初始化
host.Run(): application -->middleware KesterlServerImpl

 


没有runtime,没有Kesterl


skywalking 链路追踪:抓取请求信息,
hostingStartupAttribute,木马

1.必须实现IHostingStartup
2.namespace 必须标记HostingStartup特性