我的系统框架,如下,由两部分组成,1 、UI Mapper 2、业务模版。

一 、UIMapper
所谓的UIMapper就是用xml定义界面信息,动态生成界面,如WilsonUIMapper,AAL,国内的商业http://222.66.27.203:8080/extrasample 。
我做的UIMapper包括以下功能:
1、ListView 其实就是datagrid,如果采购单列表;
2、EditView div+css+DataGrid(如果有从表),如金蝶的输入采购单界面,采购单的基本信息+采购单明细列表(批量操作)。
3、检索查询,由上面的xml信息,提取部分信息,并构造查询界面(在ListView 使用),用户设置查询方案,如 五金件、原材料。
4、快速查询。根据1、2信息,有管理员定制查询界面,供用户查询使用,如用户查找
编号从100到200零件。3跟4的查询不一样,3是用户定制好的,常用的查询,以下拉框的形式出现。4是管理员定制好了查询界面,以弹出窗口的形式。
5、关联窗口,如用户输入采购单明细时,要从零件的窗口选择零件,弹出的窗口,有点像金蝶的,左边是分类树,右边是数据,可crud和打印等.可批量选择;
6、批量操作,键盘移动表格光标等。
7、导出word,excell等。
8、数据验证。
9、排序、统计、分页,数据提示(如库存量少于安全库存时,颜色改变,可字体、单元歌,行 的颜色改变)等。
10、其他,如新增默认值等。如A新增入库单时,默认库房是材料库,而B则是成品库,做要是减少客户的操作。
二 业务模版。
1、 Common DAL ,封装了ado.net,上层调用 db.Save(ds,tableName,alias)即可,不用写连接、参数等,由于使用Cache,性能还不错。还有通用分页等。
2、业务DAL,只是Common DAL 封装一下,有2个用途 可能数据来自别的数据库或者需要性能整,这两点就使得可能用不了Common DAL。
3、业务规则,使用模版模式,封装了log,权限等等。若有业务运算,override一些方法即可。
4、业务外观,其实这里已经不是业务外观,但不知道叫什么好,它是做业务运算之前,处理一下dataset,如编号生成等。
5 、业务代理和服务定位,业务代理对业务做了Cache功能。服务定位则是查找业务,之所以加入业务代理是因为 日后要做smartclient,需要webservice或者.net remote。
基本上,80%的业务可以用这套模版来做了,而且我做了个生成工具和维护工具,做个表单的 crud几分钟而已,而且功能也不烂。对于有些界面和功能,就得老老实实写代码了。对于EidtView界面,我很快就会加入表格设定功能,而smartclient,则需要等几个月了。日志,使用了log4net,单元测试则用nunit。下个月会加入工作流,至于ORM,还没有找到合适的。
这套模版是去年11月刚转向.net设计了,有较多地方不合理,我也重构了N次,但是一直要做业务方面的开发,没有太多时间。或许很多人反对我这样的做法,但是我们的团队
只有几个人,熟悉.net的只有2-3个,而要做的模块有18个,表单超过400张,不得不出此此下策。如后升级到.net 2.0也较容易。
欢迎批评。