在之前版本的代码生成工具Database2Sharp中,由于代码生成都是考虑Winform和Web通用的目的,因此Winform界面或者Web界面都是单独生成的,在工具中生成相应的界面后,复制到项目里面去使用即可。由于我们Winform的界面是模块化的方式独立开发,因此对某些表来说,我们可以独立开发模块,那么它的Winform窗体界面也应该是在独立的项目上,开发完毕后,我们在主体框架里面通过菜单动态配置即可加入到系统中使用的。
1、框架插件化回顾
在Winform开发框架的程序中,实现基于插件化的应用,如下所示。
通过在权限系统中的预先的配置,独立模块的窗体可以进行动态加载解析,就能实现插件模块的热插拔功能了。实际插件化框架的菜单配置界面效果如下所示。
下图是菜单管理里面的 “Winform窗体类型” 信息的具体内容。
通过动态的配置,可以实现模块的独立开发,动态整合的插件化特性,非常适合我们企业的分工开发,从而提高开发效率。
2、快速生成Winform框架的界面项目
前面我们介绍了,通过模块化的独立来发,动态整合,可以提高开发效率。
其实就是我们对大型项目的横向切割,把大型项目分为各个独立的模块,给不同的开发人员或者团队进行开发,可以极大提高效率,也减少对某个人的过度依赖,也同时可以极大提高开发效率。
在实际使用中,一些客户就提出其实模块化的Winform界面项目可以使用代码生成工具一键生成,和其他模块一样,选定数据库后生成项目一并生成,这样可以更加人性化,减少创建空白界面项目,然后引入所需DLL和文件引用等操作0所花费的时间。
如一般我们创建一个基于DevExpress的空白项目过程是这样的。
先准备创建一个基于DevExpress的模板项目
接着就是选择一个空白的DevExpress项目,这样可以在创建项目的时候,包含一些基础的DevExpress应用,减少我们后续引用DLL的工作。
然后就可以看到生成空白的窗体项目如下所示。
这样离我们开发独立的模块界面项目,还是有很多工作要做,如还需要引入额外的DevExpress所需的DLL,引入框架支持的相关DLL,另外还有一些业务逻辑层和数据访问层等类文件需要包含进去(这么做是减少文件太多的依赖,一个UIDx程序集或者ClientDx程序集就可以了)。
如果我们能够在生成其他项目工程的时候,一并生成该模块的UI项目就可以减少这部分的时间花费,要知道我们开发人员的时间也是很宝贵的,只应该花在有意义,有深度的地方。
如对于普通的Winform界面项目,我们生成后的项目结构视图如下所示。
而对于混合框架方案的项目,我们生成的界面项目结构视图如下所示。
这样就是我们最终要做的视图,一键就可以快速生成了,包含了相关的DLL应用,也包含了一些所需的文件应用,省却了很多繁琐的处理过程。
下面我们可以回顾下两种不同框架的架构分层图示。
普通Winform框架的分层架构图。
我们在Winform开发框架、混合式开发框架、Web开发框架等各种开发框架,底层都是支持多种数据库的,如MS SQLServer、Oracle、mysql、SQLite、PostgreSQL等等,如下图所示。
混合框架的多种方式支持
混合框架的分层架构图