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

来源:互联网 发布:图图名片设计软件 编辑:程序博客网 时间:2024/04/29 08:59

目前在delphi 开发多层应用的框架基本上集中在以下几种,每种开发框架都有自己的优缺点,没有最好的,大家可以根据

自己的实际需求选择相应框架,我把我本人在使用几种框架的体会与大家分享一下。如有不对之处,可以拍砖。  

   1. DELPHI 自身提供的DataSnap

      从delphi 3 开始,delphi 自身就开始支持多层开发,后期的版本逐步加强三层开发功能,在delphi 6 以后,

把这一功能叫Datasnap,并且每个都有很多变化,包括DBExpress 的数据库访问、服务器的开发、传输协议都

在最新的delphi XE以后都大大加强了。下面是Datasnap 的架构图

  

同时在最新的delphi XE2 里面,增加了对移动操作系统的支持,直接生成

常见的移动操作系统的访问应用服务器的能力,包括iOS,Android,BlackBerry 等。在数据传输方面使用了开放的JSON

格式,最大限度增加与其他语言的互操作性,开发者不需要购买第三方控件就可以开发出来强有力的多层系统。但是这个框架也存在

一些缺点和问题:

        1).只能在最新的delphi 版本上开发,以前的版本无法使用,尤其是很多同学喜欢的D7;

        2).版本之间的变化比较大,升级到新版本后代码都要有所修改;

        3).服务器目前只支持windows 和mac OS X ,暂时不支持其他平台;

        4).系统自身相对比较封闭,不能充分利用第三方控件,最大限度挖掘系统的潜力;

        5).更新速度慢,基本上是跟随每个delphi 新版本发布才更新。

2.  RemObjects SDK 和Data Abstract 

    RemObjects SDK 和Data Abstract 在delphi 多层开发框架里面是鼎鼎有名, RemObjects SDK 用来

实现多层服务及访问,而Data Abstract 主要解决数据库的访问,由于RemObjects SDK 是Data Abstract

的一部分,因此购买时只要买Data Abstract就可以了。Data Abstract 除了有delphi 版外,还是.NET、

JAVA 和XCODE版。Data Abstrac 提供可视化的中间层数据访问设计,提供数据模式,提供脚本描述逻辑,

可以不夸张的讲,多层数据库中间层需要的功能,它基本上都有了。下面是Data Abstrac的工作原理图:

   

      这套框架最大的优点就是功能非常多,非常强,但是最大的问题是价格太高了,单个平台的版本

购买价格为899美元,以后每年的续订价为499 美元。同时由于他的功能太多了,以至于我们都有可能

迷失在他的功能海洋里面;),一般出现问题后,基本上自己没办法修改。最后一个问题是,它现在的重点放在了.NET

和JAVA, 很多语法和实现方式非常像C#, 呵呵,这一点应该不算是问题,只不过是让我有点不爽。哈哈!

 

3.kbmMW

     kbmMW 是一套短小精悍的delphi 多层框架,配合它的kbmMemTable 很容易设计出来多层数据库应用服务器,

  所有的功能都在一个包里。同时提供了客户端C,C#,JAVA,PHP 的支持。它支持负载平衡、失效恢复和代理。同时支持

 发布/订阅 模式的消息传输方式,大大提高了多层的效率.下面是kbmMW 的支持服务类型:

    

 kbmMW  基本上能够满足多层开发的各种需要,更新速度也比较快,我本人也是在使用remobjects  后转到kbmMW 上的,

当然这套框架也是有问题的,第一,可视化界面设计的非常丑,看看上面的图你就知道了。第二,使用这个框架对开发者有

一定的要求,因为它的配置都是需要自己定制的,经验不足的话,会出现一些怪问题。我最初时就是因为连他都安装不到IDE 放弃的,

最后从remobjects转过来时,慢慢研究了一天才搞清楚(呵呵,我自己的水平也太臭了)。

 

4.RealThinClient SDK

  虽然 RealThinClient SDK 也算是一套多层开发框架,但是严格意义上又有一些区别,首先 RealThinClient SDK 主要是使用

HTTP 协议实现数据传输的,其次对多层数据库这一块基本上没有直接支持,很多地方需要开发者自己写代码实现数据库功能。

但是这套框架最大的特点是效率比较高,非常稳定。它的远程函数实现也比较漂亮,减少了很多手工的错误,赞一个。

用它做动态webserve,也是一个不错的选择。因此多层系统数据库访问不是非常多的话,推荐使用。

下图为RealThinClient SDK 自带的webserver  的 demo运行图:

  

 

以上是目前delphi 开发多层系统的框架的简单介绍,需要更多了解的,可以到官方网站进行详细的了解。

另外 ,1、2、3 框架服务器使用的是indy 控件来实现网络传输的,RealThinClient SDK 是自己封装

Sock 来实现网络传输的。同时后三个都可以运行在D7 后的各个主要的delphi 版本。大家可以根据自己的

具体情况选择。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 红米4锁屏密码忘了怎么办 红米note忘记锁屏密码怎么办 红米note2锁屏密码忘了怎么办 机打发票抬头名字少写一个字怎么办 卷式发票名字写错了怎么办 发票丢失了销售方不给补手续怎么办 总是把单词归不成句孑怎么办 白色踏板摩托车把漆刮了怎么办 苹果手机用流量缓冲很难怎么办 谷歌浏览器安卓手机版打不开怎么办 怀孕四个月检查高型半氨酸高怎么办 猎豹cs9怎么打不开车门怎么办 孩子在学校被老师冤枉打板子怎么办 么司福利体检暗地查乙肝怎么办 上体育课时被老师罚了腿疼怎么办 义务兵学技术不好班长打他怎么办 耳朵被打了一巴掌听不见了怎么办 耳朵被打了一巴掌后有点闷怎么办 山东省教育云平台密码戳完怎么办 被舍友知道发朋友圈说她们了怎么办 苍蝇药水进眼里了眼睛疼怎么办 三十六周了胎儿还没有入骨盆怎么办 怀孕40周了宝宝还没反应怎么办 程序员不知道自己犯法了怎么办啊 大学档案学年测评有涂改痕迹怎么办 驼背怎么办要能快速矫正的方法 手臂往后扭后手臂根部疼又肿怎么办 一岁四个月宝宝有点斜颈怎么办? 六个月的宝宝脖子有点歪怎么办 情感交叉擦腿综合症心里治疗怎么办 坐月子受风了胳膊腿疼怎么办 劲椎手术两个月双腿疼痛麻这怎么办 手机里存的照片删除了怎么办 买了好几双鞋子都不防滑怎么办 电脑平车车加绒过厚不起线怎么办 碰见那种看不起人的店员应该怎么办 在食品厂上班載卫生帽头发痒怎么办 工司没给员工上保险离职后怎么办 货物被香港律政司扣了怎么办 室友考研要跟我考一样的学校怎么办 药流第一天才吃了一粒米非司怎么办