基于Delphi7的RIA/SmartClient框架 |
|
clxbase
一般會員 發表:6 回覆:10 積分:8 註冊:2008-07-09 發送簡訊給我 |
RIARIAAdobeFlexSilverLightRIADelphiRIACBX RIAQQ16169282 大家先體驗一下需要用戶端初始化
Flash PlayerAppletCBXAppletJavaAppletCBXAppletdllJavaAppletRIAFlash/Flex, Java Applet這套框架,要說絢爛和動感程度,或許不如和;但要說資料展現和操作能力,則遠在和之上,畢竟其中融入了和強大的第三方,開發環境是,業務模組是編譯的,能夠訪問用戶端的本地資源,這是所有其他解決方案所不能比的,也正體現了語言的特點。大家可能會問:這個東西和自身的有何不同?答曰:誠然框架也是以為包裝宿主在流覽器中,但是它卻是容器化了的執行環境。對於每個用戶端模組而言,並非一一對應一個單獨的,而是共同運行在宿主環境中,在用戶端容器宿主成功部署的前提下,系統無論增添多少業務模組,都不必去從新初始化用戶端,從而用戶看到的是平滑的程式更新。由於採用了的,的用戶端容器非常瘦小,以至於一個業務模組的體積僅相當於一個普通的圖像的大小,因而,的運行的非常迅速,同時卻具有異常豐富的元件支援。 編輯記錄
clxbase 重新編輯於 2008-12-23 12:56:20, 註解 無‧
|
clxbase
一般會員 發表:6 回覆:10 積分:8 註冊:2008-07-09 發送簡訊給我 |
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
一般會員 發表:6 回覆:10 積分:8 註冊:2008-07-09 發送簡訊給我 |
|
st33chen
尊榮會員 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
|
clxbase
一般會員 發表:6 回覆:10 積分:8 註冊:2008-07-09 發送簡訊給我 |
|
clxbase
一般會員 發表:6 回覆:10 積分:8 註冊:2008-07-09 發送簡訊給我 |
目前该框架已经推出了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, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |