http://www.cnblogs.com/zhqian/archive/2010/07/06/1771798.html

没有一行代码的三层,功能肯定非常的简单,但是,再简单,我们也三层了,学习一个东西,需要从入门开始就有兴趣,如果入门就给吓怕了,哪么后来何来信心学习呢?现在就让我们开始吧,不只是没有华丽的词语,而是连用词都不专业,因为,我也只是一个入门者。

  我所用的版本为:Embarcadero® Delphi® 2010 Version 14.0.3593.25826

  一、让我们 file->new->other ,再选 datasnap server ,或者F6,输入 datasnap不写一行代码,绿色三层我也行不写一行代码,绿色三层我也行

如图,我们有两个可选项

   datasnap server :选择这一项,我们得到的将是一个独立EXE的三层服务器应用程序(TCP及HTTP两种模式)

   datasnap WebBroker application :选择这一项我们得到的是一个基于ISAPI的程序,需要把程序发布到IIS 等上面才可以运行

 选择第一基的配置方便,但是如果并发访问量大的话,需要编程者的水平高才可以,选择第二项则配置麻烦,但是由于HTTP 是无连接模式,理论上对并发量的控制都交给了IIS了,而不是我们的应用程序了(本处如果说得不对的请指点,谢谢!)

现在我们选择第一项

出现如下图所示的界面:

不写一行代码,绿色三层我也行

 

应用程序类别(you may select from one of the following applition types):

分别为

 VCL应用程序

控制台应用程序

服务应用程序

需要选择哪一项,就看你自己的需求了

服务类别(you may select from one or more communication protocols):

可选TCP,HTTP,或者TCP+ HTTP ,也就是同时支持TCP及HTTP

http下面有一个 authentication,按字面意思是需要认证吧,具体细节,还来不及去研究

 

是否包含简单类:add server methods class

当然要包含拉,不然我们自己去写,很麻烦的

 ancestor(先辈),是指从什么模块继承下来,我们分别把各个的上层列出来,你就知道该选什么了吧

 TPersistent:TServerMethods1 = class(TPersistent)--> TPersistent = class(TObject)

TDataModule:  TServerMethods1 = class(TDataModule)-->TDataModule = class(TComponent)--> TComponent = class(TPersistent, IInterface, IInterfaceComponentReference)--> TPersistent = class(TObject)

 TDSServerModule:TServerMethods1 = class(TDSServerModule)--> TDSServerModuleBase = class(TProviderDataModule)--> TProviderDataModule = class(TDataModule)-->TDataModule = class(TComponent)--> TComponent = class(TPersistent, IInterface, IInterfaceComponentReference)--> TPersistent = class(TObject)

 

 

包含简单示例:include sample methods

可选可不选,如果你已经熟悉了的,哪就没有必要选拉

 

该选什么,自己跟据能力及需求定吧,现在我们就都选默认项,点ok下一步吧!

 

 自动生成了三个模块,第一二个上面空白的,第三个则如图

 

不写一行代码,绿色三层我也行不写一行代码,绿色三层我也行

 

我们再看看生成的单元内容是什么

 

 

unit ServerMethodsUnit1; 
不写一行代码,绿色三层我也行
1 unit ServerMethodsUnit1;
2
3  interface
4
5  uses
6 SysUtils, Classes, DSServer;
7
8  type
9 TServerMethods1 = class(TDSServerModule)
10 private
11 { Private declarations }
12 public
13 { Public declarations }
14 function EchoString(Value: string): string;
15 end;
16
17  implementation
18
19  {$R *.dfm}
20
21  function TServerMethods1.EchoString(Value: string): string;
22  begin
23 Result := Value;
24  end;
25
26  end.
不写一行代码,绿色三层我也行

 

 

 

 

不写一行代码,绿色三层我也行
1 unit ServerContainerUnit1;
2
3  interface
4
5  uses
6 SysUtils, Classes,
7 DSTCPServerTransport,
8 DSServer, DSCommonServer;
9
10  type
11 TServerContainer1 = class(TDataModule)
12 DSServer1: TDSServer;
13 DSTCPServerTransport1: TDSTCPServerTransport;
14 DSServerClass1: TDSServerClass;
15 procedure DSServerClass1GetClass(DSServerClass: TDSServerClass;
16 var PersistentClass: TPersistentClass);
17 private
18 { Private declarations }
19 public
20 end;
21
22  var
23 ServerContainer1: TServerContainer1;
24
25  implementation
26
27 uses Windows, ServerMethodsUnit1;
28
29 {$R *.dfm}
30
31 procedure TServerContainer1.DSServerClass1GetClass(
32 DSServerClass: TDSServerClass; var PersistentClass: TPersistentClass);
33 begin
34 PersistentClass := ServerMethodsUnit1.TServerMethods1;
35 end;
36
37 end.
不写一行代码,绿色三层我也行

相关文章:

  • 2021-07-26
  • 2021-12-24
  • 2022-12-23
  • 2021-12-15
  • 2022-12-23
  • 2021-12-31
  • 2022-01-01
猜你喜欢
  • 2022-12-23
  • 2022-01-14
  • 2021-09-12
  • 2021-08-23
  • 2021-09-19
  • 2022-12-23
相关资源
相似解决方案