技術(shù)分享 Flex和Java如何快速開發(fā)的Flamingo項目
在學(xué)習(xí)Flex的過程中你可能會遇到使用Flex和Java快速開發(fā)的Flamingo項目的問題,這里和大家分享一下開發(fā)方法,在中間層,該工具對Seam和Spring都提供了支持。在展現(xiàn)層,F(xiàn)lamingo既支持Flex也支持JavaFX。
Flex和Java快速開發(fā)的Flamingo項目
Exadel的Flamingo項目是一個快速啟動后臺使用Java構(gòu)建的RIA應(yīng)用的工具。在中間層,該工具對Seam和Spring都提供了支持。在展現(xiàn)層,F(xiàn)lamingo既支持Flex也支持JavaFX。該工具啟動應(yīng)用程序開發(fā)的方式與AppFuse項目類似,后者可用于更傳統(tǒng)的JavaWeb層框架。InfoQ與Exadel的IgorPolevoy和FimaKatz進(jìn)行了交談以了解更多關(guān)于Flamingo的信息。
Igor和Fima以分享Flamingo的特性細(xì)節(jié)作為開場白?,F(xiàn)在的特性可以被劃分為三個邏輯分組:
工具
Flamingo提供了快速啟動簡單功能項目的能力。把一個項目組裝在一起是一個費(fèi)時費(fèi)力的過程,這不是什么秘密了。此外,在Java界有許多不同的方法來開發(fā)項目。我們意識到了這個問題并創(chuàng)造出了Flamingo工具作為解決方案。使用Flamingo工具,你不但可以快速地創(chuàng)建一個新項目,還能在開發(fā)周期過程中隨時產(chǎn)生應(yīng)用的各個部分。
集成類庫
它就像是客戶端和服務(wù)器代碼間的粘合劑。我們只使用二進(jìn)制協(xié)議,因?yàn)樗鼈兏佑行?。所有配置(不管有多?。┰陧椖縿?chuàng)建時就已經(jīng)配好了。因此,開發(fā)者只需將注意力集中在手頭的業(yè)務(wù)問題上。
客戶端組件
Fiamingo有一些非可視化組件,它們通過提供校驗(yàn)、將多個請求捆綁到一個請求中等等來簡化開發(fā)過程。Flamingo中比較有意思的特性之一是動態(tài)持久化方法。這些方法可以使開發(fā)者以直觀的、類英語的方式來查詢數(shù)據(jù)庫,而不是使用SQL(實(shí)際上SQL是由Flamingo在運(yùn)行時創(chuàng)建出來的)。這一特性本身就可以極大地推進(jìn)開發(fā)效率。
◆Igor和Fima繼續(xù)論述了它是如何工作的:
我們用Maven來組織和創(chuàng)建項目。我們的Maven啟動向?qū)儐栮P(guān)于項目不同方面的幾個問題,比如,服務(wù)器端技術(shù)(Seam/Spring)、客戶端技術(shù)(Flex/JavaFX)、數(shù)據(jù)庫類型、位置、證書、以及基于前面選項的一些其他問題。接著,一個Maven項目就被創(chuàng)建了。這一項目包含了一個小項目必須的所有組件,如單元測試、持久化單元、以及工作屏(workingscreen)。這里使用的是標(biāo)準(zhǔn)Maven命令。這樣,在幾分鐘之內(nèi),一個新的全配置項目誕生了。
◆InfoQ詢問了在結(jié)合RIA技術(shù)時Spring和Seam的對比:
Spring/Hibernate和Seam/JPA組合都是使用Flamingo和Flex/JavaFX實(shí)現(xiàn)RIA應(yīng)用的可行解決方案。選擇哪一種后臺技術(shù)通常取決于給定組織的文化及基礎(chǔ)架構(gòu)以及開發(fā)團(tuán)隊的偏好,而不取決于某些特定特性。通常,Seam和Spring是難于比較的,即使它們在某些方面是相互重疊的。它們被設(shè)計用于不同的目標(biāo)。Flamingo試圖保持中立。無論選擇了哪種后臺技術(shù),F(xiàn)lamingo都盡力給于同等的支持。我要說的是如果一個組織在選擇Java企業(yè)平臺的時候考慮的是豐富的支持,他們有選擇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(JavaServerFaces)和AJAX??墒?,雖然沒有探究AJAX的利弊,我們還是明確地看到了企業(yè)開發(fā)組織中對另一套解決方案如Flex的巨大需求。Flamingo使得企業(yè)中從事Java工作的人們可以很容易地使用Flex和Java創(chuàng)建一個新的應(yīng)用。
而且,在開源方面:
我們已經(jīng)從事開源事業(yè)很長時間了,已經(jīng)看到了這一社區(qū)及這一方法的巨大力量。
InfoQ詢問了關(guān)于Flamingo如何支持敏捷開發(fā)的更多細(xì)節(jié):
集成
這是今天我們所擁有的。它提供了使用Flex或JavaFX與Seam或Spring相結(jié)合的無縫開發(fā)過程,消除了不使用Flamingo時所需的所有手工編碼。其結(jié)果是,開發(fā)過程更加容易、快捷及廉價。
敏捷RIA平臺包括一套高級工具
為了迎接“敏捷”或“快速”開發(fā)的挑戰(zhàn),像RubyonRails和Grails這樣的技術(shù)解決方案出現(xiàn)了。盡管這些都是非常好的框架,但是它們對于RIA應(yīng)用開發(fā)并不擅長。而這正是能產(chǎn)生項目及簡單工作屏(screen)的Flamingo代碼向?qū)У拈L項。Flamingo的下一版將公布更加強(qiáng)大的工具。同樣,所有由Flamingo產(chǎn)生的服務(wù)器和客戶端組件立馬就可使用,減少了項目啟動時間。Flamingo第三個敏捷方面的內(nèi)容是其客戶端組件,這些組件有可以用客戶端上極其簡單的編碼模式來創(chuàng)建訪問數(shù)據(jù)庫的運(yùn)行時請求。這一能力本身節(jié)約了大量時間,如果你將Flamingo的所有這些方面結(jié)合在一起,它絕對會為組織提供一個稱心如意的敏捷開發(fā)平臺。
隨取隨用RIA開發(fā)平臺
這包括提供一套預(yù)構(gòu)建的組件(可視的和非可視的),以及一套預(yù)構(gòu)建的應(yīng)用程序組件(比方說,用于數(shù)據(jù)訪問/導(dǎo)航的dVersion)。
【編輯推薦】
- 探秘Flex與JavaScript交互
- 常用FlexBuilder快捷鍵用法指導(dǎo)
- Flex框架Riawave的定制應(yīng)用
- 技術(shù)前沿 Flex2.0 從零開始實(shí)現(xiàn)文件上傳
- FlexBuilder開發(fā)方法及特點(diǎn)解析