core系列源码地址介绍
很早就想写 core相关教程内容了,但是⼀⽅⾯感觉东西太多了,⼀⽅⾯是太懒了,最近才下定决⼼,⼀定要写点东西出来,希望能⽀持⼀下国内 的尴尬处境
好了,先从 core开源开始吧,以后会对⼀些独⽴模块单独剖析介绍,⽐如认证授权,配置,⽇志等等:
core独⽴模块源码:
core全家桶源码:
core拓展库源码:
core标准库源码:
core的EFCore源码:
core的SDK源码:
core的runtime源码:
core独⽴模块
在 core的初期,每个模块源码是独⽴开的,每个模块是⼀个git仓库,⽐如常见的:
Routing 路由模块源码:
Security 认证授权模块源码:
MVC 模块源码:
Configuration 配置模块源码:
Options 模块源码:
DependencyInjection 依赖注⼊模块源码:
Hosting 模块源码:
这些模块可以在上⾯的地址()中去查询,还有很多。
注意,虽然这些库还是放开的,但是已经不再更新了,他们已经全部被移到 core全家桶⾥⾯去了,所以他们最多只能看作是 core 2.x的版本
core全家桶
可能后来 core的开发者们觉得每个模块⼀个仓库很⿇烦,于是将常⽤的模块做成全家桶放到⼀个git仓库中去了,这就是 core全家桶。
注意 core全家桶⾥⾯包含的内容是常⽤,可以认为是常⽤的 Microsoft.AspNetCore.XXXXX 的这些空间库的集合,这些库主要是做web等服务端开发需要的核⼼模块,如Hosting,MVC,Http等模块。
core拓展库
全家桶包含了⼀些常⽤的web等服务端开发库,那剩下像 Configuration,Options,DependencyInjection等这些的常⽤模块合在⼀起就组成了拓展库!
需要注意的是,这些模块⼀般都是⼀些辅助型的模块,不是⾮需不可的存在,但是往往很便捷开发,可以认为这⾥⾯的都是Microsoft.Extensions.XXXXXX的空间库。
core标准库
这个很好理解,其实就是我们的诸如 System.XXXX 等这些空间库的集合,⽐如我们的最常⽤的⽅法 String.IsNullOrEmpty()⽅法的地址在:
[NonVersionable]
public static bool IsNullOrEmpty([NotNullWhen(false)] string? value)
{
// Using 0u >= (uint)value.Length rather than
// value.Length == 0 as it will elide the bounds check to
// the first char: value[0] if that is performed following the test
// for the same test cost.
// Ternary operator returning true/false prevents redundant asm generation:
//github/dotnet/coreclr/issues/914
return (value == null || 0u >= (uint)value.Length) ? true : false;
}
其实,很多开发者都没有注意,在使⽤web开发时,在项⽬下的依赖项下⾯的框架中有两个框架:Microsoft.AspNetCore.App
和 Microsoft.NETCore.App
Microsoft.AspNetCore.App:这⾥是全家桶和拓展库中web开发主要和常⽤的库集合,注意,它并不包含全家桶和拓展库中的所有库,⽽且常⽤的⼀些库!
Microsoft.NETCore.App:这个其实基本上可以认为是 core的标准库了。公司介绍源码
EntityFrameworkCore
这个其实EntityFramework在 core下的实现,因为并不是所有的项⽬都需要数据库,因此它被独⽴出来作为⼀个第三⽅的库。
附1:项⽬都是在github上,但是外⽹速度很慢,直接使⽤pull或者download可能会失败,⼀般多试⼏次就可以了,实在不⾏或者嫌太慢,可以使⽤gitee进⾏现有仓库导⼊,然后从gitee上进⾏拉取
⽅法:登录gitee => 新建仓库 => 点击最下⾯的【导⼊已有仓库】=> 然后输⼊github上的仓库地址,如下图
附2:代码弄下来之后,使⽤VS打开(建议使⽤VS2019)后⼗之⼋九⼀堆的报错,重新⽣成也不顶⽤,这往往是因为项⽬引⽤了外部项⽬导致的,所以仓库的作者⼀般会提供脚本(sh,bat,cmd等)来统⼀还原⽣成项⽬。
⽐如 core全家桶中,仓库中有 d (restore.sh)⽂件,就是⽤于还原项⽬⽤的,它会下载⼀些插件⼯具之后统⼀还原⽣成整个解决⽅法,不过因为⽹络等原因,99%的可能是不会成功的,所以就将就着使⽤ ctrl + F 看吧。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论