其实实现上位机的方式有很多比如C#的WinForm和WPF再比如C的Qt少数的还有用Python等其他语言开发。可惜本人才疏学浅实力和精力有限加之长春的上位机岗位所需技术多数以WinForm为主所以就不妄谈其他技术的架构设计。因此本篇笔记是以C#的WinForm为主来实现的一个简单的架构以供大家参考借鉴。为什么需要架构设计个人认为架构设计的本质就是为了提高程序的可阅读性、可扩展性最终都是为了提高程序的可维护性。从而降低程序的维护成本与协作者的沟通成本提高程序运行的健壮性。这就是为什么需要架构设计。WinForm程序架构设计实现在WinForm中我把架构设计主要分了三个部分① 窗口管理与业务逻辑实现部分设置一个Forms文件夹用来存储与窗口相关的程序文件。该部分职责是负责实现用户的交互界面与用户所需的业务逻辑的功能如果Forms实在很少或者就一个可以考虑不用请结合自己实际情况考虑。② 数据交互部分数据交互部分我又给细分成了两个部分即分别设置了两个文件夹DataAccess其职责主要是处理与数据库之间的数据交互HardwareAccess其职责主要是处理与硬件设备之间的数据交互。在HardwareAccess文件夹之中可以结合实际的硬件设备设置相关的文件夹或cs文件。比如要与单个PLC通讯就与之相关的cs文件放入其中要与多个PLC通讯就设置一个名为PLCs的文件夹根据不同的PLC的职责不同设置好相应的类名和文件名称将它们放入到PLCs的文件夹中。其他硬件设备亦是如此。③ 公共工具类部分上述的两个部分难免会复用到同一个工具程序因此设置了一个Util的文件夹以供上述两部分使用。然后要依据工具程序不同的特性设置好相应的子文件夹如有自定义的枚举类就设置一个Enums的文件夹用来存放枚举亦或是有自定义的扩展类那就设置一个Exts文件夹存放扩展类。其他的也是如此。④ Images文件夹如果加载一些图片的设置一个Images文件夹存放图片文件。这个没啥内容算是补充吧。结语把上述三个部分实现完成就算是在WinForm中搭建了一个简易的小框架了。虽然这不算是什么“高大上”的、“黑科技”的框架但是我想也能对提高程序的可维护性有一定帮助吧因此写了这篇浅谈笔记与各位分享。这篇笔记里提到的完整 Winform 架构示例项目我已经上传到了 Gitee和Github链接https://gitee.com/GandalfGao/Host-Program-Framework-Demohttps://github.com/GandalfGao/Host-Program-Framework-Demo另外项目 README 里有个“小贴士”章节如果觉得有帮助可以请我喝杯咖啡☕️量力而行感谢大家