.net core系列源码地址介绍
很早就想写.net core相关教程内容了,但是一方面感觉东西太多了,一方面是太懒了,最近才下定决心,一定要写点东西出来,希望能支持一下国内.net 的尴尬处境
好了,先从.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 看吧。
.net core系列源码地址介绍的更多相关文章
- ASP.NET Core 框架源码地址
ASP.NET Core 框架源码地址 https://github.com/dotnet/corefx 这个是.net core的 开源项目地址 https://github.com/aspnet ...
- junit4X系列源码--总体介绍
原文出处:http://www.cnblogs.com/caoyuanzhanlang/p/3530267.html.感谢作者的无私分享. Junit是一个可编写重复测试的简单框架,是基于Xunit架 ...
- ASP .NET CORE 源码地址
ASP .NET CORE 源码地址:https://github.com/dotnet/ 下拉可以查找相应的源码信息, 例如:查找 ASP .NET CORE Microsoft.Extension ...
- Spring源码地址和相关介绍的网址
Spring源码地址下载: https://github.com/spring-projects/spring-framework/tags >多图详解Spring框架的设计理念与设计模式:ht ...
- ASP.NET Core MVC 源码学习:Routing 路由
前言 最近打算抽时间看一下 ASP.NET Core MVC 的源码,特此把自己学习到的内容记录下来,也算是做个笔记吧. 路由作为 MVC 的基本部分,所以在学习 MVC 的其他源码之前还是先学习一下 ...
- ASP.NET Core MVC 源码学习:MVC 启动流程详解
前言 在 上一篇 文章中,我们学习了 ASP.NET Core MVC 的路由模块,那么在本篇文章中,主要是对 ASP.NET Core MVC 启动流程的一个学习. ASP.NET Core 是新一 ...
- android 源码目录介绍
Android 4.0源码目录介绍|-- Makefile|-- bionic (bionic C库)|-- bootable (启动引导相关代码)|-- build (存放系统编译规则及gener ...
- SpringMVC+Maven开发项目源码详细介绍
代码地址如下:http://www.demodashi.com/demo/11638.html Spring MVC概述 Spring MVC框架是一个开源的Java平台,为开发强大的基于Java的W ...
- Android动画设计源码地址
Android动画设计源码地址 http://blog.csdn.net/shanghaibao123/article/details/45223825
随机推荐
- [项目总结]关于调用系统照相机Activity被销毁问题解决
在项目中需要启用系统照相机来拍照.本来很容易的一个问题.但在适配中出现了问题. 简单说一下问题: 有些手机拍照成功,有些手机拍完照后确定返回后activity数据丢失,被销毁了. 问题查找: 经过代码 ...
- InnoDB的行锁模式及加锁方法
MYSQL:InnoDB的行锁模式及加锁方法 共享锁:允许一个事务度一行,阻止其他事务获取相同数据集的排他锁. SELECT * FROM table_name WHERE ... LOCK IN S ...
- Tomcat(1):安装Tomcat
一,安装Tomcat服务器 1,下载tomcat网址: http://tomcat.apache.org/ 2,找到Download 3,下载 4:下载完成后,解压到任意目录 5:解压完成后得到目录 ...
- java代码从出生到执行的过程浅析
阅读<深入理解java虚拟机 第二版 JVM高级特性与最佳实践> - jdk版本为1.6 1.什么是编译型语言.解释型语言 解释型语言:源代码不是直接翻译成机器语言,而是先翻译成中间代码, ...
- C++内存管理:简易内存池的实现
什么是内存池? 在上一篇 C++内存管理:new / delete 和 cookie中谈到,频繁的调用 malloc 会影响运行效率以及产生额外的 cookie, 而内存池的思想是预先申请一大块内存, ...
- 从Rest到Graphql
一.引言 ok,如图所示,我在去年曾经写过一篇文章<闲侃前后端分离的必要性>.嗯,我知道肯定很多人没看过.所以我做一个总结,其实啰里八嗦了一篇文章,就是想说一下现在的大型互联网项目一般是如 ...
- mysql深度优化与理解(迄今为止读到最优秀的mysql博客)
转载:https://www.cnblogs.com/shenzikun1314/p/6396105.html 本篇深入了解查询优化和服务器的内部机制,了解MySql如何执行特定查询,从中也可以知道如 ...
- 严重危害警告!Log4j 执行漏洞被公开!
12 月 10 日凌晨,Apache 开源项目 Log4j2 的远程代码执行漏洞细节被公开,漏洞威胁等级为:严重. Log4j2 是一个基于 Java 的日志记录工具.它重写了 Log4j 框架,引入 ...
- CF1095B Array Stabilization 题解
Content 有一个长度为 \(n\) 的数组 \(a_1,a_2,a_3,...,a_n\),现在需要从这些数中删除一个数,使得 \(\max\limits_{i=1}^na_i-\min\lim ...
- java 图形化小工具Abstract Window Toolit
老掉牙的历史 Java1.0在发布的时候,就为我们提供了GUI操作的库,这个库系统在所有的平台下都可以运行,这套基本的类库被称作抽象窗口工具集(Abstract Window Toolit),简称 ...