-
abp(net core)+easyui+efcore实现仓储管理系统——解决方案介绍(二)
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接口,供客户端调用;也可以在脚本中进行调用。
出处:https://www.cnblogs.com/chillsrc/p/10944870.html