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

    目前在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 版本。大家可以根据自己的

具体情况选择。

 

 

 

 

 

时间: 2024-07-31 15:56:01

使用delphi 开发多层应用(三)Delphi常用多层框架介绍的相关文章

使用delphi 开发 web(三)动态脚本里面使用数据库

在主程序里面把数据库访问控件设置并注册好,在脚本里面使用数据库就非常简单. 可以类似下面的脚本访问数据库. <%uses SysUtils, Classes;var   aaa,rndnum,bb:string;   i,num:integer; begin  with cx do    begin        sql.clear;        sql.add('select * from soft');        open;      while not cx.eof do     

《企业级ios应用开发实战》一2.2 iOS框架介绍

2.2 iOS框架介绍 iOS衍生自Mac OS X的成熟内核,但iOS操作系统更紧凑和高效,支持iPhone和iPod Touch的硬件.iOS继承了Mac OS X的风格,包括:统一的OS X 内核,针对网络的BSD套接字,以及Objective-C和C/C++编译器. iOS框架分为Cocoa Touch.Media.Core Service.Core OS四个层次,如图2-1所示. 这4个层次从上到下排列,位置越高说明层次越抽象,距离硬件底层越远,其特点如下: 层次最高的是Cocoa

114_《Delphi开发技术大全》

<Delphi开发技术大全> Delphi 教程 系列书籍 (114) <Delphi开发技术大全> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Part1 Part2 Part3 作者: 明日科技 梁水 李方超 赛奎春 丛书名: 软件工程师典藏 出版社:人民邮电出版社 ISBN:9787115157034 上架时间:2007-3-21 出版日期:2007 年3月 开本:16开 页码:857 版次:1-1 内容简介 本书是一本Delphi综合开发参考手

使用delphi 开发多层应用(二十一)使用XE5 RESTClient 直接访问kbmmw 数据库

     delphi XE5 出来了,增加了android 的开发支持,另外增加了一个RESTClient 来支持访问REST 服务器. 这个功能非常强大,可以直接使用非常多的REST 服务器.同时也可以支持访问kbmmw 的web 服务器, 并完美的通过JSON支持使用kbmmw 的JSON 数据格式.使我们非常方便的在win32,win64,mac os,ios 和android 上访问kbmmw 的数据库.     首先我们建立一个可以返回JSON 的kbmmw web 服务器.这个可以

用Delphi开发ASP分页组件

分页 由于Delphi在开发数据库应用系统中具有的强大的功能和极高的效率,所以笔者开发ASP组件较常用的是Delphi 5.0(当然也可采用Visual Basic或VC++开发ASP组件),Delphi本身在Internet和InternetExpress两个组件面板提供了众多的组件可以直接生成Web页面,但是这些组件都缺少网页中数据显示常见的分页功能.众所周知,ASP是通过建立ADO连接数据库后建立RecordSet对象,然后利用RecordSet的AbsolutePage进行页面定位,而在

Delphi多线程编程的三个常用方法

有一段多线程的程序需要完善, 捋了一遍 XE4 中关于多线程的源码, 发现有这三个类方法就足够我用了, 暂时结束学习. TThread.CreateAnonymousThread(); //普通 TThread.Queue(); //队列 TThread.Synchronize(); //VCL 同步 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索多线程 , 源码 , 队列 , 方法 同步 delphi多线程编程.del

第十三章-Delphi开发数据库应用程序概述(一)(3)

13.3 Delphi数据库的体系结构 Delphi使用可视化的部件创建数据库应用,跟创建其它的非数据库应用程序一样,数据库部件都具备一定的属性,程序设计人员可以在设计过程中设置部件的多种属性,也可以在程序运行过程中通过程序来设置部件的各种属性. 在Delphi部件板上有两页数据库部件用于开发数据库应用程序: 数据访问部件页:该页上的部件主要用于说明有关的数据库的信息,如应用程序要访问(连接)的数据库,要访问数据库中的具体的数据库表,以及要访问表中哪些字段等,在实际的开发应用中常用的部件有TDa

Delphi XE程序设计系列 1-主从架构, 多层到JSON和REST

Delphi XE程序设计系列 1-主从架构, 多层到JSON和REST      从桌面开发,主从架构,一直到多层架构,虽然都是广泛被接受的观念和技术,但在信息技术的实作上却从不是开放, 相容的世界.Delphi从桌面开发到主从架构都是使用自己的数据传递格式以及通讯传递架构,到了多层架构虽然使用了Windows平台上的通讯协议,例 如COM/DCOM/COM+,但是在传递的数据格式方面仍然是使用自己的架构,COM/DCOM/COM+也是MS专属的通讯协议,和其它平台上使用的 通讯协议也不一样.

最强大的Delphi RIA Web构架群,领略Delphi开发BS的强大威力,Java差远了

问题描述 CBXRIA框架几乎是国产多Delphi层框架中最好的一个,同时体现SmartClient和RIA思想.CBX的Demo服务器换地址了,所以请大家到这个地方体验,CBXRIADemo(需要客户端初始化):有关CBXRIA的评论:刚创建的CBXRIA讨论区CBXRIA案例:欢迎加入最强大的DelphiRIABS构架群,领略Delphi开发BS的强大威力,Java差远了主讨论群:53623431(已满)第二群:16169282(已满)第三群:63756040(已满)第四群:64740999