基于ABP框架封装一套MPA框架,使用Layui作为前端呈现,封装常用的功能。旨在设计快速入手,快速实践框架。
基于Abp框架并接入Pear Admin前端框架,Pear Admin框架基于Layui封装,两者均开源免费。
整体的解决方案结构划分如下,其中PearAdmin.AbpTemplate.Admin重命名了ABP默认提供的Web.Mvc项目,一是从结构上出发,看起来更显得从上至下的分层结构,二是从请求路径上一目了然。并额外增加了PearAdmin.AbpTemplate.Gateway,以此来增加防腐层,方便各限界上下文间不要直接请求,通过防腐层约束请求调用。
- PearAdmin.AbpTemplate
-src
- PearAdmin.AbpTemplate.Admin
- PearAdmin.AbpTemplate.Application
- PearAdmin.AbpTemplate.Core
- PearAdmin.AbpTemplate.EntityFrameworkCore
- PearAdmin.AbpTemplate.Gateway
- test
- PearAdmin.AbpTemplate.Admin.Tests
- PearAdmin.AbpTemplate.Application.Tests
- PearAdmin.AbpTemplate.Core.Tests
- tool
- PearAdmin.AbpTemplate.Migrator
- PearAdmin.AbpTemplate.Shared
说明:Admin为UI层,Application和Core为应用层和领域层,EntityFrameworkCore和Gateway及ABP自身提供的辅助设施组合为基础设施层。
从DDD的角度考虑,抛弃UI层,以应用层,领域层,基础设施层去出发,按照文件夹隔离出限界上下文边界,内部代码模型如下
- PearAdmin.AbpTemplate.Application
- AContext
- AAggregate
- BContext
- BAggregate
- ...
- PearAdmin.AbpTemplate.Core
- AContext
- AAggregate
- BContext
- BAggregate
- ...
- PearAdmin.AbpTemplate.EntityFrameworkCore
- PearAdmin.AbpTemplate.Gateway
- AContext
防腐层的建立,约定在领域层建立防腐层接口,在基础设施层-网关中实现接口,网关层对Application层有项目依赖,方便实例化下游上下文所需要的上游上下文。为避免出现循环引用,上下文映射图中最好不要出现环。
- PearAdmin.AbpTemplate.Application
- AContext
- BContext
- PearAdmin.AbpTemplate.Core
- AContext
- ...
- AntiCorruption
- IBService
- BContext
- PearAdmin.AbpTemplate.EntityFrameworkCore
- PearAdmin.AbpTemplate.Gateway
- AContext
- AntiConrruption
- BService
如限界上下文A需要访问上下文B中信息或需要B上下文协作,则通过A建立的防腐层接口与实现访问B上下文中的服务,以此来避免直接耦合。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。