c#框架的总体设计知识点有哪些

介绍

本篇内容介绍了“c#框架的总体设计知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

2.1,,,宿主程序设计

,,,作为插件式应用框架,要有一个宿主程序来承载,加载插件,为插件,驱动提供可运行的环境,使宿主程序与插件无缝对接。宿主程序与插件的关系是水和鱼的关系,有水没鱼,水就失去了价值;有鱼没水,鱼就会死去。从关系的角度来分析,开发框架的目的是什么?是与其他事物发生关系,包括:开发者,二次开发者,应用者,插件,甚至其他软件或组件等。发生的关系越多,相处越融洽,证明这个框架的价值越高,所以说,一个好的框架平台,不仅体现了开发者的技术,同时反应了开发者的情商。

,,,SuperIO框架使用净反射技术开发插件管理机制,在本章中不详细介绍具体的技术细节,在《第8章插件引擎设计》中再进行详细的介绍技术应用。

,,,那么一个框架的宿主程序应该怎么样去设计呢?或是说从哪些方面去考虑设计问题?在开发SuperIO框架的时候,一直在思考这个问题。首先,这个问题不应该从技术角度去考虑,而应该从人的角度去考虑如何做,应用者的角度,二次开发者的角度来规划宿主程序。

,,,从应用角度来分析,宿主程序应该包括:用户管理,设备驱动管理,设备状态监视方式,自定义UI插件显示方式,自定义输出数据插件操作方式,服务插件的服务方式,软件运行的监视方式,串口IO通道监视方式,网络IO通道监视方式等等。这些是我们从大的方向规划的,还需要再进一步细化,指引我们的开发工作。

,,,用户管理,要支持多用户以及用户权限分配,针对实时数据采集框架,面对现场应用的时候,肯定会涉及到两个角色:使用人员,工程师人员。针对使用人员的权限定位:可以查看参数和数据信息。针对工程师人员的权限定位:不仅拥有使用人员的权限,还可以修改参数。用户管理的菜单,如下图:

 C #框架的总体设计知识点有哪些

,,,,设备驱动管理,设备驱动(插件)是通过接口,抽象类设计的框架核心部分之一,可以把二次开发好的设备插件加载到框架中运行,完成数据采集,校验,解析,处理等相关操作,以及进行命令,数据的交互。同时,设备驱动管理还应该具体删除相关的设备插件的功能,增加设备插件,如下图:

 C #框架的总体设计知识点有哪些

,,,,设备状态监视方式,我们可以把它称为“设备运行器”,它并不是对不同类型设备驱动的所有参数,属性等数据进行简单显示,而是对设备通用参数,属性,实时状态等数据进行显示,监视,例如:设备ID、设备名称,地址,通讯类型,IO参数,IO状态,通讯状态,设备状态,报警状态,设备类型和编号等。如下图:

 C #框架的总体设计知识点有哪些

,,,,自定义UI插件显示方式,二次开发者在规范的接口基础上开发数据显示方式,挂载到框架的配置文件中,当用户单击某一个显示视图的时候,以标签形式的形式显示,并且可以单击按钮进行关闭,如下图:

 c#框架的总体设计知识点有哪些

,,,,自定义输出数据插件操作方式,这种输出数据的是对实时数据的导出,更多的是以事务性的服务存在,可以把一类的设备数据输出成多种数据格式。输出数据插件可以通过配置文件进行加载,只要设备驱动有数据更新,就把数据通过接口传递给输出数据插件,进行输出操作。不在配置文件中配置插件信息,则程序不进行加载,不进行输出操作,所以,这种事务性的服务不需要界面来完成,可以在宿主程序启动时通过代码来完成。

,,,服务插件的服务方式,这种服务是长期运行的事务性任务,所以更复杂一些。有些服务需要随宿主程序启动而自动运行,有些服务需要人工手动启动才运行。在宿主程序启动的时候要把服务的信息加载到菜单上,菜单里显示的这些服务可能有些已经启动了,有些需要通过单击操作,显示窗体并填写必要的信息后才可能启动,所以,宿主程序与服务插件不是单向交互,而是双向数据,事件交互,例如:把设备的数据采集上来,处理之后,要把数据上传到服务中心或其他区域,就可以开发一个插件来完成这项任务,如下图:

c#框架的总体设计知识点有哪些