学习使用ABP框架已有近一年了,有了一点积累,最近刚好把使用过程中的心得记录下。ABP框架是近些年比较流行的开源框架之一,主要特点我就不再一一赘述,一是网上已经有不少资料了,很多大牛也都比我写的详细和深刻,二是能看到这篇文章的应该对ABP框架是有些许了解的。废话不说,直奔主题。

注意:示例中使用ABP框架的行环境为.NET Framework,尚未切换至.NET Core


ABP框架的结构

官方文档上对ABP框架的结构进行定义,如下图所示:

abp框架怎么启用mongodb的事务 abp框架介绍_编程语言

从下到上依次是基础设施层、领域层、应用层、分布式服务层、展现层和客户端应用。在比较容易理解的分层结构基础上,框架本身有提供诸如对象映射、缓存、日志、多租户、异常处理、依赖注入等等一系列很有用的功能。

ABP框架的分层架构体现在代码解决方案的文件层次上就如下图所示:

abp框架怎么启用mongodb的事务 abp框架介绍_c#_02

在实际项目中,基础设施层连接数据库。而由于实际项目中采用了前后端分离的开发模式,所以客户端应用由前端开发人员实现,展现层也仅作为后端接口的基本管理应用来使用。后端开发人员的主要代码工作量就是在分布式服务层、应用层和领域层了,如果业务不是很复杂,利用分布时服务处动态生成API接口的特性可以减少更多的代码开发量。在实际的开发过程中,各层之间的关系大体如下:

abp框架怎么启用mongodb的事务 abp框架介绍_c#_03

领域层内为实体对象,通过映射关系与应用层的不同数据传输对象对应。应用层的接口定义数据传输对象与实体对象之间的行为,应用服务实现接口,也就定义的行为成为方法或函数。分布式服务层根据应用层的接口定义生成可供外部访问的API接口。展现层则提供对应的交互界面用于访问API接口。而基础设施层要做的就是把领域层的实体对象与数据库对象关联起来。这样从下至上、从前端到后端,数据的流动就通畅了。


以上就是从结构上对ABP框架的概况进行了解,更多更详细的功能和使用方法在后面的文章中继续介绍。


2020/2/1补充

目前ABP框架有两个:

ASP.NET Boilerplate,简称ABP,2015年左右发布,官网地址https://aspnetboilerplate.com/

abp.io,2019年底发布,官网地址https://www.abp.io/

这两个框架是同一个团队发布的,第二个在第一个的基础上做了大幅度的修改,所以干脆重新开了一个项目。第一个框架经过多年的维护推广有丰富的资料和示例,目前网络上已有的技术文章也大多是针对这一框架。第二个框架在农历春节前刚刚发布了2.0版本,框架稳定性还有待验证,中文文档资料还有欠缺。