Delphi多层开发方案比较【转载】

使用Socket方式的三层结构源码(客户端) for delphi7 使用Socket方式的3层结构源码,只有新增,修改,删除等功能。远程服务器duancy.gnway.net是一个登录在我公司电脑上的动态域名,所以,要测试连接的话,最好在上午9:30到下午18:30。我不是高手,只希望一起学习! 立即下载

 

方案->
Midas
DCOM
COM+
ASTA
RemoteObject
.NET
提供者
Borland
微软
微软
微软
核心技术
COM
COM
COM
ASTA自己的,类同Midas,
但不依赖于COM
RemObjects自己的WebService技术,
不依赖于COM
WebService
开发工具
Delphi7
Delphi7
Delphi7
Delphi7
Delphi7
Visual Studio/Delphi8,9
与现有开发模式兼容程度
★★★★★
★★★★
★★★★
★★
(很不同的开发模式)
★★★★
(支持Delphi的Prvider/ClientDataSet)
★
部署容易程度
★★★
★★
★
★★★★
(集成server、不需要类似socket server、midas.dll的东西)
★★★★★
(集成server、不需要类似socket server、midas.dll的东西)
★
可伸缩性
★★★★
★★★★
★★★★★★
★★★★
★★★★★
(支持自带服务器,或者使用Apache/IIS等容器)
★★★★
性能(效率)
★★★
★★★★
★★★★
★★★★★
(二进制传输,支持压缩)
★★★★
(二进制传输,支持压缩)
★★
(文本的XML消息传输)
消息传输格式
二进制COM消息
二进制COM消息
二进制COM消息
二进制流
二进制流或文本的XML SOAP消息
XML SOAP消息
源程序
不全
无
无
有
有
无
购买价格
$0
$0
$0
$299 - $7,500
EUR 299
$0
与.NET集成
不可以
可以
可以
不可以
可以
(直接基于webservice并提供.NET客户端开发包,并可以使用二进制消息格式)
可以
中间件跨平台
有可能
不可能
不可能
有可能
可以
(支持Kylix开发,支持Apache做容器)
可能吧
总体评价
★★★
★★
★
★★★★
★★★★★
★★

 

 

速度与效率测试:

 

测试项目 *
计算1000次1+1=2 *
传输10000条100字节记录 *
所花时间(ms) *
传输字节数 *
所花时间
传输字节数
Midas (Socket Connection)
26,047
366,000
2,359
1047,000
Midas (DCOM Connection)
812
933
2,047
1047,000
ADO直连数据库 (两层)  
297
1046,000
    
Asta 3 压缩  
1,578
1100,000
     
RemoteObject2 HTTP 二进制 压缩
8,641
791,000
2,515
1048,000
RemoteObject2 HTTP 二进制 不压缩
7,765
783,000
2,391
1049,000
RemoteObject2 HTTP SOAP
11,687
1935,000
3,110
1052,000
RemoteObject2 TCP 二进制 压缩
8,406
512,000
2,422
1049,000
RemoteObject2 TCP 二进制 不压缩
6,547
504,000
2,484
1563,000
RemoteObject2 TCP SOAP
11,281
1673,000
 
RemoteObject3 HTTP 二进制 压缩
11,625
504,000
RemoteObject3 HTTP 二进制 不压缩
10,593
501,000
RemoteObject3 HTTP SOAP
15,640
1108,000
RemoteObject3 TCP 二进制 压缩
11,172
512,000
RemoteObject3 TCP 二进制 不压缩
10,203
504,000
RemoteObject3 TCP SOAP
15,547
1712,000

 

 

结果分析:

  • 两层的效率当然是最高的;这样选择三层方案时就可以在伸缩性和性能之间做权衡,选择最优方案
  • DCOM针对本机运算可能做过优化,太快了,传输的字节数也太少了
  • Socket Connection的效率实在不敢恭维,比RemoteObject使用SOAP传输还低
  • RemoteObject使用二进制传输的效率大概是使用SOAP的2-3倍
  • RemoteObject使用二进制传输基本能达到甚至超过Socket Server的性能
  • RemoteObject的压缩好像没什么用
  • Asta性能比RemoteObject和Midas都高,但这个结果是设置了ADOQuery的CacheSize=1000时取得的,其它的测试都没有专门设置该属性


* 以上测试涉及文件都在附件中的测试包中;都是连接的本机(localhost);空白的是没有做测试的

* 传输字节数测量都是用的CommView 4.1 IP包检测捕获软件,监测“Loopback”(127.0.0.1)设备;CommView软件安装见测试包的tools目录;字节数包括实际传输的数据和IP握手信息等,如果大于10K,则只保留到千位,可能每次测量会有一点点区别。

* 测试所花时间时CommView停止捕获IP包,测试3次左右,取中间值

* 测试计算1000次1+1=2:
中间都是实现类似以下方法:
function Sum(a, b: Integer): Integer;
begin
Result := a + b;
end;

其中RemoteObject 2、3的测试程序直接用的它自带的MegaDemo例子,执行文件分别见测试包中的“1+1=2/RemObjects SDK 2”和“1+1=2/RemObjects SDK 3”目录,后者是试用版,运行前需要先允许Delphi(不知道还有没有其它限制),测试时都是设置的使用Indy;Midas和DCOM的测试是自己写的程序,源程序和执行文件测试包中的“midas”目录。

 

delphi7编写的一个三层架构程序 用delphi7编写一个三层架构的服务端程序.主要功能是响应客户端的数据请求. JlzfServer为服务器端,PrjJlzf为客户端. 立即下载

相关推荐

Delphi 企业管理系统(ERP)+Sql数据库

Delphi 企业管理系统(ERP)+Sql数据库,比较大型、综合的Delphi数据库系统,用到了几个三方控件,已经打包。这套ERP系统主要模块有资料管理 、采购管理、库存、财务及工资管理、生产、资产及项目管理 、维护、办公及通信管理等,含部分设计文档资料,是学习Delphi数据库编程的好范例。

Delphi多层开发方案比较(转载)

  方案-> Midas DCOM COM+

ingener的专栏 943

Delphi + RemObjects 实现软件智能更新

智能更新完整源码,包含: 1 更新包制作 2 更新服务器 3 更新客户端 可单独使用,也可以嵌入到其他代码中。

Delphi的三层开发初学经验

在数据库开发方面Delphi相对于其他众多开发工具其优势在于灵活快速,且十分稳定。本实例使用Remote DataModule(远程数据模块)创建。 服务端:   首先让我们来编译服务器端,打开Delphi7,     选择File菜单,New-> application,创建一个新窗体form1。   选择File菜单 -> New -> Other-> Multitier -> 选择R

七级风科技 2490

delphi7+socket+mssql三层实例

在博客园上看到咏南的博客上写代码很完整,因此,整理了他的程式.并成功运行. 不敢独享.分享给大家. 环境: XP(繁体) + DELPHI7 + SOCKET + MSSQL2008 ; 附件:DEMO.ZIP ; 第三方工具: DelphiZLib.123.zip

delphi7三层demo

delphi7三层demo

delphi三层架构

三层架构指的是界面,业务逻辑和数据存储分离,不是指物理上是否分离。这样做的好处是层次分明,维护好做,系统资源也好分布式处理。数据库层哪就不说了,用MSSQL、Orcale随你了,就是数据服务层业务逻辑的话要分析清楚,就是中间层界面,也叫客户端。这里就是得到数据和显示数据的部分了,不做其它处理。但是数据有效性分析最好放在界面层,以充分利用客户端的性能。不然的话业务逻辑层的负担太大也会

qiankun19851231的专栏 2961

delphi的asta帮助手册

asta帮助手册.能够更好的帮助你开发。

Delphi多层开发方案比较

 标题  Delphi多层开发方案比较    (转载)关键字  Delphi多层开发方案比较出处  方案->MidasDCOMCOM+ASTARemoteObject.NET提供者Borland

pmj888666的专栏 262

LLVM实战:如何用Clang+LLVM打造你的第一个C++编译器(附完整配置步骤)

本文详细介绍了如何使用Clang+LLVM构建C++编译器的完整配置步骤,从环境准备到编译流程剖析,再到调试与优化技巧。通过实战指南,帮助开发者深入理解LLVM编译器框架的工作原理,并掌握交叉编译与性能分析等高级功能。

sprite的博客 746

HHD Device Monitoring Studio:破解版在串口调试中的实战应用

本文详细介绍了HHD Device Monitoring Studio破解版在串口调试中的实战应用,包括安装指南、串口监控功能解析、Modbus RTU协议分析案例以及自定义协议解析技巧。通过具体操作步骤和性能优化建议,帮助开发者高效完成端口监控和调试任务,提升工作效率。

weixin_29268331的博客 939

使用delphi 开发多层应用(三)Delphi常用多层框架介绍

注:本文转载http://www.cnblogs.com/xalion/archive/2012/01/18/2325418.html   使用delphi 开发多层应用(三)Delphi常用多层框架介绍     目前在delphi 开发多层应用的框架基本上集中在以下几种,每种开发框架都有自己的优缺点,没有最好的,大家可以根据 自己的实际需求选择相应框架,我把我本人在使用几种框架的体会

chinmusam的专栏 8227

stm32H743基于CubeMX配置为双ADC多通道DMA规则采样

stm32H743的ADC支持的最大频率为36MHz,有相关资料上说是可以超频,具体技术细节不多讨论。 需求: 使用stm32H743的ADC采集5路ovrc

xtqbp的博客 4362

DELPHI美化界面[转载]

手头的项目做的差不多了,交给客户,结果给出的结论是界面太难看了,至少要做成像QQ类似的界面。(目前是QQ2009界面确实还是不错的,本人也非常喜欢)。 1.透明问题。 要重新调整界面确实很麻烦,以前用DELPHI开发的界面都很土,和WEB真是没办法比。(我以前用的是DELPHI7),现在回想起来,DELPHI难做的原因是:没有透明控件。所有控件都是不透明的,并且大部分控件就是...

weixin_30530939的博客 3729

VS Code + EIDE + Clangd 构建 Keil/MDK 嵌入式开发新范式

嵌入式C/C++开发长期受限于传统IDE的语法理解弱、导航卡顿、跨工程复用难等问题。Clangd作为基于AST的现代语言服务器,结合EIDE对Keil uVision和ARM MDK工程文件(.uvprojx)的深度解析能力,可将编译配置、芯片型号、内存模型、扩展关键字等语义精准翻译为标准compile_commands.json,从而实现智能跳转、宏展开识别、结构体实时展开等高阶编辑体验。该方案不替换Keil/MDK编译与烧录流程,仅升级代码理解层,天然兼容STC8051、STM32 Cortex-M、G

weixin_34321753的博客 352

基于 STM32 的校园电动车充电桩智能计费与过载保护系统设计与实现

本系统基于 STM32F103 主控,通过 HLW8032 电能计量芯片实现精准计费,配合继电器实现过载保护,RC522 模块完成刷卡身份识别,整体方案成本低、可靠性高,适合校园电动车集中充电场景的批量部署。软件采用状态机设计,逻辑清晰,可扩展多路充电口、远程监控等功能。

weixin_42300449的博客 58

使用delphi 开发多层应用(二)为什么要使用多层开发?

使用delphi 开发多层应用(二)为什么要使用多层开发? 随着各种应用系统越来复杂,用户终端类型越来越多,传统的C/S 系统面临着越来越多的问题和挑战,我们先看一下C/S 结构的 架构图: 客户端系统一般通过数据库的客户端与数据库连接,然后通过SQL 语句访问数据库服务器,数据库根据客户端的请求返回数据,在简单的系统里面 这种方式基...

129

华为od 面试八股文_前端_01_含答案

华为od 面试八股文_前端_01_含答案

MISAYAONE的博客 2748

(转载)Delphi开发经验谈

Delphi开发经验谈 开发环境-------- Delphi 7是一个很经典的版本,在Win2000/XP下推荐安装Delphi 7来开发软件,在Vista下推荐使用Delphi 2007开发软件。安装好Delphi 7后,应立即安装Delphi 7 Update Pack 1,Delphi 2007则建议尽量安装最新的版本。工欲善其事,必先利其...

diaoshancang1942的博客 349

uniapp:解决微信小程序包体积超过2M的优化方案+详解分包问题,编译小程序体积大于2M不能上传和预览提示体积太大的处理教程,uniApp微信小程序主包过大问题如何解决(排查可疑点+分包+最小改动)

uniapp微信小程序开发,如何解决打包太大无法预览发布的问题,uniApp微信小程序包体积超过2M的优化方法,uni-app打包微信小程序主包超2M终极解决方案,使用uniapp开发微信小程序使用uni_modules导致主包文件过大,无法发布的解决方法,UniApp开发的微信小程序主包过大问题及解决方案 编译小程序时Node-modules被打入主包,小程序体积大于2M不能上传和预览,怎么处理,解决微信小程序主包太大问题,微信小程序中主包和分包过大,详解分包问题,uni-app 微信小程序发布时,主包超

✅ 精选推荐文章 5066

LSTM 深度解析从原理推演到现代序列建模的演进

LSTM(Long Short-Term Memory,长短期记忆网络)是一种特殊的递归神经网络(RNN),它通过引入记忆单元(Cell State)来解决普通RNN在长序列数据处理中的梯度消失问题。LSTM可以在长时间的序列中捕捉依赖关系,是一种非常适合处理时间序列、自然语言处理、语音识别等任务的深度学习模型。在LSTM中,记忆单元(Cell State)是一个贯穿整个序列的数据通道,用于存储和传递关键信息。记忆单元在LSTM的时间步之间保持信息的持久性,可以看作是一个长期记忆的“容器”。

hello.reader 3万+

Delphi 时间的比较

转载:https://blog.youkuaiyun.com/qq_43252758/article/details/98850053 时间比较函数 CompareDateTime() //比较两个时间是否相同 CompareDate() //比较两个时间的日期是否相同 CompareTime() //比较两个时间的时分秒是否相同 SameDateTime() //比较两个时间是否相同 SameDate() //比较两个时间的日

weixin_45616483的博客 1021

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

悟透delphi 第九章 多层体系结构

第一章  DELPHI的原子世界第二章  DELPHI与WIN32时空第三章  多线程第四章  接口第五章  包第六章  事件与消息第七章  组织你的模块第八章  探索数据库第九章  多层体系结构第十章  操作界面与操作逻辑第十一章  面向对象数据库基础本书原著李战(leadzen)大牛,由tingsking18整理,本人blog发布的版本经过战哥同意,转载请著名出处和原作者! 空白战哥还

我一路走来--- 2412

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

delphi char与string比较

procedure TForm1.CompareCharToString(chstr: Char; str: string); var aa: array[0..1]of AnsiChar; str1: string; begin chstr := 'a'; ...

302

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Delphi美化界面 转载

手头的项目做的差不多了,交给客户,结果给出的结论是界面太难看了,至少要做成像QQ类似的界面。(目前是QQ2009界面确实还是不错的,本人也非常喜欢)。 1.透明问题。 要重新调整界面确实很麻烦,以前用DELPHI开发的界面都很土,和WEB真是没办法比。(我以前用的是DELPHI7),现在回想起来,DELPHI难做的原因是:没有透明控件。所有控件都是不透明的,并且大部分控件就是灰色的,...

169
上一篇: Delphi的经典书籍
下一篇: RemObjects SDK 简介[转载]
Devillyd
博客等级 码龄23年 58粉丝 101原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值