前面我们已经了解过云露中间件的基本实现原理和优势,现在我们再来了解主副架构方面的知识。
我们这里说的主副架构是指Exe主程序+DLL窗体模式的架构。在我的另外一篇博文里也有一篇文章给出了DLL窗体嵌入Panle的源码。但是我们现在说的是将DLL窗体嵌入TabSheet页。看起来似乎没什么区别,但是嵌入到TabSheet之后需要增加很多细节处理:嵌入的方式、页签的切换、关闭等都需要考虑。业务功能简单时我们可以嵌入Panel,但业务流程多且复杂时,页签才是更好的解决方法。
先说说主副架构的优点。不难理解,主副架构跟传统的一个EXE走天下不同,使用DLL文件中可以封装几乎所有的业务功能,它的好处概括如下:
一、多人协同开发
功能分工不明确,代码冲突……这是很多项目在协同开发时可能需要的问题,如果使用主副架构模式的话,首先就必须要考虑将主程序、子模块独立出来。主架构师负责主程序,小组开发人员实现具体的业务逻辑,这样分工是不是就很清晰了呢?
二、减少可执行文件的大小
一个普通的EXE在不使用任何三方控件的情况下确实不大,但是我们如果将所有的业务逻辑都堆砌在主程序中的话,每增加一个功能项主程序中的体积和消耗的内存都会越来越大。一旦使用了包含皮肤控件的页面,那么这个体积将成成倍式增长(没错,我说的就是DEV控件)。以一个ERP系统为例,如果是单EXE程序的话,体积几百兆是肯定的了。而DLL资源则是在需要使用的时候才会加载到系统中,用完也可以做到实时释放,这样主程序占用的资源可以稳定在小范围内,意思就是将几百兆的单一文件切割为几十个几十兆的单一文件。
三、便于维护和升级
相信任何一款软件发布后都会有维护和升级,强如Windows操作系统也会时不时在后台发布更新补丁。使用主副窗体的架构可以只针对需要升级的业务模块进行升级,不会影响模块的功能和使用。这听起来很美好吧,总不至于一次手滑的更新导致程序崩溃,最多影响本次升级的模块而已。
四、安全
DLL本身是一种不可执行的二进制程序文件,看看我们的操作系统中拥有成百上千的DLL文件就可以知道,它确实是一种应用很广泛的技术。在这方面想要了解更多的同学,可以自行百度。
主副架构优点很多,但对架构师的要求也更高,因为Dll中的窗体是后来嵌入到主程序中的,嵌入方式和释放方法都影响程序的运行效果,比如界面闪烁、报错、泄露等问题都容易发生。
看看效果,还是很不错的