netcorepal-cloud-framework icon indicating copy to clipboard operation
netcorepal-cloud-framework copied to clipboard

模块管理和依赖注入的需求讨论与设计

Open witskeeper opened this issue 2 years ago • 3 comments

这里讨论模块管理和依赖注入的需求与设计 与 #20 相关

witskeeper avatar Mar 22 '24 01:03 witskeeper

有没有考虑参考ABP那样的模块化

MingHuiJian avatar Mar 23 '24 04:03 MingHuiJian

ABP的高度封装集成,类似于springboot的设计思路,优势是默认情况下非常便捷,劣势是因为封装本身就是一种复杂度,当使用者期望深入掌控系统的时候,会有额外的学习(心智)负担,这也是为什么会觉得“重”的原因。

在这个项目里,我们在封装方面时刻保持克制,期望能保持框架/组件的简单,也就是轻量化,尽量避免这些封装,例如“基于属性的依赖注入”,尽可能在“易用”和“易掌控”之间保持平衡。

witskeeper avatar Mar 23 '24 07:03 witskeeper

模块管理:

基础需求:

  1. 模块的插拔(模块所属对象的“生杀”)——空间
  2. 模块生命周期管理——时间

扩展需求:

  1. 模块接口的克制 interface IModule只设计最小接口;事件可以在Module构造函数中用事件总线注册。
  2. 事件的时间性 一个Initalize等事件,如果需要,可以(自动)在前后加入两个事件:Pre, Post。
  3. 模块的嵌套性 IModule是否可支持嵌套?

2和3加起来有点像“十方三世”

zhouyongh avatar Mar 25 '24 11:03 zhouyongh

目前看aspnetcore框架内置的依赖注入组件已经足够使用了,不太倾向添加类似abp的模块化,更倾向于给开发者最原始的按需注入的能力

witskeeper avatar Feb 20 '25 06:02 witskeeper