# Pear Admin Abp **Repository Path**: pear-admin/pear-admin-abp ## Basic Information - **Project Name**: Pear Admin Abp - **Description**: 🏆 基 于 Pear Admin 和 Abp 的 落 地 实 践 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: http://net.pearadmin.com/ - **GVP Project**: No ## Statistics - **Stars**: 190 - **Forks**: 83 - **Created**: 2020-11-25 - **Last Updated**: 2025-06-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Pear Admin Abp

开 箱 即 用 的 .Net 快 速 开 发 平 台

[预 览](http://net.pearadmin.com) | [官 网](http://www.pearadmin.com/)

Pear Admin Layui Version Jquery Version Layui Version

#### 介绍 基于ABP框架封装一套MPA框架,使用Layui作为前端呈现,封装常用的功能。旨在设计快速入手,快速实践框架。 #### 软件架构 基于Abp框架并接入Pear Admin前端框架,Pear Admin框架基于Layui封装,两者均开源免费。 * Abp部分采用Mvc+分层架构,分层架构按照职责水平分层,而不是采用限界上下文垂直分层形式。 Abp:https://github.com/aspnetboilerplate/aspnetboilerplate * 前端部分Mvc视图中采用三段式,顶部为css样式,中部为Html标签,底部为Js脚本,整体为Pear Admin提供的样式基础与功能。 Pear Admin:https://gitee.com/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上下文中的服务,以此来避免直接耦合。 ![输入图片说明](https://images.gitee.com/uploads/images/2020/1121/173254_0c7d3c61_890387.png "屏幕截图.png")