[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 ...
随机推荐
- 你不知道的JavaScript--Item23 定时器的合理使用
1.定时器概述 window对象提供了两个方法来实现定时器的效果,分别是window.setTimeout()和window.setInterval.其中前者可以使一段代码在指定时间后运行:而后者则可 ...
- yii批量插入的方法
public function insertSeveral($table, $array_columns) { $sql = ''; $params = array(); $i = 0; foreac ...
- VM虚拟机安装centos详细图文教程
本教程贴,采用VM虚拟机进行安装, Ps:不懂VM使用的,可以百度一下 第一步,启动虚拟机,并进行新建---虚拟机·· 选择 从镜像安装,吧里有6.3镜像下载的链接的 然后, 下一步 . 选择客户机版 ...
- error LNK2001: 无法解析的外部符号 解决方法
错误提示:LNK2001 无法解析的外部符号 "public: class el::base::Writer & __cdecl el::base::Writer::construc ...
- hibernate MTM 联合主键
//适用于表里没有其他列,只有主键 //Course.java实体类 package com.tao.pojo; import java.util.HashSet; import java.util. ...
- bzoj 1189 紧急疏散 网络流
二分答案,网络流判断 将每个门拆点,每个人连向每个门的dis~当前解 然后跑最大流,如果等于人数,即为可行解 #include<cstdio> #include<iostream&g ...
- vue不是内部或外部命令解决验证方案
一.前提 1.该教程是在你已经安装配置好node.js和express情况下 2.你已经完成了vue和vue-cli的全局安装 3.完成以上2步后,使用vue指令,会显示"vue不是内部或外 ...
- MIP 组件库升级公告
背景 为了方便广大开发者们更好地使用组件,现对 MIP 组件库统一进行升级,升级后将分为通用组件和自定义组件两类,方便开发. 通用组件,即考虑了组件通用性方便所有开发者参考使用的组件,将存放于 mip ...
- JAVA基础第二章-java三大特性:封装、继承、多态
业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...
- 在ASP.NET Core中使用EPPlus导入出Excel文件
这篇文章说明了如何使用EPPlus在ASP.NET Core中导入和导出.xls/.xlsx文件(Excel).在考虑使用.NET处理excel时,我们总是寻找第三方库或组件.使用Open Offic ...