abp(net core)+easyui+efcore仓储系统——解决方案介绍(二)
abp(net core)+easyui+efcore仓储系统目录
abp(net core)+easyui+efcore仓储系统——abp总体介绍(一)
abp框架
首先介绍一下abp框架,abp其实基于ddd(领域驱动设计)原则,具体的体系结构如下图:
现在我们开始介绍我们的解决方案,我们的项目解决方案如下:
二 . abp项目文件的介绍
abp.tplms.application,应用层:进行展现层与领域层之间的协调,协调业务对象来执行特定的应用程序的任务。它不包含业务逻辑,主要包含一些模型,abp重要的数据传输dto,包括数据库映射实体,前端视图模型转实体(entity)对象,一个应用服务方法通常被认为是一个工作单元(unit of work),使用一种像automapper这样的工具来进行实体与dto之间的映射,前端参数传入有限性验证等等
abp.tplms.core:领域层:领域层就是业务层,是一个项目的核心,所有业务规则都应该在领域层实现。包括业务对象和业务规则,这是应用程序的核心层。
实体(entity):实体代表业务领域的数据和操作,在实践中,通过用来映射成数据库表。
仓储接口(irepository):仓储用来操作数据库进行数据存取。仓储接口在领域层定义,而仓储的实现类应该写在基础设施层。
领域服务(domain service):当处理的业务规则跨越两个(及以上)实体时,应该写在领域服务方法里面。
领域事件(domain event): 在领域层某些特定情况发生时可以触发领域事件,并且在相应地方捕获并处理它们。
工作单元(unit of work):工作单元是一种设计模式,用于维护一个由已经被修改(如增加、删除和更新等)的业务对象组成的列表。它负责协调这些业务对象的持久化工作及并发问题。
多语言(localization):定义一种语言对应一个文件,把应用中所有需要进行多语言转换的描述,都可以写在这个目录中。
abp.tplms.entityframeworkcore:基础设施层:提供通用技术来支持更高的层。例如基础设施层的仓储(repository)可通过orm来实现数据库交互。当在领域层中为定义了仓储接口,应该在基础设施层中实现这些接口。可以使用orm工具,例如entityframeworkcore或nhibernate。abp的基类已经提供了对这两种orm工具的支持。还有数据迁移等。
abp.tplms.web.mvc:展现层:提供视图界面与用户进行交互操作。
abp.tplms.web.host:这里在abp中主要是提供接口,可以是解决方案内部使用接口,可以是与移动端等其他端口连接的接口。可以自动生成webapi接口,供客户端调用;也可以在脚本中进行调用。
推荐阅读
-
abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理三 (二十一)
-
abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十二)
-
abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之五(三十一)
-
abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之八(三十四)
-
abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理五 (二十三)
-
abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理八(二十六)
-
abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理六(二十四)
-
abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之列表视图(七)
-
abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之增删改视图(八)
-
abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之菜单与测试(九)