首先介绍一下abp框架,abp其实基于DDD(领域驱动设计)原则,具体的体系结构以下图:html
如今咱们开始介绍咱们的解决方案,咱们的项目解决方案以下:前端
二 . ABP项目文件的介绍数据库
ABP.TPLMS.Application,应用层:进行展示层与领域层之间的协调,协调业务对象来执行特定的应用程序的任务。它不包含业务逻辑,主要包含一些模型,abp重要的数据传输DTO,包括数据库映射实体,前端视图模型转实体(Entity)对象,一个应用服务方法一般被认为是一个工做单元(Unit of Work),使用一种像AutoMapper这样的工具来进行实体与DTO之间的映射,前端参数传入有限性验证等等设计模式
ABP.TPLMS.Core:领域层:领域层就是业务层,是一个项目的核心,全部业务规则都应该在领域层实现。包括业务对象和业务规则,这是应用程序的核心层。 并发
实体(Entity):实体表明业务领域的数据和操做,在实践中,经过用来映射成数据库表。app
仓储接口(IRepository):仓储用来操做数据库进行数据存取。仓储接口在领域层定义,而仓储的实现类应该写在基础设施层。框架
领域服务(Domain service):当处理的业务规则跨越两个(及以上)实体时,应该写在领域服务方法里面。工具
领域事件(Domain Event): 在领域层某些特定状况发生时能够触发领域事件,而且在相应地方捕获并处理它们。 post
工做单元(Unit of Work):工做单元是一种设计模式,用于维护一个由已经被修改(如增长、删除和更新等)的业务对象组成的列表。它负责协调这些业务对象的持久化工做及并发问题。
多语言(Localization):定义一种语言对应一个文件,把应用中全部须要进行多语言转换的描述,均可以写在这个目录中。ui
ABP.TPLMS.EntityFrameworkCore:基础设施层:提供通用技术来支持更高的层。例如基础设施层的仓储(Repository)可经过ORM来实现数据库交互。当在领域层中为定义了仓储接口,应该在基础设施层中实现这些接口。可使用ORM工具,例如EntityFrameworkCore或NHibernate。ABP的基类已经提供了对这两种ORM工具的支持。还有数据迁移等。
ABP.TPLMS.Web.Mvc:展示层:提供视图界面与用户进行交互操做。
ABP.TPLMS.Web.Host:这里在abp中主要是提供接口,能够是解决方案内部使用接口,能够是与移动端等其余端口链接的接口。能够自动生成WebAPI接口,供客户端调用;也能够在脚本中进行调用。