轉(zhuǎn)帖|其它|編輯:郝浩|2008-07-16 11:24:54.000|閱讀 674 次
概述:用于Flex和Java快速開發(fā)的Flamingo項(xiàng)目
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Exadel的Flamingo項(xiàng)目是一個快速啟動后臺使用Java構(gòu)建的RIA應(yīng)用的工具。在中間層,該工具對Seam和Spring都提供了支持。在 展現(xiàn)層,F(xiàn)lamingo既支持Flex也支持JavaFX。該工具啟動應(yīng)用程序開發(fā)的方式與AppFuse項(xiàng)目類似,后者可用于更傳統(tǒng)的Java Web層框架。InfoQ與Exadel的Igor Polevoy和Fima Katz進(jìn)行了交談以了解更多關(guān)于Flamingo的信息。
Igor和Fima以分享Flamingo的特性細(xì)節(jié)作為開場白。現(xiàn)在的特性可以被劃分為三個邏輯分組:
工具
Flamingo提供了快速啟動簡單功能項(xiàng)目的能力。把一個項(xiàng)目組裝在一起是一個費(fèi)時(shí)費(fèi)力的過程,這不是什么秘密了。此外,在Java界有許多不同的方法 來開發(fā)項(xiàng)目。我們意識到了這個問題并創(chuàng)造出了Flamingo工具作為解決方案。使用Flamingo工具,你不但可以快速地創(chuàng)建一個新項(xiàng)目,還能在開發(fā) 周期過程中隨時(shí)產(chǎn)生應(yīng)用的各個部分。
集成類庫
它就像是客戶端和服務(wù)器代碼間的粘合劑。我們只使用二進(jìn)制協(xié)議,因?yàn)樗鼈兏佑行АK信渲茫ú还苡卸嘈。┰陧?xiàng)目創(chuàng)建時(shí)就已經(jīng)配好了。因此,開發(fā)者只需將注意力集中在手頭的業(yè)務(wù)問題上。
客戶端組件
Fiamingo有一些非可視化組件,它們通過提供校驗(yàn)、將多個請求捆綁到一個請求中等等來簡化開發(fā)過程。Flamingo中比較有意思的特性之一是動態(tài) 持久化方法。這些方法可以使開發(fā)者以直觀的、類英語的方式來查詢數(shù)據(jù)庫,而不是使用SQL(實(shí)際上SQL是由Flamingo在運(yùn)行時(shí)創(chuàng)建出來的)。這一 特性本身就可以極大地推進(jìn)開發(fā)效率。
Igor和Fima繼續(xù)論述了它是如何工作的:
我們用Maven來組織和創(chuàng)建項(xiàng)目。我們的Maven啟動向?qū)儐栮P(guān)于項(xiàng)目不同方面的幾個問題,比 如,服務(wù)器端技術(shù)(Seam/Spring)、客戶端技術(shù)(Flex/JavaFX)、數(shù)據(jù)庫類型、位置、證書、以及基于前面選項(xiàng)的一些其他問題。接著, 一個Maven項(xiàng)目就被創(chuàng)建了。這一項(xiàng)目包含了一個小項(xiàng)目必須的所有組件,如單元測試、持久化單元、以及工作屏(working screen)。這里使用的是標(biāo)準(zhǔn)Maven命令。這樣,在幾分鐘之內(nèi),一個新的全配置項(xiàng)目誕生了。
InfoQ詢問了在結(jié)合RIA技術(shù)時(shí)Spring和Seam的對比:
Spring/Hibernate和Seam/JPA組合都是使用Flamingo和 Flex/JavaFX實(shí)現(xiàn)RIA應(yīng)用的可行解決方案。選擇哪一種后臺技術(shù)通常取決于給定組織的文化及基礎(chǔ)架構(gòu)以及開發(fā)團(tuán)隊(duì)的偏好,而不取決于某些特定特 性。通常,Seam和Spring是難于比較的,即使它們在某些方面是相互重疊的。它們被設(shè)計(jì)用于不同的目標(biāo)。Flamingo試圖保持中立。無論選擇了 哪種后臺技術(shù),F(xiàn)lamingo都盡力給于同等的支持。我要說的是如果一個組織在選擇Java企業(yè)平臺的時(shí)候考慮的是豐富的支持,他們有選擇Seam的自 由。否則,Spring/Hibernate組合應(yīng)當(dāng)被考慮在內(nèi)。
Igor和Fima評述了誰應(yīng)該考慮使用Flamingo:
目標(biāo)客戶是企業(yè)及企業(yè)級應(yīng)用開發(fā)者。我們看到了RIA技術(shù)在企業(yè)級得到了廣泛采用——比如不同風(fēng)格的 AJAX。通常,AJAX技術(shù)與基于Java的后臺系統(tǒng)能夠很好的集成。我們開發(fā)了一個這樣的企業(yè)解決方案——RichFaces,它結(jié)合了JSF (JavaServer Faces)和AJAX。可是,雖然沒有探究AJAX的利弊,我們還是明確地看到了企業(yè)開發(fā)組織中對另一套解決方案如Flex的巨大需求。 Flamingo使得企業(yè)中從事Java工作的人們可以很容易地使用Flex和Java創(chuàng)建一個新的應(yīng)用。
而且,在開源方面:
我們已經(jīng)從事開源事業(yè)很長時(shí)間了,已經(jīng)看到了這一社區(qū)及這一方法的巨大力量。
InfoQ詢問了關(guān)于Flamingo如何支持敏捷開發(fā)的更多細(xì)節(jié):
集成
這是今天我們所擁有的。它提供了使用Flex或JavaFX與Seam或Spring相結(jié)合的無縫開發(fā)過程,消除了不使用Flamingo時(shí)所需的所有手工編碼。其結(jié)果是,開發(fā)過程更加容易、快捷及廉價(jià)。
敏捷RIA平臺包括一套高級工具
為了迎接“敏捷”或“快速”開發(fā)的挑戰(zhàn),像Ruby on Rails和Grails這樣的技術(shù)解決方案出現(xiàn)了。盡管這些都是非常好的框架,但是它們對于RIA應(yīng)用開發(fā)并不擅長。而這正是能產(chǎn)生項(xiàng)目及簡單工作屏 (screen)的Flamingo代碼向?qū)У拈L項(xiàng)。Flamingo的下一版將公布更加強(qiáng)大的工具。同樣,所有由Flamingo產(chǎn)生的服務(wù)器和客戶端 組件立馬就可使用,減少了項(xiàng)目啟動時(shí)間。Flamingo第三個敏捷方面的內(nèi)容是其客戶端組件,這些組件有可以用客戶端上極其簡單的編碼模式來創(chuàng)建訪問數(shù) 據(jù)庫的運(yùn)行時(shí)請求。這一能力本身節(jié)約了大量時(shí)間,如果你將Flamingo的所有這些方面結(jié)合在一起,它絕對會為組織提供一個稱心如意的敏捷開發(fā)平臺。
隨取隨用RIA開發(fā)平臺
這包括提供一套預(yù)構(gòu)建的組件(可視的和非可視的),以及一套預(yù)構(gòu)建的應(yīng)用程序組件(比方說,用于數(shù)據(jù)訪問/導(dǎo)航的dVersion)。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自:InfoQ中文站