ABP开发框架前后开发系列——(1)框架概述


浏览:1284 次

ABP是ASP,ABP是一个开源和文档友好的app框架。ABP不仅是一个框架,它还提供了一个基于最佳实践领域驱动设计(DDD)的架构模型。我已经学习使用ABP框架一段时间了。我一直想完全理解框架的整个上下文,并将其放入一个系列中,但我从未写过本文的开头。我只是希望我能深入理解它,并且更深入地理解它。我不想误导人们,也不想把官方网站的内容翻译成与互联网上相同的内容。官方网站上的英文介绍也非常详细,所以我认为最好根据实际使用过程进行整理。

第一次了解ABP框架真是太棒了。基本上,NET域架构是我们各种技术应用的缩影。NET领域,并且它可以支持自己的NET框架和NET核心对它的引入也很感兴趣。

1) ABP框架的特点

让我们大致了解一下ABP框架。

依赖注入。这部分使用Castle Windsor(依赖注入容器)实现依赖注入,这也是我们经常使用IOC处理的方式;

仓库仓储模式实现了实体框架、NHibernate、MangoDB、内存数据库等,仓储模式可以快速调用数据接口;

身份验证和授权管理可用于通过声明特性来验证用户是否登录或界面权限。可以以非常细粒度的方式设置每个接口的调用权限;

数据有效性验证:ABP自动判断接口的输入参数对象是否为空,并可根据属性的应用信息验证属性的有效性;

审计日志记录,即我们对每个接口的调用记录,以及创建、修改和删除记录的人员的记录;

工作单元模式自动实现应用层和存储层的数据库事务。默认情况下,所有app服务层接口都以工作单元模式运行,即使它们调用不同的存储对象进行处理,它们都处于相同的事务逻辑中;

异常处理。ABP框架提供了一整套流程处理操作,可以轻松地记录和转移异常;

日志记录。我们可以使用Log4Net进行常规日志记录,以便跟踪程序的处理信息和错误信息;

多语言/本地化支持。ABP框架对多语言处理也很友好,提供XML和JSON语言信息的配置和处理;

自动映射是ABP中一个非常重要的对象隔离概念。通过使用AutoMapper实现域对象和DTO对象的属性映射,可以隔离它们之间的逻辑关系,但可以轻松分配属性信息;

动态Web API层。通过这种动态处理,您可以直接将app服务发布为Web API层,而无需为每个业务对象手动创建Web API控制器,这非常方便;

动态JavaScript的AJax代理处理可以自动创建JavaScript的代理层,以便于使用Web层中使用的Web Api。

除了这些重要的特性,ABP框架还有许多特殊的功能或概念。

多租户支持(每个租户的数据被自动隔离,业务模块开发人员在保存和查询数据时不需要编写相应的代码;

软删除支持(继承相应的基类或实现相应的接口将自动实现软删除)

系统设置的访问管理(系统级、租户级、用户级、范围自动管理)

EventBus实现域事件

模块及其依赖关系实现插件模块处理等

ABP框架主要基于领域驱动的概念来构建整个架构。域驱动的概念包括域对象实体、存储库对象、域服务接口层、域事件、app服务接口、数据传输对象DTO等。一般来说,我们只需要保留域对象、标准仓库对象(无自定义仓库接口)、app服务接口和DTO对象。通常,可以省略域服务层接口层和自定义仓库对象。稍后我将介绍这一点。也就是说,我们可以通过使用这些对象和关系快速构建一个易于使用的ABP框架层。

ABP官方网站:您可以查看详细的案例和文档,并下载不同类型的基本框架

相关资讯:
APP项目开发流程

APP项目开发流程

查看
软件外包开发过程

软件外包开发过程

查看
软件外包项目开发过程

软件外包项目开发过程

查看
如何找到一家满意的软件项目外包公司

如何找到一家满意的软件项目外包公司

查看
寻找优质APP外包公司

寻找优质APP外包公司

查看