目 录
- 前言
前言
刚参加工作,使用过VB、VC开发软件,随着C#的崛起,听说是C++++,公司决定以后开发软件使用C#,凭借在书市5块钱买C#编程入门书籍,开始了职业生涯。开发C/S、B/S结构的软件是必不可少的,又涉及到Remoting、WebService、线程、异步等不知所云的技术。到现在为止,不敢妄称精通,却也使用熟练;研读Framework源代码,不敢说全部搞懂,却对技术提高有很大帮助。
身在传统行业,确实感觉到引入互联网的思维方式的重要性,在传统行业产品、用户群体的基础上实现增值服务。亲自设计、开发远程E服务系统,客户端、服务端、Web管理系统、移动APP(Android)程序等,无不身先士卒。整个系统雏形基本完成,领导也是眼前一亮,赞叹是个好东西。作为有理想、有目标的程序猿,只为能够推动公司发展、进而实现个人的发展。奈何当时还没有 “互联网+”的概念,职能部门之间存在认识上的差异,项目推进缓慢,处于半死状态。对于不见兔子不撒鹰的做事风格,对新鲜事物反应迟钝也属于情理之中的事。
想想多年来,有什么拿的出手的作品呢,对于认为开发软件是一门艺术的人来说是值得思考的问题。思考良久,只有通讯(串口和网络)平台(SuperIO)能拿来和大家分享,形成了产品,可以供大家进行二次开发。
当年,拿着框架的界面和简要介绍去面试,被录用后,到谈薪水时,部门领导说这个“软件”很简单。如果是为了压低薪水,是可以理解的。但是,作为工程师、开发者、设计者、构架师等一类人群,最反感听到某某人说:这个很简单;这个很容易实现;这个很短时间就能完成……诸如此类的话。SuperIO作为一个轻型通讯框架,可以提高复用、降低工作量,那么就是有价值的。
说到框架,互联网上有很多供我们使用的框架。通讯框架、消息队列框架、分布式任务框架、Web开发框架等等,而且都是免费的。所以,我们应该感谢互联网,对于技术方面更多元、更开放、更高效。
对于工程师来说,很崇拜、羡慕那些造轮子的人,我也是如此。但是,大部分人都是在用轮子,站在巨人肩膀上前进,更多关注实现的业务。我算不上造轮子的人,也只是根据公司的业务形成了一个通用的软件框架。
什么是好的框架?不是自己说了算。从开发者的角度来看,过了N年,还有修改的动力、还有扩展的余地;从二次开发者(应用)的角度来看,的确提高了开发效率、降低了成本;从用户应用的角度来看,运行的确很稳定。从不同主体角度看问题的关注点不一样。
SuperIO经过多年的完善、迭代,的确支撑起公司的众多设备、众多协议,在集成项目的数据采集、交互方面发挥了重要作用。提高了复用和开发效率,降低了时间成本和人力成本。也有很多网友在免费使用,有人反馈说SuperIO有点像组态软件。说实话,比组态软件差远了,但是核心通讯方面是类似的。
SuperIO的核心思想是把不变的部分做稳定,把变的部分(显示、数据处理和保存、服务等)做灵活。同样的,用Java、Python、QT等其他语言也可以完成同样框架,更多的体现在思想方面。
计划写连载文章对SuperIO的设计与实现进行整体的介绍,并指出哪里需要改进。希望通过交流能够共同提高。
连载文章规划的目录如下: 前言 第1章 通讯框架介绍 通讯的本质 应用场景 解决现实问题 框架简介 框架应用特点 框架设计特点 插件式应用框架 开发环境 第三方组件 小结 第2章 框架总体的设计 宿主程序设计 通讯机制设计 层次示意图 模型对象示意图 小结 第3章 设备驱动的设计 (接口) 运行设备接口设计 虚拟设备接口设计 协议驱动设计 命令缓存设计 数据持久化设计 数据交互设计 通讯状态设计 定时任务设计 运行优先级设计 授权设计 事件响应设计 上下文菜单设计 IO通道监测设计 设备管理器 小结 第4章 串口和网络的IO设计 统一IO接口 IO管理器 串口IO管理器 网络IO管理器 小结 第5章 通讯控制器的设计 控制器 串口控制器 网络控制器 小结 第6章 总体控制器的设计 组装部件 接口职能 事件响应 数据中转 小结 第7章 外部接口的设计 插件接口 图形显示接口 数据导出接口 服务组件接口 小结 第8章 插件引擎设计 框架的契约-接口 实现接口 插件的雏形-抽象类 反射机制 动态加载插件 小结 第9章 宿主程序详细设计 配置文件设计 加载设备驱动 加载界面视图 加载数据导出 加载服务组件 DockPanel应用 检测运行授权设计 中英文切换 全局异常监测 小结 第10章 调试器设计 调试接口 用界面方式调试 命令行方式调试 小结 第11章 中英文版本切换设计 不用自带的资源文件的理由 自定义配置文件 语言管理类 小结 第 12 章 License设计 设计思想 代码实现 小结 第13章 二次开发及应用 构建主程序 设备驱动的开发 图形显示的开发 数据导出的开发 服务组件的开发 小结 第14章 配置工具的应用 参数配置设计 驱动挂载设计 小结 第15章 OPC服务端和客户端的开发和设计 OPC服务端设计 OPC客户端的设计 小结
作者:唯笑志在
QQ:504547114
.NET开发技术联盟群: 54256083