.net 5 源码 解读
.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特性