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开发多层结构应用不是很了解,以上只是我在学习过程中产成的一些想法和困惑,肯定有错误或者不足的地方,还请各位富翁不吝赐教!
在应用程序服务器上使用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开发多层结构应用不是很了解,以上只是我在学习过程中产成的一些想法和困惑,肯定有错误或者不足的地方,还请各位富翁不吝赐教!