C
chenglh
Unregistered / Unconfirmed
GUEST, unregistred user!
也觉得Midas很麻烦。
很多人没有把两层的程序写好,就开始追捧多层。
个人认为现在比较好的两层结构(对于Delph5+ +Sql Server2000):
1、多将业务操作写成存储过程。
2、客户端将业务代码与界面代码分离。写在不同的单元里或者不同的类里。
3、使用TClientDataset+DatasetProvider。利用其离线缓冲机制,嵌套表功能(其实觉得现在的ADO.NET很多都是抄袭TClientDataset)。
4、如果进行大多数Mis系统进行oop分析,在这个结构里可以简化地这么处理:
i)所有实体类都为TClientDataset,不继承,比如订单类type TOrder=TClientDataset。TClientDataset有足够的能力进行TOrder的属性读写,增删改功能,不用另定义新类(这后面有个TClientDataset+DatasetProvider+Ado一个体系支撑)。
ii)事务处理类需要自定义,比如仓库管理类,这个类处理实体之间的合作,实体的流程。绝大多数的存储过程都是被事务处理类所调用的。 比如审核入库单。
iii)字典类和辅助类。比如常用数据查找,还有常用的日志管理,用户管理等。
(纯属私人经验)
不过这些和即将到来的.net平台编程比起来可能落后了。
很多人没有把两层的程序写好,就开始追捧多层。
个人认为现在比较好的两层结构(对于Delph5+ +Sql Server2000):
1、多将业务操作写成存储过程。
2、客户端将业务代码与界面代码分离。写在不同的单元里或者不同的类里。
3、使用TClientDataset+DatasetProvider。利用其离线缓冲机制,嵌套表功能(其实觉得现在的ADO.NET很多都是抄袭TClientDataset)。
4、如果进行大多数Mis系统进行oop分析,在这个结构里可以简化地这么处理:
i)所有实体类都为TClientDataset,不继承,比如订单类type TOrder=TClientDataset。TClientDataset有足够的能力进行TOrder的属性读写,增删改功能,不用另定义新类(这后面有个TClientDataset+DatasetProvider+Ado一个体系支撑)。
ii)事务处理类需要自定义,比如仓库管理类,这个类处理实体之间的合作,实体的流程。绝大多数的存储过程都是被事务处理类所调用的。 比如审核入库单。
iii)字典类和辅助类。比如常用数据查找,还有常用的日志管理,用户管理等。
(纯属私人经验)
不过这些和即将到来的.net平台编程比起来可能落后了。