一、简介
不知不觉,短短几个月的时间,我已经写了大大小小100篇博客。短短几个月的时间,见证了我的努力、我的收获、我的学习效率。从一开始的零基础,到现在我需要了解整个项目的设计架构,才能来满足我的设计需求。
我的需求,如我标题所说的那样。在我的项目中,包含了Socket通信、人脸识别、指纹识别、视频监控、串口通信等等功能模块。在我WPF工程中,点击某些发送按钮,Socket通信就会连接远端PC,进行同步。那么问题来了,我想关闭Socket通信这个功能模块,而不影响其他功能以及主程序的使用,该怎么办呢?首先肯定的是,我WPF项目的架构肯定有问题的,刚开始设计我没有考虑架构的事情。
于是,我上网查了下,看看别人是怎么做的。于是收集了以下关于敏捷开发、架构设计等等的资料。
敏捷开发:项目管理者或 公司管理者 需要了解的。
架构设计:项目管理者或 程序员 需要了解的。
敏捷开发在我的一篇博客中提到
C#.架构设计(一)敏捷开发:敏捷开发联盟、开发工具、开发方法、C#敏捷开发
二、资料来源分析
我的问题是:c# 项目中包含了多个模块或多个功能,如何灵活打开或关闭某个模块或功能
那么,下面几个网站提供了一些解决思路。
1、网站1
https://zhidao.baidu.com/question/1859757799022645387.html
该网页的原问题:C#如何实现功能模块化,并自由的添加和去掉功能?
提供了几个方法:
(1)重新发布EXE文件
(2)动态加载DLL
(3)插件(主要用到接口和反射)
(4)bolgengine.net的设计思想采用了外挂widget的方式。
2、网站2:
https://bbs.csdn.net/topics/390777877/
该论坛的原问题:C#如何实现功能模块化,并自由的添加和去掉功能?
提供了几个方法:
(1)封装成dll+统一接口+反射加载(一些好的ERP软件采用了这种方法)
(2)SCSF框架的插件开发模式,里面的基本思想是通过配置发布出来的事件,实现动态调用,非常方便
3、网站3
https://docs.microsoft.com/zh-cn/previous-versions/dotnet/netframework-4.0/bb384200%28v%3dvs.100%29
实际上,我们研究或使用的架构,都是来源于.NET Framework。要想弄明白软件架构,最好看看.NET Framework,透过想像看本质,才是我们学习的根本。你可以通过购买.NET Framework书本,也可以在.NET Framework网页的的链接上。
三、总结
1、结合《C#敏捷开发》、《C#架构设计》、.NET Framework等来学习架构设计。
2、根据我的问题,可以总结如下方法:
3、往后,我还将继续学习架构设计的东西,并将架构设计的东西一一实现,同时会更新相关的博客。