.net core系列源码地址介绍

 很早就想写.net core相关教程内容了,但是一方面感觉东西太多了,一方面是太懒了,最近才下定决心,一定要写点东西出来

        好了,先从.net core开源开始吧,以后会对一些独立模块单独剖析介绍,比如认证授权,配置,日志等等:

  .net core独立模块源码:https://github.com/aspnet

  .net core全家桶源码:https://github.com/dotnet/aspnetcore

  .net core拓展库源码:https://github.com/dotnet/extensions

  .net core标准库源码:https://github.com/dotnet/corefx

  .net core的EFCore源码:https://github.com/dotnet/efcore

  .net core的SDK源码:https://github.com/dotnet/sdk

  .net core的runtime源码:https://github.com/dotnet/runtime

  .net core独立模块

  在.net core的初期,每个模块源码是独立开的,每个模块是一个git仓库,比如常见的:

  Routing 路由模块源码:https://github.com/aspnet/Routing

  Security 认证授权模块源码:https://github.com/aspnet/Security

  MVC 模块源码:https://github.com/aspnet/Mvc

  Configuration 配置模块源码:https://github.com/aspnet/Configuration

  Options 模块源码:https://github.com/aspnet/Options

  DependencyInjection 依赖注入模块源码:https://github.com/aspnet/DependencyInjection

  Hosting 模块源码:https://github.com/aspnet/Hosting

  这些模块可以在上面的地址(https://github.com/aspnet)中去查询,还有很多。

  注意,虽然这些库还是放开的,但是已经不再更新了,他们已经全部被移到.net core全家桶里面去了,所以他们最多只能看作是.net core 2.x的版本

  .net core全家桶

  可能后来.net core的开发者们觉得每个模块一个仓库很麻烦,于是将常用的模块做成全家桶放到一个git仓库中去了,这就是.net core全家桶。

  注意.net core全家桶里面包含的内容是常用,可以认为是常用的 Microsoft.AspNetCore.XXXXX 的这些空间库的集合,这些库主要是做web等服务端开发需要的核心模块,如Hosting,MVC,Http等模块。

  .net core拓展库

  全家桶包含了一些常用的web等服务端开发库,那剩下像 Configuration,Options,DependencyInjection等这些的常用模块合在一起就组成了拓展库!

  需要注意的是,这些模块一般都是一些辅助型的模块,不是非需不可的存在,但是往往很便捷开发,可以认为这里面的都是 Microsoft.Extensions.XXXXXX的空间库。

  .net core标准库

  这个很好理解,其实就是我们的诸如 System.XXXX 等这些空间库的集合,比如我们的最常用的方法 String.IsNullOrEmpty()方法的地址在:https://github.com/dotnet/corefx/blob/v3.1.9/src/Common/src/CoreLib/System/String.cs#LC448  

    [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:
        // https://github.com/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:这个其实基本上可以认为是.net core的标准库了。

  EntityFrameworkCore

  这个其实EntityFramework在.net core下的实现,因为并不是所有的项目都需要数据库,因此它被独立出来作为一个第三方的库。

  附1:项目都是在github上,但是外网速度很慢,直接使用pull或者download可能会失败,一般多试几次就可以了,实在不行或者嫌太慢,可以使用gitee进行现有仓库导入,然后从gitee上进行拉取

  方法:登录gitee => 新建仓库 => 点击最下面的【导入已有仓库】=> 然后输入github上的仓库地址,如下图

  

   附2:代码弄下来之后,使用VS打开(建议使用VS2019)后十之八九一堆的报错,重新生成也不顶用,这往往是因为项目引用了外部项目导致的,所以仓库的作者一般会提供脚本(sh,bat,cmd等)来统一还原生成项目。

  比如.net core全家桶中,仓库中有 restore.cmd (restore.sh)文件,就是用于还原项目用的,它会下载一些插件工具之后统一还原生成整个解决方法,不过因为网络等原因,99%的可能是不会成功的,所以就将就着使用 ctrl + F 看吧。

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET Core MVC 是一个开源的、基于 .NET Core 的 Web 应用程序框架,它是 ASP.NET 的最新版本且经过专门设计以支持现代化 Web 开发。ASP.NET Core MVC 源码可以从官方的 GitHub 仓库中获取。 ASP.NET Core MVC 的源码是以 C# 编写的,它提供了一套丰富的类库和组件,用于构建 Web 应用程序中的模型(Model)、视图(View)和控制器(Controller)。这个框架采用了分层架构的方式,使得开发者可以更好地组织和管理 Web 应用程序的代码。 在 ASP.NET Core MVC 源码中,可以找到一些重要的组件和模块,比如路由系统、模型绑定器、过滤器、视图引擎等。这些组件都经过精心设计和优化,以提供高性能和可扩展性。 通过阅读 ASP.NET Core MVC 源码,开发者可以深入了解这个框架的工作原理和内部机制。他们可以看到其中的设计思路、模式和最佳实践,从而更好地理解和应用这个框架。 ASP.NET Core MVC 源码也是一个很好的学习资源,开发者可以通过阅读源码来学习优秀的编程技巧和实践方法。在阅读源码的过程中,可以发现许多设计上的巧妙之处,从而提升自己的编码水平。 总之,ASP.NET Core MVC 源码是一个宝贵的资源,通过阅读和学习可以帮助开发者更好地掌握这个框架并创建高质量的 Web 应用程序。它展示了如何构建一个现代化、可扩展和高性能的 Web 应用程序框架。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值