我作过几个成熟的,三层结构的商业软件。 现在在作三层 b/s 应用。
我的心得是:
     .中间与数据库的交互尽量用 存储过程(对应TStoredproc控件);定义接口(尽量避免修改)。
     三层结构的又一个特点是。组件(功能)模型,即组件为系统的功能模块,组件的接口应该是相对稳定的,组件的内部功能修改、版本升级基本上 不影响前端应用程序,这也是三层设计的初衷之一。我看你的,数据库访问形式比较混乱,最好重新设计一下。
     三层是一个,程序设计思想方法。不能只学其形,弃其意义。那只能是一个假的三层。
先写怎么多,想探讨 探讨欢迎。[email protected]

解决方案 »

  1.   

    小弟未做过三层结构,delphi也是刚入门,这次接手一个2—〉3的,真是令人头痛!
    还望多指教!想从csdn的兄弟们中学点东西,也好完成老板的任务!谢谢!
      

  2.   

    我也做三层的。
    mail: [email protected]
      

  3.   

    要做三层的,推荐几本好书,
    李维的《Delphi4.X实战篇》1,2
    或者Delphi5系列,
    呵呵,其实内容都差不多
      

  4.   

    一个小小的建议!
    1。首先请你参照李维的书《DELPHI多层应用》!非常棒,很简单!有例子!
    2。当你实现了1之后,在你的三层程序应用程序的服务器端,添加有限数目的QUERY(注意十几个应该差不多了)。客户端对应的CDS(CLIENTDATASET),在需要的时候,动态的连接应用服务器上的对应QUERY的DATASETPROVIDE~!在用完之后记得关闭!这样你的应用程序服务器就不会太大!如果你不这样做,可能由于数据控件太多而无法实现
      

  5.   

    李维的《Delphi4.X实战篇》1,2      好像大陆没卖的?!!!
      

  6.   

    我的主题是:二层(已经设计出来的,即存在的系统)“变”三层的关键问题!
    楼上的只有sqsdl(感叹)说到了主题上!希望大家能谈谈这个“变”上面的经验!谢谢!
      

  7.   

    其实Delphi 4.0 和 Delphi 5.0 在实现MIDAS上的差别非常的大,但是在李维的书里,也只是
    简单的提到而已,对于只要用它来做应用来说,这个并不是个大问题,因为从RemoteDataModule
    这里来看,4和5都是一样的,李维的这两套书,内容都差不多,只不过在5里面,针对5的特性又多做了一些描述而已,对于
    做多层的数据库程序,从Delphi 3开始,原理上都是一样的,(如果大家有机会,可以找找李维
    的《深入Delphi 3.0》,看看里面的多层那一部分和5里面有多少不同)我自己的一点体会:
      多层数据库,其实关键还是在规划阶段,要考虑数据存储的合理性,网络流量的大小,
    其实效率和速度才是真正要好好考虑的一环,诸位看李维的书,不也是到处都在讲要如果
    才能提高效率,加快速度嘛
      

  8.   

    我没有做过有数百个数据控件的系统,因为这样的系统运行速度一般比较慢,因此在这里我只能给你一些建议,具体的实现,包括一些效率、速度、资源占用上的问题恐怕需要你自己解决。
    1、将原来系统中的数据控件放到中间层,在客户端用相应的ClientDataSEt代替原来的数据控件,然后想办法让服务端一直运行(例如在服务器端放一个程序,让它一直和应用服务器连接。否则每次启动客户端都要启动服务端,肯定慢得一榻糊涂)。建议你根据原来系统的模块划分来决定数据模块的划分,但最好不要弄很大的数据模块,一些能合并的东西就合并吧。这个办法有很多弊端,但也应该是改动工作量比较小的。
    2、只设置几个通用的数据模块,然后在中间层中定义一些方法来获取数据封包,然后传送到客户端,由客户端的ClientDataSet进行解析,就象李维书上写的那样(ADO/MTS/COM+高级程序设计篇p445 9-4节的例子,那个例子用的是ADO,但实际上和用BDE是差不多的)。这种方法的效率比较高,不过改动的工作量会比较大。我觉得你可以同时使用1、2种办法。关于那个单元文件,你不是已经知道了怎么在中间层定义方法或过程让客户端调用了吗?那样做就是了。注意把一些不会改动的函数放在客户端,一些可能会改动的,或者需要和数据库打交道的函数放到服务端就是了。说的比较笼统,看来大部分工作还是要靠你。其实很多问题依靠别人是不行的,主要还是要靠自己,一个问题由自己亲自解决以后,会有很强的成就感的。相信你解决了这个问题以后,会有很大提高的。
      

  9.   

    hzb(Explorer) 真的很像一个教授----伟大的教授!
    csdn有你这样的高手,要学好Delphi就指日可待了!
    谢谢谢谢谢谢 
      

  10.   

    是的,hzb(explorer)确实是一个专家,荣幸!!!!!!