使用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 版本。大家可以根據自己的

具體情況選擇。

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM