壹佰文章最全总结| 《关于ASP.NETCore的分享之路》
学习路线图
(关于学习ASP.NET Core需要了解和掌握的知识点图)
一言不合就来图,各位博客园小伙伴大家好,明天就是1024程序员节了,在这个时候,应该说些什么,感觉好久没有写文章了,自从春节开始,中间经历种种,慢慢的就开始微信公众号发文了,原因有很多,不做说明,不好的地方就是不知道目录链接,所以还是发到博客园吧。
请注意:我不是做框架的,BCVP只是作为案例来配合文章视频,掌握了技术才是关键。
为什么要突然写这篇了呢,是因为这一年我又写了一些文章和几个视频,但是因为比较杂乱无章,很多人都找不到自己想要看的资料,一直向我反馈很多次了,时不时的在QQ群里问相关的知识点,或者一直在百度,毕竟我已经总结过了,要是百度未免有些浪费时间,所以就打算总结出来,这样方便大家查找,也方便我分享指导,更是自我的一个总结吧。你可能会问,那你之前为啥不总结,因为我现在基本已经该讲的都讲完了,毕竟已经快到K8s,所以总体的总结一下,情有可原吧。
上边这个路线图呢,我个人认为没必要都学会,一半足矣,当然会的越多肯定越好,只不过精力不足的情况下,还是要打基础,然后看服务,最后写业务,这是我的总结的。好啦,下边就开始总结吧,文章采用list列表的形式,会对每篇文章/视频简要描述,这样你一看就大概知道这是讲啥的了。
这是我这两年讲解的知识点大纲导图:
(在线思维导图工具:mindmeister,内容持续更新中...)
在线项目案例展示,是下边知识讲解的代码展示:
(在线项目案例)
ASP.NET CORE学习指南
PS:
1、下文说的知识点基本都是netcore3.1版本的,特别标注为(视频)的,是视频教程,其他的皆是文章教程
2、点击每一个小标题即可到达目的链接。
3、官网永远是最好的老师: https://docs.microsoft.com/zh-cn/dotnet/core
4、一共73篇ASP.NetCore基础知识+19篇Ids4内容+23篇DDD = 115(篇/个 视频和文章)
《基础知识掌握部分》
-
A.1、后端WebApi项目初探搭建
本文主要是讲解了我们如何创建一个ASP.NETCore项目,并对其中的初始的几个重要文件和Class类文件做了简单的讲解和梳理,看完之后,可以动手创建一个初始化项目。 -
A.2、ASP.NET Core框架基础(视频)
本视频从为什么学习ASP.NETCore入手,讲解了其发展历史、相应的执行过程、以及如何命令行创建项目。 -
A.3、运行原理解析(视频)
本视频简单分析了ASP.NETCore的运行原理、重要文件的分析、如何下载查看源码、Host项目启动过程分析。 -
A.4、进程内和进程外讨论(视频)
视频重点分析了,NetCore和.NetFwk之间的区别和联系,是如何运行起来的,进程内和进程外的含义。 -
A.5、NetCore编译和运行时过程(视频)
通过直播的形式,分析了ASP.NETCore是如何编译的,也说明了运行时执行的过程是怎样的,有助于理解项目启动。 -
B.1、Swagger接口文档的使用
文章讲解了如何在ASP.NETCore Webapi项目中,引入接口文档swagger,并自定义index.html首页。 -
B.2、Swagger代码拷贝(视频)
视频版讲解如何从blog.core项目中,把Swagger组件部分的代码拷贝出来。
-
B.3、Swagger如何配合使用API多版本
自写方案,比较简单,比较low,可以借鉴和参考,如何配置swagger,使用api版本控制
-
C.1、JWT认证授权过程
文章分析了JWT令牌的由来和组成部分,自定义认证中间件和官方认证中间件(推荐使用)来讲解如何认证token有效性,如何在Swagger中开启小锁,以及其他比如Claim声明等小知识点。 -
C.2、JWT原理详解(视频版,NetCore2.2版本)
视频讲解API保护的几种方案、JWT的核心知识、如何使用JWT,令牌是如何存到HTTPContext中,如何解析Claim、使用的好处等 -
C.3、简单角色授权(视频)
通过直播的形式,手写代码,如何基于角色的简单授权,生成令牌(3+2),认证过程演示等。 -
C.4、授权和上下文的关系(视频)
通过直播,讲解授权是如何让JWT令牌这个字符串,变成系统的HttpContext内存中的。 -
C.5、权限认证流程解析,7个表,实现数据库复杂策略鉴权
本文讲解最简单的一种授权认证方案,将接口、菜单、角色、用户四个模板给结合在一起,实现基于数据库接宝的复杂策略授权。 -
C.6、JWT滑动刷新
通过一个很简单的小技巧,将JWT失效后,如何做到前端无感刷新的案例,有一定的参考意义。 -
C.7、基于数据库的复杂策略授权(视频)
通过直播的形式,分析了BlogCore项目中,是如何实现JWT 基于数据库 复杂的认证策略授权的。 -
C.8、如何从HttpContext中获取用户信息(视频)
上边我们说了token是如何转成HttpContext内存中的,那这篇讲的是,如何从内存中,把用户信息取出来,实现闭环。 -
D.1、什么是仓储模式
说白了,很像之前的三层架构的数据访问层,只不过是想把这个仓储的概念说出来,让大家先了解,为DDD打基础。 -
D.2、泛型基类仓储的使用
用了泛型基类,可以省去每个仓储和服务文件,都写CURD等基础操作了。 -
D.3、用泛型仓储做服务注入
通过泛型仓储的形式,可以省去多余不必需要的空仓储子文件,同时也去掉仓储接口层,如果仓储层。 -
E.1、依赖注入与IOC
大篇幅讲解依赖注入的由来、好处、使用方法、三种声明周期注册方式、容器化管理含义、Autofac组件使用、批量服务注册,无接口注册等。 -
E.2、原生依赖注入一对多
简单的实现一个接口,多个实现的注入方案。 -
E.3、依赖注入原理解析(视频)
视频的形式,深入分析控制反转的由来、为什么使用、注入的步骤、三种注册方法、三种注入方法、Autofac组件使用、查看是否注入成功等; -
E.4、三个生命周期注册纠结说明(视频)
是针对上一个视频的补充说明。 -
E.5、Autofac组件使用(视频)
讲解如何从blogcore项目中,把依赖注入Autofac组件的代码给copy出来,自己使用。 -
E.6、依赖注入直播(视频)
通过直播的形式,手敲代码,也是使用Autofac组件来实现。 -
F.1、AOP切面编程初探
通过两个案例:AOP缓存和AOP日志,来配合讲解切面编程的原理。 -
F.2、AOP结合Redis实现切面缓存
切面编程的第三个案例:Redis缓存。 -
F.3、AOP切面编程原理分析(视频)
视频的形式,分析什么是AOP、面向过程/面向对象/面向切面/面向服务之间的发展历程和关系、切面编程的优势、使用场景等。 -
F.4、AOP原理—动态代理(视频)
以直播的形式,分享AOP的核心思想:动态代理是如何将目标类做代理服务的。 -
G.1、DTOs数据传输对象
第一次将视图模型、对象传输引出讨论,并介绍如何将对象进行合理化映射,以及最后的Automapper的使用。 -
G.2、Dto与多模型(视频)
通过视频的讲解,进一步讨论为什么项目中需要用到多个模型,已经模型之间的传输和体现形式。 -
G.3、Automapper对象映射(视频)
将Blog.Core中对应的Automapper组件的使用的内容抽离出来,更好的方便对组件的学习。 -
H.1、基于Log4net的全局异常日志
文章主要包含两个部分,第一个是全局异常处理,第二个就是集成日志,这里使用的是Log4net,目前这个日志方案和我blogcore的不一样,我还在修改中,备注。 -
H.2、Log4Net日志处理(视频)
视频是将Blog.Core中对应的Log4net组件的部分内容给抽离出来,可以针对性学习,这里的代码是最终正式且正确的。 -
H.3、日志_Serilog(视频)
通过直播的形式,一步步给大家讲解如何在Asp.NetCore中使用Serilog组件。 -
I.1、配置IConfiguration(视频)
视频讲解如何在Blog.Core中来使用配置,并对Appconfig.cs类抽离出来,有一定的参考价值。 -
I.2、变量与配置(视频)
也是一期视频,分析了下平时开发的时候是如何使用配置的,主要列举了常见的几种方案。 -
J.1、跨域与代理,3.0正式版
本文主要是下边两篇文章的总结篇,而且是基于netcore3.0的,可以只看本文即可,当然可以看下边两篇,讲解了四种平时开发中必须用到的方案和技术,JSONP、CORS、devProxy、Nginx。 -
J.2、三种跨域比较
比较原始的3种开发方案,主要是在.Net Fwk中使用的,分别是JsonP,请求头,CORS。 -
J.3、另外两种方案实现跨域
在上边的基础上,讲解了vue项目中用到的本地devProxy代理模式,和部署到线上后的nginx反向代理,来实现跨域。 -
J.4、跨域原理详解(视频)
视频不仅讲解了下跨域的原理,还列举了常见开发的六种跨域方案,比较详细,值得观看。 -
J.5、CORS跨域与钓鱼(视频)
将Blog.Core项目中关于CORS跨域的那部分代码给抽离出来,更方便在新的项目中使用。 -
K.1、Ip限流(视频)
也是把Blog.Core中的代码抽离讲解,起到一定的限流的作用,有一定的借鉴,使用组件AspNetCoreRateLimit -
L.1、基于AOP实现接口性能分析
将AOP、SqlSugar的Sql输出、Miniprefiler三个组件相结合,实现AOP切面的接口性能分析,并在swagger中输出sql日志等多个日志。 -
L.2、性能监控分析MiniProfiler(视频)
通过视频的方式,将Blog.Core中,关于性能监控的部分抽离出来,也同时讲解了如何自定义Swagger首页问题。
-
《部署与组件学习部分》
-
M.1、最全的部署方案和错误分析
本文比较全面的讲解了,如何在windows、CentOs、Ubuntu等系统上部署前后端分离项目,也讲解了如何使用IIS和Nginx等代理服务器,最后也列举了前后端部署的时候比较常见的错误案例和解决办法,从404到503。 -
M.2、在线项目全部迁移到Linux
作为开源的六个在线项目,个人表示还是有点儿借鉴意义的,目前都已经迁移到了Linux服务器,文章列举了方案和方法,也有对问题的解决方案。 -
M.3、在Windows上部署Aspnetcore(视频)
以视频的形式,讲解了ASP.NETCore项目在win系统上的多种部署方案,独立部署,框架依赖部署等等,如何选择合理的服务器,如何安装指定的依赖环境,以及可能在部署中遇到了常见问题,比如缺少文件,环境错误,跨域问题等。 -
M.4、在Linux上部署Aspnetcore(视频)
和上边的讲解内容一样,只不过是在CentOS系统上讲解。 -
M.5、在Azure上部署Aspnetcore(视频)
内容同上,通过三个小视频,讲解第一次如何注册和使用Azure,以及如何部署。 -
M.6、BlogCore在IIS中的三种部署方案(视频)
和上边的内容不太一样,本视频主要用BCVP的三端项目作为案例,讲解前后端是如何在IIS中部署的,比如新建虚拟目录还是静态文件等等。 -
M.7、Nginx+Git的形式部署BlogCore(视频)
前边几种都是在本地publish发布好后,上传到服务器再部署,本视频是通过git的形式,将源代码clone到服务器,实现手动版的快速部署。 -
M.8、BlogCore前后端部署Linux(视频)
用BCVP前后端项目,部署在Linux,可能和上边的视频有重复。 -
N.1、Redis的异步开发
使用的组件是微软官方推荐的StackExchange.Redis,然后用异步方式可以解决一些问题。 -
N.2、StackEx.Redis的安装与使用(视频)
通过视频的形式,基于BlogCore来讲解和分析如何使用Redis。 -
N.3、基于Redis的消息队列概要
很简单的实现MQ,支持一个发布多种订阅。 -
O.1、集成任务调度Quartz.Net
参考作者@Kawhi,来设计的一个基于Quart.Net的任务调度中心。 -
O.2、任务调度Quartz的使用(视频)
主要讲解BlogCore中是如何使用的,并把该部分代码给抽离出来,方便独立学习。 -
P.1、基于SignalR实时通信实现日志推送
本文基于NetCore项目,结合SignalR,将后端项目五种日志实时推送到Vue的Admin项目,比如异常日志,操作访问日志,sql日志等等。 -
P.2、SignalR通讯初体验(视频)
采用视频的形式,从新写Demo代码,用js来讲解。 -
P.3、SignalR指定用户组发消息(视频)
上边的是对全部人发消息,本视频是针对指定的用户群体,用户组Group发消息。 -
P.4、SignalR通过JWT实现用户间通讯(视频)
本视频继续深入,通过令牌的方式,识别指定的某个用户,并实现相互之间的通讯。 -
Q.1、xUnit测试——单元测试(视频)
借鉴eShopOnContainer架构,用计算器的小方法入手,讲解TDD是如何实现快速敏捷开发的,对理解单元测试有一定的帮助。 -
Q.2、xUnit测试——功能集成测试(视频)
在上边单元测试的基础上,进一步说明功能测试,如何实现项目某个功能模块是否成功。 -
《容器化与跨平台部分》
-
R.1、使用Docker部署Asp.NetCore应用
文章用BlogCore作为真是案例,在CentOS系统上安装Docker,并部署相应的应用,注意在安装的过程中,尽量先安装Docker,再安装SDK,如果先安装SDK,可能会出现仓储的异常更新问题,解决方案是,删除了,再安装,然后再添加仓储源文件。 -
R.2、在Docker中配置ASP.NETCore的HTTPS模式
内容很简单,就是对Docker中的Aspnetcore应用,配置Https的安全模式,需要证书。 -
R.3、Dcoker容器化操作(视频)
通过视频的形式,讲解如何在Linux系统上,安装Docker,并部署项目。 -
R.4、Docker端口映射解析(视频)
讲解我们在使用Docker的时候,如何在ASP.NETCore项目中,配置端口,并合理的Expose端口,才能实现监听和代理。 -
R.5、Docker部署Vue应用(视频)
除了可以构建后端应用,同样可以将前端项目,比如vue,来构建镜像,并生成运行容器。 -
R.6、Docker -v挂载配置文件到宿主机(视频)
挂载是Docker应用中,很重要的一个技术,也是必须要学会的技能,合理使用挂载,对于容器的安全性,健壮性都很有帮助。 -
S.1、CICD,使用Docker安装Jenkins
之前都是习惯了全家桶似的安装Jenkins,当然如果公司想要更强大的功能可以一点点安装,如果项目比较中等,用docker安装就行了。 -
S.2、使用Jenkins发布和代理ASP.NETCore项目
上文已经安装好后,可以部署core项目了,只不过会有问题,比如不能在Jenkins容器内使用dotnet命令,所以需要一个新的jenkin镜像,我已经封装好了,可以直接使用。 -
S.3、Jenkins的安装与使用(视频)
通过视频的形式,给大家展示了使用一个空的全新的CentOS系统,一一说明如何安装docker,如何安装Jenkins,并如何配置core项目,并代理和反向代理等。 -
T.1、IdentityServer4系列教程(10篇文章)
因为Ids4的变动比较少,所以还是延续之前的目录即可,还是比较工整的,一共文章十篇,这里就不过多的介绍了,从基础知识,到表结构迁移,数据持久化,三端联调,统一角色管理,安全加锁等等多个方面讲解了如何使用IdentityServer4项目。 -
T.2、Ids4学习视频教程(9节视频)
通过视频的形式,更加深入的讲解了我们开发ids4认证平台的时候,需要掌握的核心知识点,其中要学习Ids4,最最重要的就是OAuth2协议,OpenConnectID流程,数据库每个表是什么意思,如何修改,每一个数据库上下文如何修改,对应怎样的功能模块,如果在认证平台合理处理用户和角色信息,如何将认证平台和资源服务器很好的结合在一起,如何三端联调。 -
U.1、DDD视频与文章(13篇文章)
DDD领域驱动设计的核心,就是学会如何分析业务、划分限界上下文、处理聚合、理解实体/聚合根/值对象的关系、掌握充血模型的设计、会使用事件和命令、合理使用经典四层模型、最后要学会总线的概念和运用和订阅发布模式、学会使用MediatR和RabbitMQ。因为在微服务中,基本都是分布式微服务,保证业务的完整性,正确性,是很有必要的,事件总线,服务总线是一个很好的办法。 -
U.2、DDD驱动设计的理论篇(10个视频)
这个系列视频是理论基本的,没有书写代码,只是从思想上入门,以后把eShopOnContainer讲完,正好把shopping微服务作为一个很好的DDD案例,加以实战讲解。
一共73篇ASP.NetCore基础知识+19篇Ids4内容+23篇DDD = 115(篇/个 视频和文章)
未完待续。。。
Come On。