在Delphi中如何使用面向对象的方法设计多层系统 ( 积分: 50 )

  • 主题发起人 主题发起人 mhx
  • 开始时间 开始时间
M

mhx

Unregistered / Unconfirmed
GUEST, unregistred user!
我正在学习delphi开发多层结构应用。通过 《Delphi 5.X分布式应用系统篇》 这本书对delphi开发多层结构应用有了初步的了解。那么对使用MIDAS开发多层解构应用我有如下问题一直觉得很困惑:
在应用程序服务器上使用RemoteDataModule通过DataSetProvider提供一个IAppServer接口,在客户段使用TClientDataSet连接这个应用程序服务器。
给我的感觉是这样做用户界面还是直接取得数据,对数据操作。我见过一些网站上的教程是这样写得。(摘自: http://www.e-midas.cn/Article_Show.asp?ArticleID=158)
procedure TForm1.Button1click(sender:Tobject);
begin
with dm.ClientDataSet1do
begin
close;
commandtext:='select * from 书 ';
open;
end;
end;
这和2层结构的应用程序有什么区别呢?
SQL语句直接写到用户界面里面了,通过TClientDataSet取得远程数据,然后在用户界面层操作。那岂不是业务逻辑也在用户界面层?
我认为,中间层服务器应该处理业务逻辑。比如说对上面我提到的那个例子应该是在中间层服务器取得“书”的对象集合,然后返回给用户界面层显示结果。对于复杂的业务逻辑,应该也是有中间层服务器进行处理。用户界面层只是显示结果,接受用户输入等等。
在看《Delphi 5.X分布式应用系统篇》这本书的时候也看到作者说RemoteDataModule属于数据操作层(也就是作者所说的DO对象),中间层系统中应该存在根据具体业务所划分的对象(这一段的篇幅很小),在书上我没有看到实际的例子。反而在书上看到的例子全部都是使用TClientDataSet通过XXXConnection连接TDataSetProvider取得数据然后在数据感知控件中操作。那么实际开发系统的时候我认为这样是不行的,还请有实际开发经验的朋友给我介绍一下。
我对delphi开发多层结构应用不是很了解,以上只是我在学习过程中产成的一些想法和困惑,肯定有错误或者不足的地方,还请各位富翁不吝赐教!
 
我正在学习delphi开发多层结构应用。通过 《Delphi 5.X分布式应用系统篇》 这本书对delphi开发多层结构应用有了初步的了解。那么对使用MIDAS开发多层解构应用我有如下问题一直觉得很困惑:
在应用程序服务器上使用RemoteDataModule通过DataSetProvider提供一个IAppServer接口,在客户段使用TClientDataSet连接这个应用程序服务器。
给我的感觉是这样做用户界面还是直接取得数据,对数据操作。我见过一些网站上的教程是这样写得。(摘自: http://www.e-midas.cn/Article_Show.asp?ArticleID=158)
procedure TForm1.Button1click(sender:Tobject);
begin
with dm.ClientDataSet1do
begin
close;
commandtext:='select * from 书 ';
open;
end;
end;
这和2层结构的应用程序有什么区别呢?
SQL语句直接写到用户界面里面了,通过TClientDataSet取得远程数据,然后在用户界面层操作。那岂不是业务逻辑也在用户界面层?
我认为,中间层服务器应该处理业务逻辑。比如说对上面我提到的那个例子应该是在中间层服务器取得“书”的对象集合,然后返回给用户界面层显示结果。对于复杂的业务逻辑,应该也是有中间层服务器进行处理。用户界面层只是显示结果,接受用户输入等等。
在看《Delphi 5.X分布式应用系统篇》这本书的时候也看到作者说RemoteDataModule属于数据操作层(也就是作者所说的DO对象),中间层系统中应该存在根据具体业务所划分的对象(这一段的篇幅很小),在书上我没有看到实际的例子。反而在书上看到的例子全部都是使用TClientDataSet通过XXXConnection连接TDataSetProvider取得数据然后在数据感知控件中操作。那么实际开发系统的时候我认为这样是不行的,还请有实际开发经验的朋友给我介绍一下。
我对delphi开发多层结构应用不是很了解,以上只是我在学习过程中产成的一些想法和困惑,肯定有错误或者不足的地方,还请各位富翁不吝赐教!
 
书在那买的.作者是谁?
哪个出版社的.ME 想买
 
可以这样实现:
在服务端的RemoteDataModule类型库上定义一个接口函数
function GetBooks:Variant;
begin
try
with dm.ClientDataSet1do
begin
close;
commandtext:='select * from 书 ';
open;
Result := Data;
end;
SetComplete;
except on e:Exception
begin
SetAbort;
result := ......;//
end;
end;
end;

客户端:
procedure TForm1.Button1click(sender:Tobject);
var
fIntf:IBookSrv;
begin
fIntf:=CoBookSrv.CreateRemoot(SrvHost);
with dm.ClientDataSet1do
begin
Data := fIntf.GetBooks;
end;
end;
 
我这里有电子版的,楼上的兄弟要的话我可以给你。留下你的email最好是能收比较大的附件的那种
 
给我一份吧,先谢谢了!
tj_nfb@tom.com
 
我也想要,给我一份吧(jaxd2002@163.com)。我在客户端调用服务器中自定义方法时提示错误:'method '方法名' not supported by automation object',不知是什么原因?
 
老大,给我一份吧,我想要啊,谢谢!!(zongzyongt@sina.com),我写的DCOM应用,在XP上怎么来能访问啊???哪位老大给我说说啊!!!!
 
我也需要啊,请不吝赐教
libaoxing@bjtelecom.com.cn
 
我们的做法是用一个文件封装数据表的字段,以及对该表数据的操作的Sql语句。感觉只是把语句从界面上分开了,不过已方便了不少。
 
<delphi 5 开发人员指南>很好的一本书,第三十二章。有一个很好的例子。2000所就出了。到了现在还很实用
 
各位实在抱歉,最近一直不在家没时间上网。
这个文件实在太大(43.5M)我试过多次都发不出去。
请问那位有空间可以给我上传
 

我看你是要这个吧,有全部源码.
http://m150.mail.126.com/coremail/fcg/ldmsapp/windows.rar?lettsid=VATZcpFGftSAyzQJ&mid=1tbiGQhJoEH3UvE7swAAsl%250A25%250A8388762%250A1&funcid=readpart&part=3&filename=windows.rar&download=1

如果下载了打不开就加 .rar 里面应该有你要的,花了我不少的TIME

 
to:李连杰
上面的地址打不开,能email给我吗?谢谢!
email:stzzh@gd165.com
 
去网上找啊,
大把的,
在摆渡里输入书名就可以了,
 
建议你出去学习学习java.
至于怎么设计,如果是我回头再做delphi的话.
1.现写个数据连接池程序
2.o/r映射程序. 关系型数据库转换成面向对象数据处理
3 看玩com原理...
李维那本书还好,但到后来你在做项目时.就不能按照书上的例子..
 
email 给我吧cqq6537@jmgdgs.com
 
能不能给我一份
Email:wangbin9500@avl.com.cn
 
李维的书还不错啊,就是理论太强,没有实例
 
给我一份把
谢谢
xh5460@sohu.com
 
后退
顶部