向高手请教三层软件开发问题:在李维的书中建议按照面向对象的方法设计应用服务器,并分别建立界面对象、协调对象、实体对象等,但是一个远程数据模块对应一个应用服务器,又不能把所有的程序都写在一个远程数据模块中(李维说最好不这样做,性能可维护性都不好),那么该怎样建立应用服务器呢?我看一些书中的例子只是建立一个简单的查询功能的应用服务器,如果开发一个进销存系统,按照每项功能都建立一个应用服务器运行的时候得有多少个应用服务器启动啊?很显然这样做不行,那么怎样只建立一个应用服务器包括所有的功能又不是只用一个数据模块呢?
    另外由于建立了一些中间对象,就需要在对象间传递数据,怎么把记录集出错的信息传递到客户端呢?

解决方案 »

  1.   

    你提出的问题有代表性.
    我现在是按照这样的想法做的,也许不太合理,但我也找不出更好的方法.
    趁这个机会让大家讨论讨论.
    1.  我是每个对象对应一个Com+组件.(导致有很多组件,十分庞大,也很冗余)
    2.  我是用错误代码返回到客户端. (错误信息放在数据表中,当然也可以做个类来管理它)
      

  2.   

    1、我做的进销存系统有90多个组件,多不多?
    2、系统错误(如字段不存在等)Raise;业务错误(如客户不存在等)用数组返回到客户端。
    3、你好像用Midas服务器,没有用COM+。
      

  3.   

    多谢两位,看两位的解答好像都是使用的MTS吧,如果不用MTS只用Midas能实现你们构件的系统吗?我没有三层软件的开发经验,不清楚真正的三层软件是怎样开发的,请高手不吝赐教!多谢
      

  4.   

    请问如何将多个Com+组件共用一个联结?
      

  5.   

    SharedConnectionDEMOS里有例子
    D:\Program Files\Borland\Delphi6\Demos\Midas\SharedConn