大千世界,合久必分,分久必合,分合之道,利之所趋。

开发过程,积少成多,聚沙成塔,模块之理,必经之路。

本文继续WInform界面开发系列的介绍,主要针对性介绍Winform开发过程中,经常用到的模块:数据字典模块、参数配置模块、权限管理模块的模块化应用,以及各模块的分合之道。

 

1、数据字典模块 

我们知道,一般程序基本上都涉及到了一个是数据参考用途的数据字典模块,不管是Web还是Winform的,这个模块基本上是必不可少的,Winform的界面效果大致如下所示:

WinForm界面开发之模块化分合 

本模块的数据字典支持无限级树形分层应用,可以添加大类,字典项目等数据, 系统集成只需要拷贝相关的字典表即可实现集成。

 

2、参数配置模块 

在程序中,一般应用就是通过代码把相关的内容进行转义保存或者解析,以便呈现给用户更好的数据展示效果,这个模块比较通用,可分可合。

另外一个也比较常用的就是参数的配置管理模块,一般如果参数比较少,直接使用.NET的配置保存功能即可,如下图所示。

WinForm界面开发之模块化分合 

 

但这种方式只能保存比较少的内容,对于比较复杂的配置,一般很少采用这种模式存放程序的参数信息,这种方式存储的参数,如果不是放到一个独立的文件中,还存在一个不同步的现象。

其实我们还是可以把参数的配置功能作为一个独立的模块进行处理,我的程序就是经常这么干的,而且由于是相对比较独立,并在设计时候就支持参数的编辑及展示功能,因此效率大大提高,对使用用户来说,由于修改界面比较统一,而且参数的说明等很丰富,因此用户修改系统的配置参数友好性大大增强,界面效果如下所示:

使用用户看到的参数配置界面效果: 

WinForm界面开发之模块化分合 

 

开发者在设计时刻的参数配置界面如下所示:

WinForm界面开发之模块化分合             WinForm界面开发之模块化分合

 

这些参数最终目的是为了程序的读取和调用,调用代码非常简单,而且由于是强类型的属性以及良好的提示功能,应该是比较方便的,示例代码如下所示:

                double hours = span.Hours;
                hours 
= (hours < SystemConfig.Default.KFPartAtLeaseHoure) ? 
                    SystemConfig.Default.KFPartAtLeaseHoure : hours;
//最小的钟点房计费
                if (span.Minutes < 60 && span.Minutes >= SystemConfig.Default.KFPartHourMinutes)
                {
                    hours 
+= 1;
                }
                
else if (span.Minutes > SystemConfig.Default.KFPartHalfHourMinte &&
                    span.Minutes 
< SystemConfig.Default.KFPartHourMinutes)
                {
                    hours 
+= 0.5;
                }

相关文章: