【Blog.Core重要升级】:封装服务扩展层

昨天有群里小伙伴咨询了一个问题:

关于如何在Blog.Core项目中,实现多资源终端的问题,比如这样:

一个AdminMvc的管理后台(MVC项目),一个WebApi项目,一个ConsoleApp的控制台项目(比如可以用来做迁移或者定时器等工作)。

详细来说,目前的模式是一个webapi层然后搭配service+repository+接口,repository主要操作分页,多表,CRUD等db操作,service主要负责:事务,缓存,发邮件等相关内容。其他的一些常用Helper操作都集中到了Common层。

除此之外呢,会有很多的中间件和服务扩展,那目前我放到了api层,用着也挺好,不过对于上边的这种多终端客户端的问题,很不友好,因为这样会导致很多文件必须拷贝多份,或者需要写很多遍。

那基于这个问题呢,我做了调整,把中间件和服务扩展单独封装了一层,这样就很容易实现上边的需求了,最终的结果是这样的:

相应的代码我放到了SpeExtensions项目分支(如果没有这个分支了,证明代码在主分支)。

这样就很好的弱化了我们的api层,也是对项目解耦进一步做了调整,记得把api层的不必要的nuget引用也去掉,毕竟都放到了扩展层了嘛。

这样看之前的api层,就清爽了很多,业务和逻辑依然很丰富:

还有没有其他扩展方案

当然,如果你感觉这种把扩展提出来还不能满足灵活的需求,可以再细致一下,针对每一个组件都做一个扩展,比如这样:

xxx.Swagger、xxx.MiniProfiler、xxx.Aop、xxx.SqlSugar

等等等等

这样的话,不仅仅当前项目使用,其他任何项目都可以使用,不过我个人感觉没什么必要,看自己的需求吧。

最后说一下,目前这种设计方案还在dev阶段,如果你使用的时候发现任何问题,可以GitHub上给我提issue,我基本都会改,如果两个星期没问题,我会覆盖master分支。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值