V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Jmysy
V2EX  ›  分享创造

Pear Admin Abp 后台管理系统 , 基于 .Net 平台 Abp 生态框架的落地实践

  •  
  •   Jmysy · 2020-12-02 13:13:40 +08:00 · 1713 次点击
    这是一个创建于 1481 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Pear Admin Abp

    预 览 | 官 网 | 群聊 | 社区 | 源码

    Pear Admin Layui Version Jquery Version Layui Version

    介绍

    基于 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 上下文中的服务,以此来避免直接耦合。 输入图片说明

    1 条回复    2020-12-03 12:46:55 +08:00
    C0dEr
        1
    C0dEr  
       2020-12-03 12:46:55 +08:00
    给楼主顶一个,好久没看到有用.Net 的还是用 ABP,分外亲切。以前用的 ABP Zero 写过几个项目,楼主可以借鉴一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2883 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:40 · PVG 20:40 · LAX 04:40 · JFK 07:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.