[Abp 源码分析]零、文章目录
0.系列文章目录
- 一、Abp 框架启动流程分析
- 二、模块系统
- 三、依赖注入
- 四、模块配置
- 五、系统设置
- 六、工作单元的实现
- 七、仓储与 Entity Framework Core
- 八、缓存管理
- 九、事件总线
- 十、异常处理
- 十一、权限验证
- 十二、多租户体系与权限验证
- 十三、多语言(本地化)处理
- 十四、DTO 自动验证
- 十五、自动审计记录
- 十六、后台工作与后台工作者
- 十七、ASP.NET Core 集成
1.为什么要写本系列文章?
Abp 源码分析系列是针对 Abp 3.7.2 版本来进行的一个源码分析记录,在这个系列文章当中我更多的是针对大体结构进行了一些分析,也是给其他想要阅读 Abp 源码的朋友一个参考,部分细微处的代码我会拿出我认为重要的地方进行详细讲解。
在更新的文章当中肯定会有一些错误或者不足的地方,大家可以在评论当中提出来。
2.Abp 简要介绍
GitHub 地址:https://github.com/aspnetboilerplate/
官网文档:https://aspnetboilerplate.com/Pages/Documents
ASP.NET Boilerplate 是专为现代 Web 应用程序设计的通用快速开发框架,它使用成熟的第三方库并在其基础之上进行开发,为您提供快速健壮的开发体验。
在 ABP 官网上提供了模版项目下载,目前已经有 Vue + Abp、Angular + Abp、ASP.NET MVC CORE + Abp 的最佳实践。
ASP.NET Boilerplate 使用最新的 ASP.NET Core&EF Core,但同时也支持ASP.NET MVC 5.x和EF 6.x。
模块化设计
Abp 基于模块化设计,拥有极高的可扩展性,Abp 也提供一些已经开发好的模块作为其基础设施。
多租户
Abp 本身就是基于多租户架构来进行设计的,从 UI 到数据库都可以见到多租户的影子。
标准的接口定义

层级图:

3.其他博客园 ABP 相关的资料博客地址
[Abp 源码分析]零、文章目录的更多相关文章
- ABP源码分析一:整体项目结构及目录
ABP是一套非常优秀的web应用程序架构,适合用来搭建集中式架构的web应用程序. 整个Abp的Infrastructure是以Abp这个package为核心模块(core)+15个模块(module ...
- ABP源码分析二:ABP中配置的注册和初始化
一般来说,ASP.NET Web应用程序的第一个执行的方法是Global.asax下定义的Start方法.执行这个方法前HttpApplication 实例必须存在,也就是说其构造函数的执行必然是完成 ...
- ABP源码分析三:ABP Module
Abp是一种基于模块化设计的思想构建的.开发人员可以将自定义的功能以模块(module)的形式集成到ABP中.具体的功能都可以设计成一个单独的Module.Abp底层框架提供便捷的方法集成每个Modu ...
- ABP源码分析四:Configuration
核心模块的配置 Configuration是ABP中设计比较巧妙的地方.其通过AbpStartupConfiguration,Castle的依赖注入,Dictionary对象和扩展方法很巧妙的实现了配 ...
- ABP源码分析五:ABP初始化全过程
ABP在初始化阶段做了哪些操作,前面的四篇文章大致描述了一下. 为个更清楚的描述其脉络,做了张流程图以辅助说明.其中每一步都涉及很多细节,难以在一张图中全部表现出来.每一步的细节(会涉及到较多接口,类 ...
- ABP源码分析六:依赖注入的实现
ABP的依赖注入的实现有一个本质两个途径:1.本质上是依赖于Castle这个老牌依赖注入的框架.2.一种实现途径是通过实现IConventionalDependencyRegistrar的实例定义注入 ...
- ABP源码分析七:Setting 以及 Mail
本文主要说明Setting的实现以及Mail这个功能模块如何使用Setting. 首先区分一下ABP中的Setting和Configuration. Setting一般用于需要通过外部配置文件(或数据 ...
- ABP源码分析八:Logger集成
ABP使用Castle日志记录工具,并且可以使用不同的日志类库,比如:Log4Net, NLog, Serilog... 等等.对于所有的日志类库,Castle提供了一个通用的接口来实现,我们可以很方 ...
- ABP源码分析九:后台工作任务
文主要说明ABP中后台工作者模块(BackgroundWorker)的实现方式,和后台工作模块(BackgroundJob).ABP通过BackgroundWorkerManager来管理Backgr ...
随机推荐
- Windows平台软件推荐:神器小工具(骨灰级)
底层工具 "If you know how to use Process Monitor competently, people of both sexes will immediately ...
- VM虚拟机安装centos详细图文教程
本教程贴,采用VM虚拟机进行安装, Ps:不懂VM使用的,可以百度一下 第一步,启动虚拟机,并进行新建---虚拟机·· 选择 从镜像安装,吧里有6.3镜像下载的链接的 然后, 下一步 . 选择客户机版 ...
- 【bzoj 1095】[ZJOI2007]Hide 捉迷藏
题目链接: TP 题解: 样例好良心,调样例3h一A…… 细节好多……诸如没完没了的pop和push……搞得头都大了. 同情zzh……调了整一天了. 动态点分治裸题……果然每个“裸题”打起来都跟shi ...
- B20J_1297_[SCOI2009]迷路_矩阵乘法
B20J_1297_[SCOI2009]迷路_矩阵乘法 题意:有向图 N 个节点,从节点 0 出发,必须恰好在 T 时刻到达节点 N-1.总共有多少种不同的路径? 2 <= N <= 10 ...
- Filter中排除对指定URL的过滤
1. 我们可以在web.xml中配置filter来对指定的URL进行过滤,进行一些特殊操作如权限验证等. <!– session过滤filter –> <filter> < ...
- SpringCloud学习系列之六 ----- 路由网关Zuul基础使用教程
前言 在上篇中介绍了SpringCloud Config的完美使用版本,本篇则介绍基于SpringCloud(基于SpringBoot2.x,.SpringCloud Finchley版)中的路由网关 ...
- 在javaScript中检测数据类型的几种方式
类型检测的方法 typeof instanceof Object.protype.toString constructor duck type:鸭子类型 typeof 返回一个字符串,适合函数对象和基 ...
- angular2-7中的变化监测
最近做公司新项目用的angular7,中碰到了一个很头疼的问题在绑定对象中的数据改变时,页面视图没有跟新,需点击页面中的时间元素后才会更新.以前使用angularJs也经常碰到类似情况,这种时候一 ...
- 基于Jenkins Pipeline的ASP.NET Core持续集成实践
最近在公司实践持续集成,使用到了Jenkins的Pipeline来提高团队基于ASP.NET Core API服务的集成与部署效率,因此这里总结一下. 一.关于持续集成与Jenkins Pipelin ...
- formidable处理node.js的post请求
前言 我们都知道在node.js中,我们最常用的请求方式是get和post.其中get请求和URL相关,通过解析URL我们可以直接获取到请求的参数.但是post请求不同,post请求是包含在请求体中, ...