在三层中,到底有多少人能实现这样的效果?(0分)

  • 主题发起人 主题发起人 qiuyan81
  • 开始时间 开始时间
Q

qiuyan81

Unregistered / Unconfirmed
GUEST, unregistred user!
看了很多关于三层的文章 都是提倡什么业务封装之类的 也就是在显示层上实现无SQL
语句 我研究了段时间 发现这样根本很难实现 而且很大程度的增加了开发成本
各位的三层到底是怎么做的???????????????
 
我也想知道。欢迎大家一起来谈谈。
 
的确是,如果用户端完全做到无SQL不太可能。
现在我能做到的也就是把一些复杂的报表和一些字段语义转换放到中间层,其它的输入,查询之类的,还是要在用户端写SQL。一些简单的查询,还不如在中间层做一个接收SQL,返回数据集的接口,如果每次都要把参数、表名之类的东西转给中间层再转换,反倒有点本末倒置。
 
目前我研究的只有MIDAS这个组件,其他如(SATA)等组件是否已经把参数转换这些东西已经封装好了呢?
 
采用dbanywhere4-p2p吧
 
差不多算了 dbanywhere4-p2p要钱买的 打死我也不用
 
哪里有asta下载for d7的
 
如果有用过MIDAS就应该知道在客户端不用SQL是完全可以的,客户端通过DCOM或SOCK调用中间层方法,传入参数和返回数据集都可以通过该方法传递,更新则通过DELTA数据包在中间层自动更新到数据库,这些都是MIDAS所具有的功能啊
 
三层是好,但还是要看项目,个人认为,项目较小的,不划算.只会增加开发成本!
 
只要定义好了客户端和中间层框架,以后的开发维护量其实也同样很少,我现在公司里全部是用MIDAS来开发的,中间层做成动态加载的,可以不用停组件服务即可动态更新中间层,甚至在中间层来改变客户端的显示方式(如DBGRID的列CAPTION、宽度、格式、VISIBLE等)
 
要想客户端无sql,得在appserver定义N个业务对象,这个业务对象提供删除,修改,新增的方法等等,客户端只要把此业务对象的的成员以olevariant提交并通知此对象该进行什么操作就行了,业务逻辑都由appserver来完成了,客户端只得到一个执行的结果,至于如何定义业务对象,简单点就是type library里加个interface就行了,这样有好处也有坏处,如果加业务对象加个字段,客户端和服务端都得改,如果业务逻辑规则发生变化只改服务端就行了,这仅是个人的简单理解
 
如果是团队,并且是商品化的软件,三层是个不错的主意,将各个业务模型抽象成一个个对象,其它人只需要调用对象的接口,不用知道对象的内部运作,这样维护成本低。如果有什么变动,修改对象就可以了。这里面其实就是面向对象应用到哪一步的问题。ClientDataSet本身就是对象,也可以将它再封装,封装成一个更专用的对象
 
差不多算了 做广告都应有个度,再说这里也不是广告专区,看见就让人恶心了!
 
三层做法:数据库+中间层+客户端, 中间层声明一个公用接口, 每个一个业务模块继承这个接口,并实现之,“显示层上实现无SQL语句”基本上是不可能的,但是通过业务模块封装,可以减少sql语句。
 
我也有这个想法,想在展示层上实现无SQL,甚至更简单;
曾经有想过自已开发个中间件,但一没时间,二是缺少三层的的知识.
现在做的三层软件,我大部分都是用中间存调用存储过程来减少展示层的SQL语句
 
客户端不需要SQL语句。

将你要执行的一切操作,封装成XML提交到服务器端去,服务器端的一切结果,封装成XML返回到客户端来。
即不在客户端执行SQL,也可以将服务器端分离开来,也可以今后向其它方向演变。
 
封装成XML,文本交换?那你的系统还不慢的要死啊.个人意见.
 
TO:7030
我有个例子就是照你说的这么做的.
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3508665
 
dbanywhere4-p2p 是个什么东东
 
后退
顶部