0.系列文章目录

  1. 一、Abp 框架启动流程分析
  2. 二、模块系统
  3. 三、依赖注入
  4. 四、模块配置
  5. 五、系统设置
  6. 六、工作单元的实现
  7. 七、仓储与 Entity Framework Core
  8. 八、缓存管理
  9. 九、事件总线
  10. 十、异常处理
  11. 十一、权限验证
  12. 十二、多租户体系与权限验证
  13. 十三、多语言(本地化)处理
  14. 十四、DTO 自动验证
  15. 十五、自动审计记录
  16. 十六、后台工作与后台工作者
  17. 十七、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 相关的资料博客地址

HK Zhang

tkbSimplest

阳光铭睿

[Abp 源码分析]零、文章目录的更多相关文章

  1. ABP源码分析一:整体项目结构及目录

    ABP是一套非常优秀的web应用程序架构,适合用来搭建集中式架构的web应用程序. 整个Abp的Infrastructure是以Abp这个package为核心模块(core)+15个模块(module ...

  2. ABP源码分析二:ABP中配置的注册和初始化

    一般来说,ASP.NET Web应用程序的第一个执行的方法是Global.asax下定义的Start方法.执行这个方法前HttpApplication 实例必须存在,也就是说其构造函数的执行必然是完成 ...

  3. ABP源码分析三:ABP Module

    Abp是一种基于模块化设计的思想构建的.开发人员可以将自定义的功能以模块(module)的形式集成到ABP中.具体的功能都可以设计成一个单独的Module.Abp底层框架提供便捷的方法集成每个Modu ...

  4. ABP源码分析四:Configuration

    核心模块的配置 Configuration是ABP中设计比较巧妙的地方.其通过AbpStartupConfiguration,Castle的依赖注入,Dictionary对象和扩展方法很巧妙的实现了配 ...

  5. ABP源码分析五:ABP初始化全过程

    ABP在初始化阶段做了哪些操作,前面的四篇文章大致描述了一下. 为个更清楚的描述其脉络,做了张流程图以辅助说明.其中每一步都涉及很多细节,难以在一张图中全部表现出来.每一步的细节(会涉及到较多接口,类 ...

  6. ABP源码分析六:依赖注入的实现

    ABP的依赖注入的实现有一个本质两个途径:1.本质上是依赖于Castle这个老牌依赖注入的框架.2.一种实现途径是通过实现IConventionalDependencyRegistrar的实例定义注入 ...

  7. ABP源码分析七:Setting 以及 Mail

    本文主要说明Setting的实现以及Mail这个功能模块如何使用Setting. 首先区分一下ABP中的Setting和Configuration. Setting一般用于需要通过外部配置文件(或数据 ...

  8. ABP源码分析八:Logger集成

    ABP使用Castle日志记录工具,并且可以使用不同的日志类库,比如:Log4Net, NLog, Serilog... 等等.对于所有的日志类库,Castle提供了一个通用的接口来实现,我们可以很方 ...

  9. ABP源码分析九:后台工作任务

    文主要说明ABP中后台工作者模块(BackgroundWorker)的实现方式,和后台工作模块(BackgroundJob).ABP通过BackgroundWorkerManager来管理Backgr ...

随机推荐

  1. node.js 使用forever守护进程

    //forever的安装:npm install forever -g//使用forever启动守护进程:forever start 路径/your_app.js//关闭守护进程:forever st ...

  2. 玩转spring mvc(六)---自定义异常跳转页面

    本文主要是关于如何在出现异常 如404时,跳转到自定义的异常页面,当然这不是spring的知识,但可以整合进去. 在web.xml中新增如下代码,里边的路径可以根据实际情况进行修改 <!-- 7 ...

  3. python教你用微信每天给女朋友说晚安

    但凡一件事,稍微有些重复.我就考虑怎么样用程序来实现它. 这里给各位程序员朋友分享如何每天给朋友定时微信发送"晚安",故事,新闻,等等··· ···最好运行在服务器上,这样后台挂起 ...

  4. java中位运算

    1byte(字节)=8bit(比特) 1 0 0 0 0 0 0 0 1   2进制的1的原码 反码 补码 0 0 0 0 0 0 0 0   2进制的0的原码 反码 补码 -1 1 0 0 0 0 ...

  5. Django中模板过滤器总结

    一.形式:小写: {{ name | lower }} 二.串联:先转义文本到HTML,再转换每行到 <p> 标签: {{ my_text|escape|linebreaks } 三.过滤 ...

  6. 用ASP.NET Core 2.0 建立规范的 REST API -- GET 和 POST

    本文所需的一些预备知识可以看这里: http://www.cnblogs.com/cgzl/p/9010978.html 和 http://www.cnblogs.com/cgzl/p/9019314 ...

  7. BZOJ_3238_[Ahoi2013]差异_后缀数组+单调栈

    BZOJ_3238_[Ahoi2013]差异_后缀数组+单调栈 Description Input 一行,一个字符串S Output 一行,一个整数,表示所求值 Sample Input cacao ...

  8. java happens-before原则规则

    程序次序规则:一个线程内,按照代码顺序,书写在前面的操作先行发生于书写在后面的操作: 锁定规则:一个unLock操作先行发生于后面对同一个锁额lock操作: volatile变量规则:对一个变量的写操 ...

  9. LeetCode算法题-Number of Lines To Write String(Java实现)

    这是悦乐书的第319次更新,第340篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第188题(顺位题号是806).我们要将给定字符串S的字母从左到右写成行.每行最大宽度为 ...

  10. ConcurrentDictionary并发字典知多少?

    背景 在上一篇文章你真的了解字典吗?一文中我介绍了Hash Function和字典的工作的基本原理. 有网友在文章底部评论,说我的Remove和Add方法没有考虑线程安全问题. https://doc ...