前言
本文介绍作者利用.NET开发windows应用的一套方法,请阅读者提宝贵意见。
大家知道高效开发软件的诀窍是建立一个好的框架,然而开发框架并不是一件容易的事,以至有人说,框架的历史就是一个失败的历史。常见的情况是,框架的开发花去过多的时间,影响实载部分开发进度;框架过多考虑系统的特殊性,使其难以用于下一个系统;试图在一个结构中处理多种类型画面,造成结构过于复杂,难以修改,维护。针对这些问题,我们在开发框架时,需要注意把那些可重复利用性高的部分分离出来,而把特殊性的部分留给系统。那么哪些部分易于再利用呢?打个比方,好比造一栋房子,房子的构造因用途而异,但越是小的东西,比如门窗,把手之类,其重复利用性越高。另一方面,即使是涉及整体的东西,也可以拆分出可再利用的成分,加以封装后就可放到自己的共享库里。
我们在开发C/S程序时候,重点放在以下方面,第一,通过工具将表定义书内容,比如表信息,字段定义,数据关联,输入限制等,转成与数据库种类无关的抽象程序类,用于画面的控件和数据库处理。第二,对控件进行改造,滤掉不常用的属性,把物理属性改造为业务逻辑意义上的属性;加上统一的业务处理和数据处理接口。第三,建立一个能够适用多种数据库的处理类库,负责数据库的连接,动态SQL生成,和基本数据操作。第四,把系统中必备的例外处理,信息框,提示框,LOG输出,出错检查,等常用处理标准化,封装到共享类库里。
Windows的C/S应用程序不像B/S结构那样关注SESSION,每个画面的安全性和复杂的画面转移,所以在结构考量时,不必教条地采用MVC结构,而要根据项目的规模和特点,设计出切合实际的模板。
做程序时,需要考虑逻辑和组件的共享度,建议分两个层次进行共享,一个是具有100%共享性的模块,它独立于系统;另一个是各系统间有80%左右通用性的部分,应该放到工程里面,稍事修改可以用于下个系统,我们把这部分共享叫做服务程序,它是调用第一类共享模块实现的。
接下来打算就以下几个方面谈谈自己的做法和体会。
第一章 系统的结构
第二章数据库处理-自动生成数据库类
第三章建立自己的控件
第四章画面的模板