一、背景:
我在我们企业建立了一套质量管理系统,涉及三个企业(子公司),他们分布在同一个城市的不同地方,相隔一二十公里。而且系统的用户比较多。这两个特点给系统的维护浪费我们大量的时间。根据系统运行在局域网和必须依赖数据库的特点,我实现了我们自己的系统发布和自动更新功能。
二、原理:
1)NET的及时编译与跨平台性。
2)数据库的二进制大对象操作
3)NET的反射能力
三、程序结构:
1)独立的启动文件,文件格式EXE;承担系统的启动和更新职责。
2)对立的业务模块,文件格式DLL;承担具体的系统业务功能。
3)配置文件,文件格式XML; 承担系统粘合剂,共享系统信息。
四、具体操作和实现过程:
1)建立系统的启动文件,验证系统的更新标志,根据更新标志实现系统的更新。并读取配置文件中的业务主体模块,通过反射启动主体模块。一般为登陆窗口或系统的主窗口。
2)建立独立的系统业务模块,,包括系统的登陆和系统的主窗口等部分。
3)建立系统的配置文件,记录系统的数据库配置和系统的启动模块。以及其他的配置信息。本文件可以自动更新。
4)更新过程,通过数据库系统的二进制大对象操作,将所得对象,转化成文件后储存到本地硬盘。完成系统的更新。
5)系统的发布时只包含一个独立的启动文件和一个配置文件。可以依靠邮件和复制完成系统的发布。
五、缺点:
1)系统的独立启动文件不能自动更新,尽最大限度的减少启动文件的职责,最大限度地使用配置文件共享信息。
2)系统和数据库系统紧密耦合,但系统建立在数据库的基础上,数据库必须有效。
六、配套工具:
系统发布工具,功能主要是将具体的文件放到数据库中。实现文件到数据库二进制大对象的转化过程,以及一些删除和修改的维护。