線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3194
推到 Plurk!
推到 Facebook!

基于Delphi7的RIA/SmartClient框架

 
clxbase
一般會員


發表:6
回覆:10
積分:8
註冊:2008-07-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-12-23 12:51:08 IP:220.194.xxx.xxx 訂閱
現在RIA框架那麼火,到處都是RIAAdobe出盡了風頭,一時間好像只有FlexSilverLight才能稱為RIA。其實我們的Delphi同樣能實現很兇悍的RIA系統構架,這就是本人所開發的CBX RIA程式框架,討論QQ群:16169282
大家先體驗一下Demo(需要用戶端初始化): http://117.21.247.37/cbx/AppSvr.dll/Splash.ao
他的原理在於,首先下載並初始化一個用戶端容器,類似於Flash Player,然後,就可以運行各種基於這個框架的Applet了。CBXAppletJavaApplet類似,都是小而精悍的可執行程式碼。CBXApplet是一個小的dll,故比JavaApplet效率高的多。這種基於宿主在流覽器中的執行容器的豐富用戶端機制,就是RIA構架,和Flash/Flex, Java Applet是一樣的。
這套CBX框架,要說絢爛和動感程度,或許不如Flash/FlexSilverLight;但要說資料展現和操作能力,則遠在Flash/FlexSilverLight之上,畢竟其中融入了ClientDataSet和強大的第三方DBGrid,開發環境是Delphi7,業務模組是Native編譯的dll,能夠訪問用戶端的本地資源,這是所有其他RIA解決方案所不能比的,也正體現了Delphi語言的特點。大家可能會問:這個東西和Delphi自身的ActiveX有何不同?答曰:誠然CBX框架也是以ActiveX為包裝宿主在流覽器中,但是它卻是容器化了的執行環境。對於每個用戶端模組而言,並非一一對應一個單獨的ActiveX,而是共同運行在宿主環境中,在用戶端容器宿主成功部署的前提下,系統無論增添多少業務模組,都不必去從新初始化用戶端,從而用戶看到的是平滑的程式更新。由於採用了DelphibplCBX的用戶端容器非常瘦小,以至於一個業務模組的體積僅相當於一個普通的jpg圖像的大小,因而,CBXUI運行的非常迅速,同時卻具有異常豐富的VCL UI元件支援。
編輯記錄
clxbase 重新編輯於 2008-12-23 12:56:20, 註解 無‧
clxbase
一般會員


發表:6
回覆:10
積分:8
註冊:2008-07-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-12-23 12:55:14 IP:220.194.xxx.xxx 訂閱
Delphi的bpl機制真是個好東西。目前,CBX裏開發的業務模組只有100K那麼大。除了在dos時代以外,我很少再看到一個程式能小到這個地步了,特別是豐富UI的資料庫系統。程式體積小了後,給人的感覺很輕鬆。雖然我沒有用CBX開發ERP,但是在編譯CBX的Demo A pplets的時候,就已經有這個感覺了。CBX的輕鬆感觀都已經達到了腳本模式程式的程度。對於Ajax而言,一堆js文件也得100k的樣子。
除了CBX外,目前能夠做到預部署公用類的程式框架只有.Net和Java兩大平臺。而如果是Native編譯型的這類框架,恐怕只有CBX一個了。預部署的特性,是實現SmartClient的前提。因為如果無法把一些相對固定不變的公用模組預部署,那麼Smart Client就無法“Smart”起來。“Smart”的意思就是“瘦小、輕便”,達到這一點的途徑,就是把程式中的公用控制項、代碼庫從程式中剝離出來,讓它們和業務代碼分化開來,讓程式模組儘量少的含有通用性的代碼,從而儘量多的只含有業務代碼,這樣一來,程式模組就異常瘦小起來了,而那些通用性的東西,都融入了容器之中,最終顯現的效果就是業務模組大為瘦身。由此看來,CBX框架並非簡單的等價於把Delphi的多層構架的用戶端放入了流覽器,而是在流覽器中實做了SmartClient。倘若僅僅把Delphi的ActiveForm作了些許改善,並採納了一個多層框架(例如RO),把這樣的一堆東西就稱之為所謂的“RIA”,那會是個什麼效果呢?就成了這個樣子——每個Applet都是一個ActiveX,體積大概1.5M(aspack壓縮過),每個Applet都需要註冊,當Applet非常多的時候,註冊表裏會有無數的類資訊,況且在Applet被打開的情況下,還不能更新模組。最可怕的是,由於每個Applet是個獨立的ActiveX,那麼他們相應的GUID也不能相同。這裏只有兩種方法來產生不同的GUID:1)每個Applet都得用Delphi從新創建一個ActiveForm;2)用相同的一套ActiveX的代碼生成新的Applet,可是要有一個工具替換代碼中的GUID部分。這樣的所謂“RIA”簡直是太可怕了。瞭解到了這些,我們才知道,CBX為我們做了些什麼。
純粹Delphi自身的多層框架的實現,幾乎都只是達到了玩具的程度,也只能做做Demo給人看,真的到了實戰場合,就會暴露出完全不可行:
1)COM 雖然好,卻部署困難,難於管理,無法穿透防火牆,誠然有scktsrvr.exe或httpsrvr.dll這樣的轉接橋程式,卻會因為多出一個資料轉介面模組從而品質大為下降;
2)exe形態的DCOM的Midas Server部署起來好一些,但是其穩定性、性能卻比較低下,沒有object pooling,是instance per connection的方式,幾乎無法應對大量用戶端的場合,而且往往很難直接使用,大多是配合scktsrvr.exe,用socket的方式連接;
3)Delphi的Web Service只能說是“權宜之計”,是稍微可用一點的Delphi的互聯網解決方案。不過,相比於其他的支援Web Service的開發平臺,Delphi的Web Service毫無突出之處:無論開發方便性和性能,都不如Asp.Net;跨平臺、綠色性、成熟性,不如Java和一大堆基於Java的Application Server。Delphi是個高效率的語言,可是在其自身的Web Service實現上,並沒有作很好的優化。
4)IntraWeb也同樣是一套玩具級別的開發平臺,高不成、低不就,縱然發揮到了極致,不過是和asp.net差不太多。
5)直接用ActiveForm開發Web系統,這種方法不加變通的來用的話,幾乎完全不可行,如果你的系統是一大堆每個1、2M的OCX檔,這將是一件多可怕的事情:每個模組都要註冊,同時每個模組更新後,打開頁面要等很長時間安裝這個模組。
獨頭蒜的Delphi就是這麼一個東西:貌似有很多路可以走,但實際上每條路都走不通。不過熟悉Delphi的人都明白,Delphi的好處並非是它提供了現成的好東西,而是用它能做出好東西來。Delphi的很多思想和模式是好的,只是實現的並不很到位,比如說Midas。實現的不到位,那我們自己來實現好了。
CBX RIA框架就是這麼個東西,是發揚了Delphi的特色,同時又把欠缺的東西補齊了:
1、採納一個強有力的Web Server(例如Apache或IIS)直接當作應用伺服器
2、發揮優勢,用戶端用VCL,用bpl的機制給用戶端減肥
3、中間層無狀態,Pooling
4、直接採用http協定通訊,天然穿透防火牆
5、熱部署程式模組,解決部署的麻煩
6、用一個小exe初始化程式,來初始化流覽器,繞開流覽器安全設定的麻煩。
編輯記錄
clxbase 重新編輯於 2008-12-23 13:02:03, 註解 無‧
clxbase 重新編輯於 2008-12-23 13:02:58, 註解 無‧
clxbase
一般會員


發表:6
回覆:10
積分:8
註冊:2008-07-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-12-23 12:57:20 IP:220.194.xxx.xxx 訂閱
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-12-23 20:43:27 IP:122.116.xxx.xxx 未訂閱
您好,

請問有測試版可試用嗎?
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
clxbase
一般會員


發表:6
回覆:10
積分:8
註冊:2008-07-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-12-23 20:49:24 IP:124.205.xxx.xxx 訂閱
有。其實我們的試用版和商業版本是一樣的。我們是靠鬆散的贊助方式來獲取經費。首先加入群,和创始人联系.
clxbase
一般會員


發表:6
回覆:10
積分:8
註冊:2008-07-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-04-23 09:30:05 IP:220.194.xxx.xxx 訂閱
目前该框架已经推出了4.6版,欢迎大家前来体验:
CBX RIA Demo(需要客户端初始化):
61.128.123.88/cbx/appsvr.dll/Splash.ao
CBX RIA讨论区
CBX RIA案例:
CBX RIA QQ群
第一群:53623431(已满)
第二群:16169282(已满)
第三群:63756040(已满)
第四群:64740999
第五群:511572126
第六群:64741149
第七群:8275666
編輯記錄
clxbase 重新編輯於 2009-04-23 09:31:52, 註解 無‧
系統時間:2017-11-20 17:20:10
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!