C# 项目开发框架 ExtendedFramework 极致解耦

9 篇文章 0 订阅
8 篇文章 0 订阅

demo

我以前参与过多个软件架构设计和开发工作,其中两种模式非常典型。

仅针对参与过的项目分析优缺点,并不是模式本身的优缺点进行分析。

1、多进程模式,通过管道方式进行通信。

优点:每个模块之间相互独立,排查问题就会相对简单。

新同事接入项目不需要获取全部代码或者了解过多的架构、文件结构方面的知识。

缺点:有点规模的项目就会启动很多进程,同时重新启动某一个模块相对麻烦。

各个模块之间交互相对复杂,前后关联性由于架构设计问题耦合度较高,对于新同事继续参与项目或者后续外围功能开发并不是很友好。

2、单进程模式。

优点:进程数量固定可控,模块之间的交互成本和难度较低。

缺点:排查问题相对困难,且会出现难以定位问题所在的情况。

新同事介入需要了解很多信息,比如代码组织结构等等。

结合两种模式的经验设计了一种新的软件框架。

单进程+多域+服务的方式。

基本原理:signalr作为本地服务实现域之间的通信,切面模式实现监听属性改变事件,参考QT里面信号槽的概念,扩展c#版本的信号槽功能。

结合四个基础功能,实现模块之间的极致解耦。

属性变化=》切面模式获取属性改变事件=》signalr广播传递事件=》接受信号并通过信号槽(发送事件信号)=》执行注册的槽监听事件。

目前这个框架已经完成初版,接下去几篇文章我会陆续介绍,并开源出来。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LookMonkey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值