作者:张飞洪[厦门]
出处:https://www.cnblogs.com/jackyfei/p/13572733.html
abp的模块化给我留下深刻的印象,模块化不是什么新概念,大家都习以为常,但是为什么要模块化,模块化的意义或者说目的是什么?也许我们思考得并不深入。难得的是abp不仅完美的阐述了模块化概念,而且把模块化落地得十分优雅,并且进行了开源。
模块化内涵?
模块分类
根据粒度大小的不同,模块具有各自的概念,我们从小到大来看一下模块都有哪些内容。
- 零件——class(最小)
- 组件——component(较小),软件的最小部署单元,比如jar,dll等
- 模块——module(更大),具有独立命名空间,可独立开发、部署和测试,具备和其他模块组装的能力,比如用户管理模块、租户模块等,在Abp vNext当初,一个模块就是一个项目。
- 微服务——microservice(最大),比如工单服务,巡检服务,保养服务等
Abp的模块是什么
很多人对Abp vNext模块化的理解可能都不一样,我理解的模块化至少应该包括以下一些内容:
- 广义上包括:实体、服务、APIs、UI页面、数据库
- 应用上包括:账号管理、身份管理、租户管理、设置管理、权限管理…
- 部署上包括:柔性部署(包括独立部署,也可集成部署)
- 能力上包括:服务任意拼装、组合
- 技术上依托:反射、配置、工厂、注入、动态代理等底层技术
- 模块划分姿势:类微服务,纵向,横向,部署便捷,维护成本
从Abp vNext的开源代码和demo里,