前言

近期由于家庭与个人原因,已经很久没有对头条进行更新了。但是,互联网技术日新月异,作为一名IT人员,我们必须保持学习的态度。

1、起步(Windows(1,版本18或者更高))

为了探索大佬们的编程智慧,我决定从平时使用的asp.Net Core的源码开始学习。

由于自身水平有限,希望大家能多支持、鼓励一下。下面我将详细记录下我的学习历程:

#下载源代码

首先需要克隆asp.Net Core的源代码:

git clone --recursive https://github.com/dotnet/aspnetcore

#安装依赖的源码

接下来,我们需要更新分支和安装依赖文件。

#切换分支

git checkout -b local5 ..

#编译项目

1、启动PowerShell脚本

首先需要以管理员身份运行PowerShell,并切换到代码下载的路径。

2、限制执行策略

为了安全起见,需要通过以下命令设置执行策略:

Set-ExecutionPolicy RemoteSigned

3、安装必要的插件和工具

接着,我们需要安装VisualStudio编译依赖的插件(最低版本16.8),git,nodejs,yarn,Java Development Kit等。

4、还原项目

由于这个步骤存在很多坑,我会一一说明:

1)下载国外很多插件,耗时较长且有时不稳定,很容易失败。我曾经安装了一个微软的插件时遇到地址错误的问题,为此我专门去aspnetcore提交了issues。

2)构建项目时也会遇到各种问题,比如nicode编码报错等。

#解决编译过程中的问题

1、关于编码问题

一开始我以为源码文件编码有问题,试过多次更改编码都没有解决问题。后来在issues中找到了解决办法:在控制面版中点击更改日期、时间,选中管理、beta,然后重启电脑即可解决编码问题。

2、关于JavaScript打包问题

还有一个错误是js打包文件大小超出了限制。我们找到src\Components\Web.JS\src\webpack.config.js文件,取消了文件大小的限制后重新生成,最终大功告成。

#测试项目

最后,我选择samples/MvcSandbox作为启动项目,编译aspnetcore5.0的源码。经过大约一周的时间研究,我终于成功构建了这个项目。

虽然在这段时间里遇到了很多困难,多次想要放弃,但是我最终还是坚持下来了。以下是我从大佬们的-sourcecode中学到的设计模式:

1、模块化

aspen core中的代码高度模块化,每个模块都有其独立的功能和责任。

2、解耦

在aspnet core中,各个组件之间的耦合度很低,使得系统易于扩展和维护。

3、封装

aspen core中经常使用属性和接口进行封装,提高了代码的复用性。

通过学习aspnet core源码,我收获颇丰。希望我的经验能对大家有所帮助,让我们一起进步吧!