浅谈Abp vNext的模块化设计

abp的模块化给我留下深刻的印象,模块化不是什么新概念,大家都习以为常,但是为什么要模块化,模块化的意义或者说目的是什么?也许我们思考得并不深入。难得的是abp不仅完美的阐述了模块化概念,而且把模块化落地得十分优雅,并且进行了开源。

模块化内涵?

模块分类

  根据粒度大小的不同,模块具有各自的概念,我们从小到大来看一下模块都有哪些内容。

  • 零件——class(最小)
  • 组件——component(较小),软件的最小部署单元,比如jar,dll等
  • 模块——module(更大),具有独立命名空间,可独立开发、部署和测试,具备和其他模块组装的能力,比如用户管理模块、租户模块等,在Abp vNext当初,一个模块就是一个项目。
  • 微服务——microservice(最大),比如工单服务,巡检服务,保养服务等

  

Abp的模块是什么

  很多人对Abp vNext模块化的理解可能都不一样,我理解的模块化至少应该包括以下一些内容:

  • 广义上包括:实体、服务、APIs、UI页面、数据库
  • 应用上包括:账号管理、身份管理、租户管理、设置管理、权限管理…
  • 部署上包括:柔性部署(包括独立部署,也可集成部署)
  • 能力上包括:服务任意拼装、组合
  • 技术上依托:反射、配置、工厂、注入、动态代理等底层技术
  • 模块划分姿势:类微服务,纵向,横向,部署便捷,维护成本

  从Abp vNext的开源代码和demo里,我们随处可以看到module这个单词,而且一旦我们的project继承abpModule后,依赖abp底层的注入能力,我们即刻给项目赋予了模块化能力,同时,借助自动controller和动态代理的能力,模块之间通信只需要简单配置即可。可以说没有以上两种能力,模块化的落地也就无从谈起了。

模块化有什么意义?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值