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小时内删除。