abp、dotnet core 之模块化编程有感

netcore 发展到现在已经到了 3.0 版本,而 abp 作为典型的 ddd框架模板,也已经在诸多项目中得到实践。

说来惭愧,在.net 平台有做了差不多三年了,这两个好东西一个都没有好好学习理解过。

正好前段时间决心学习 abp,对 abp 的模块概念有了了解,而最近一个偶然机会,使用 netcore 做个简单的项目,意外的发现abp和netcore 的模块设计思想是极其的相似!

 

全局依赖注入

abp 和 core 都使用了一个全局依赖注入的方式,所有的模块通过容器进行注册,然后在程序中的不同地方随时使用注册了的服务。使用 依赖注入的好处显而易见,避免了在代码中写死代码,大大的减少了代码的耦合程度,便于调整和维护。

1.在 abp 中注册模块服务的做法是,在模块自己实现 abpmodule,启动程序在启动时去遍历依赖模块中实现了  abpmodule 的类,然后调用初始化流程(abp中初始化详细流程请移步 abp相关文档)。初始化的过程就是将模块定义的功能服务注册到容器中,那么主程序或者其它调用的模块使用模块的服务时,就可以通过注入的方式自动从容器中获取到服务对象。

2.而在netcore 的模块注册方式是在 ConfigureService 方法(相当于启动方法)通过调用 app.AddXXXX()  来注册模块,这个 AddXXX 实际上是一个扩展方法,模块自身实现一个模块初始化的扩展方法,在启动方法调用时会传入容器对象,而后模块自己做自己模块的注册调用。

 

模块配置

使用模块化编程自然时要考虑模块适应不同的应用场景和情况,那自然是少不

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值