壹佰文章总结| 关于ASP.NETCore的分享之路

公众号不让放外网链接,点击【阅读原文】,去我的博客园,可以看对应的详细文章。

 

(关于学习ASP.NET Core需要了解和掌握的知识点图)

 

一言不合就来图,各位博客园小伙伴大家好,感觉好久没有写文章了,自从春节开始,中间经历种种,慢慢的就开始微信公众号发文了,原因有很多,不做说明,不好的地方就是不知道目录链接,所以还是发到博客园吧。

 

请注意:我不是做框架的,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、集成任务调度Quart.Net

    参考作者@Kawhi,来设计的一个基于Quart.Net的任务调度中心。

  • O.2、任务调度的使用(视频)

    主要讲解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认证平台的时候,需要掌握的核心知识点。

  • U.1、DDD视频与文章(23个)

    13篇文章+10个视频,因为已经不是ASP.NETCore的基础教程了,所以暂不描述。

 

 一共73篇ASP.NetCore基础知识+19篇Ids4内容+23篇DDD = 115(篇/个 视频和文章)

 未完待续。。。

点击【阅读原文】,博客园有对应的链接????

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/307235.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件构造学习笔记-第五周

本周讲了AF、RI、Safety from rep exposure、spec等概念。这些是辅助程序设计的重要部分,需要在代码中以注释的形式体现,可以显著提高代码可读性,明确设计的目的。必须要养成写的习惯!!! 设计规约 1.规约…

EFCore之SQL扩展组件BeetleX.EFCore.Extension

EFCore是.NETCore团队开发的一个ORM组件,但这个组件在执行传统SQL的时候并不方便,因此BeetleX.EFCore.Extension的设计目的是让EFCore执行传统SQL更简单方便。引用在使用组件之前需要引用它,可以通过以下地址获取最新版本https://www.nuget.o…

软件构造学习笔记-第六周

这周的重点是重载和重写。重载要求两方法的签名必须不同,而重写则要求两方法的签名必须相同。重载可以发生在同一个类中,也可以发生在父类和子类中;重写必须发生在父类和子类中。接口/抽象类不具有构造方法,只有将内部的抽象方法全…

云原生时代,.NET5必将称王!

“ 随着互联网持续高歌猛进,相关技术名词也是层出不穷。微服务、容器化、DevOps、ServerLess、FaaS,这两年最火的,当属云原生Cloud Native!当下大部分企业还在追逐微服务架构落地,而下一代的架构云原生已如火如荼。程序…

软件构造学习笔记-实验2

P1 1.设计目标 首先对图的ADT进行两种实现(从边和顶点出发),然后选择一种实现的ADT,根据输入的文件构建语料库,再利用构建的语料库,对输入字符串进行插入操作,并返回修改后的字符串。 2.有关AF…

海棠读社小程序研发(.Net Core版)

今天这篇博文是介绍海棠读社小程序开发的技术博文,由于博主是技术出身,开发过小程序和公众号,所以从决定做海棠读社开始就写代码了。因为只有技术和文化相结合,更能使传统文化大放异彩,更好地传播、讲好中国故事。漓江…

软件构造学习笔记-第七周

本周只有一节课,内容较少。对于不可变类型的相等比较,需要重写equals和hashCode方法,实现观察等价性。对于可变类型,不建议重写以上两方法,按照默认比较方式(比较内存地址)即可。 可变类型的相…

asp.net core监控—引入Prometheus(五)

上一篇博文中说到Prometheus有四种指标类型:Counter(计数器)、Gauge(仪表盘)、Histogram(直方图)、Summary(摘要),并且我们做了一个Counter的Demo&#xff0c…

软件构造学习笔记-第八周

本周重点是Liskov可替换原则。它要求父类和子类的行为一致性,子类要有更强的不变量、更弱的前置条件、更强的后置条件。在该原则的要求下,每个子类都可以对父类进行替换。这在开发过程中会带来极大的便利,在实验3中学习并运用该原则。 有关复…

C# 中的只读结构体(readonly struct)

翻译自 John Demetriou 2018年4月8日 的文章 《C# 7.2 – Let’s Talk About Readonly Structs》[1]在本文中,我们来聊一聊从 C# 7.2 开始出现的一个特性 readonly struct。任一结构体都可以有公共属性、私有属性访问器等等。我们从以下结构体示例来开始讨论&#x…

软件构造学习笔记-第九周、第十周

因为本周五开始五一假期,所以只有一节软件构造课。因为内容还属于创建模式、结构模式、行为模式。将该堂课的内容整合到本博客中。本周的重点是程序开发模式,在写代码之前首先充分考虑采用哪种模式更有利于开发、维护。采用合适的设计模式帮助理清思路&a…

回顾 | 使用Visual Studio Code进行端到端应用程序开发

点击蓝字关注我们,获得更多课程吧~微软Reactor 为帮助广开发者,技术爱好者,更好的学习 Python,数据科学,机器学习,AI,区块链等技术,将每周三到周六,组织 3~5 场线上分享活…

软件构造学习笔记-第十一周

本周的内容是,比较各个设计模式的区别和联系,并介绍了状态模式和备忘录模式,以及正则表达式。正则表达式用于对文本文件的处理。在实验3中有一项要求是对输入文本进行解析,构造航班。要求表达式不仅要读入合法数据,还要…

实现 OutOfMemory​

通过代码实现 OutOfMemoryIntro来尝试写一个发生 OutOfMemoryException 的代码吧,开启煞笔代码第三篇 —— OutofMemoryOutOfMemoryOutOfMemory 顾名思义就是内存不足,在 .NET 中当内存不足的时候就会抛出 OutOfMemoryException 的异常。想要触发 OutOfM…

软件构造学习笔记-实验3

本次实验要求从五项要求(航班管理、高铁车次管理、操作系统进程管理、大学课表管理、学习日程管理)里完成三项要求,并且尽量实现复用。 面向可复用性和可维护性的设计:PlanningEntry 1.首先设计一个类CommonPlanningEntry来实现…

用 Span 对 C# 进程中三大内存区域进行统一访问 ,太厉害了!

一:背景 1. 讲故事前段时间写了几篇 C# 漫文,评论留言中有很多朋友多次提到 Span,周末抽空看了下,确实是一个非常????????的新结构,让我想到了当年的WCF,它统一了.NET下各种零散的分布式技术&#…

福利 | 全网疯传免费领,一整套算法课程,拿走不谢!

算法对于程序员而言,到底有多重要,这已经是一个老生常谈的话题了。我看过很多有潜力且非常努力的程序员,在进阶高级工程师或架构师的路上,栽在了“算法”上,说实话,我并不意外。如果说得功利和实际一些&…

软件构造学习笔记-第十二周

本周介绍了异常以及异常的处理。Java的异常机制将处理异常的代码整合到一个代码块中,而不是通过if-else进行处理,提高了代码整体的简洁性。同时,异常机制可以更加详细地说明错误类型、引起错误的位置、错误信息,对程序健壮性十分有…

C#中LINQ与数据管道

假如有一个集合,里面有数字1-10,现在想实现从这10个数字中取出偶数数字,然后将得到的偶数乘以10,最后输出前三个。代码如下:代码非常的简单,最后会得到20、40、60这三个数字,但结果并不是我们今…

软件构造学习笔记-实验4

磕磕绊绊也算是完成了最后一个实验。记录一下实验中遇到的问题。 IDEA中SpotBugs的安装和使用 从网上找教程,都说IDEA没有使用版权。结果我直接在插件中就找到了。点击安装并重启即可。 使用时,选择需要操作的项目/包/类点击右键,就能看到S…