这个帖子我感觉很有讨论的价值

snake_eye 2003-04-22 11:37:23
下面是我在大富翁上看到的一遍帖子,感觉问题提的很好,所以转到这里来看看

问题:关于Delphi下如何设计三层应用的问题 ( 积分:10, 回复:9, 阅读:452 )
分类:MIDAS / DCOM ( 版主:Chenlili, 房客 )
来自:fangfei, 时间:2002-06-14T16:04:00, ID:1163451 [显示:小字体 | 大字体]-[返回]
偶近段时间来做个三层系统玩玩,用D6,可有个问题总觉得特别扭,所以和各路英雄交流一
下,看看大家是怎么做的。

我的结构是前端:用Delhi开发的Application和Browse,中间COM+,也用Delphi开发
COM+ component,后面SQL2000。用MIDAS在COM+ component之间及Client和中间件之间传递
数据。

基于中间件的三层结构设计思想上是要把业务逻辑包装在中间层,以服务的形式供Client调
用,可MIDAS的基本思想却是ClientDataSet通过各种连接(如DCOMConnection)向
DataSetProvider取数据。所以总觉得两都的设计思想不一样,用起来特别不爽。虽然也可
以自己从DataSetProvider取得MIDAS数据封包,再从COM+ component的接口传给Client,
但这样那些XXXConnection好像就没什么用了。

不知各位大侠是怎么做的,还请指点迷津,有真知灼见者本人再开一贴高分相送!

...全文
39 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
blucecat 2003-04-24
  • 打赏
  • 举报
回复
不会这样吧?
snake_eye 2003-04-23
  • 打赏
  • 举报
回复
没语言了,200分送最后一个来的好了!
blucecat 2003-04-23
  • 打赏
  • 举报
回复
设计思想怎么会不一样呢?DataSetProvider就是提供接口的呀,用了它会更简单的,如果不用它,tDCOMConnection不是非要吧
piero_csa 2003-04-23
  • 打赏
  • 举报
回复
up
还好我不是高手,要不压力好大哦!
citytramper 2003-04-23
  • 打赏
  • 举报
回复
gz
snake_eye 2003-04-23
  • 打赏
  • 举报
回复
高手在那里?
snake_eye 2003-04-22
  • 打赏
  • 举报
回复
三层结构就是实现了企业逻辑的集中化,象你这样由客户端来控制事务(即是企业逻辑的一部分了)
是根本违背了三层结构的原则的。
正确的做法是,在服务器接口上使用方法来满足你更新数据的需求,
并在这个方法实现中用显式的事务控制。
----现在有些提法"假三层",就是指应用服务器只作为数据传输的中间层来使用,
并不是一个逻辑的集中。

所以我想问问各位客户段取的数据你们是怎么开发的?
因为我脑子里有很多方法,但是有的感觉是不符合三层的原理。
希望大家多讨论
blueshu 2003-04-22
  • 打赏
  • 举报
回复
没搞过
看来要搞了,要不然就不能混了
hehe
xiaohuan 2003-04-22
  • 打赏
  • 举报
回复
up
zallen2002 2003-04-22
  • 打赏
  • 举报
回复
学习
careerist 2003-04-22
  • 打赏
  • 举报
回复
UP
yjygood 2003-04-22
  • 打赏
  • 举报
回复
up
blucecat 2003-04-22
  • 打赏
  • 举报
回复
我个人认为,在中间层有比较复杂的sql语句出现也是错误的做法,更不要说客户端有sql语句了,数据库设计应和中间件严格分开,这样分工会更明确,数据库设计和中间件设计以及客户端就可以有不同的人来做了,还有一个人员就可以专门来为这三者设计接口和全局的指挥这三者的工作了。
diabloqin 2003-04-22
  • 打赏
  • 举报
回复
attention
zleeway 2003-04-22
  • 打赏
  • 举报
回复
你到底是为了什么而写程序的?关键是把业务实现出来就可以了,
电脑只是工具,不是目标,不要本末倒置了。
snake_eye 2003-04-22
  • 打赏
  • 举报
回复
红心的人都到那里去了,难道只知道基础模块的问题吗?
snake_eye 2003-04-22
  • 打赏
  • 举报
回复
那我敢问楼上的一个很简单实际的问题:
客户段有个EDIt,dbgrid,用户在edit里输入查询条件比如ID>100;然后把结果显示在DBGrid里
就是这么简单,我脑子里至少有5-8中实现的办法(不关是假三层还是真三层)。
我想问楼上的用什么方法才能真正体现三层的原则呢?
请教!
Kain 2003-04-22
  • 打赏
  • 举报
回复
同意zleeway(leeway)
个人认为三层结构只是两层的一个子集。
业务逻辑放到一层,可以是程序逻辑结构更清晰,更合理化

同时对将来的软件更新和升级也有很大的帮助。
zleeway 2003-04-22
  • 打赏
  • 举报
回复
我认为不应强求概念上的三层结构。
把复杂的运算放在中间层,由性能相对强大的服务器去执行,
这样可以减少对客户端电脑的硬件要求。
gexiaohua0626 2003-04-22
  • 打赏
  • 举报
回复
学习.
接分!
加载更多回复(9)

5,402

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧