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