• [连载]《C#通讯(串口和网络)框架的设计与实现》- 0.前言


                                  目       录

    1. 前言

     

    前言

          刚参加工作,使用过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

    文档下载:http://pan.baidu.com/s/1pJ7lZWf

  • 相关阅读:
    每日记载内容总结33
    华为机试-尼科彻斯定理
    华为机试-求最大连续bit数
    华为机试-合法IP
    华为机试-票数统计
    华为机试-等差数列
    华为机试-自守数
    中序表达式转后序表式式
    华为机考 给你一个N*M的矩阵,每个位置的值是0或1,求一个面积最大的子矩阵,这个矩阵必须是一个正方形,且里面只能由1构成,输出最大的正方形边长。其中n,m<=400;
    华为机试-求解立方根
  • 原文地址:https://www.cnblogs.com/lsjwq/p/4978884.html
Copyright © 2020-2023  润新知