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接口,供客户端调用;也可以在脚本中进行调用。