Java程序員學(xué)習(xí)Flex和BlazeDS七大理由
Java程序員學(xué)習(xí)Flex和BlazeDS七大理由
本文列述了7個Java程序員應(yīng)當(dāng)學(xué)習(xí)Flex和BlazeDS的理由,討論了為什么Flex結(jié)合BlazeDS是開發(fā)RIA的最佳組合之一。無論是高度交互的網(wǎng)站還是以Java為后端的企業(yè)應(yīng)用,這項組合都是最佳選擇之一。更重要的是,這項組合能同時為開發(fā)員和企業(yè)帶來高回報(ROI)。
在闡述Java程序員應(yīng)當(dāng)學(xué)習(xí)BlazeDS的7條理由時,我以一個假想的蘇打分派系統(tǒng)來展示如何讓已有的Java程序轉(zhuǎn)變?yōu)镽IA應(yīng)用。通過這個例子,我同時還會講解到BlazeDS在已有Java應(yīng)用或新建Java應(yīng)用中的多種不同用法。
理由一:開源
Flex軟件開發(fā)工具箱(SDK)的核心是個開源框架,專門用來開發(fā)、維護那些在不同瀏覽器、不同操作系統(tǒng)下界面都相同的RIA應(yīng)用。Flex發(fā)布采用的是Mozilla公共許可證(MozillaPublicLicense)。編譯后的Flex應(yīng)用在AdobeFlash平臺下運行。
BlazeDS是連接Flex和Java的索橋,是項針對遠(yuǎn)程調(diào)用和消息傳遞的開源技術(shù)。在Java應(yīng)用服務(wù)器上,它以servlet的形式存在,因此可以在任何標(biāo)準(zhǔn)Java網(wǎng)絡(luò)應(yīng)用中運用它。BlazeDS以LGPL(LesserGNUPublicLicense)公共許可證書發(fā)布。在發(fā)布BlazeDS的同時,Adobe還公布了AMF(ActionScriptMessageFormat)規(guī)格說明,BlazeDS、Java和Flex客戶端間以這種簡潔的二進(jìn)制格式實現(xiàn)通信。
理由二:完善的社區(qū)支持
Flex社區(qū)非常活躍,社區(qū)貢獻(xiàn)了大量項目。Flex.org,這個配以社區(qū)新聞的Adobe站點幾乎每天都有新的社區(qū)貢獻(xiàn);Yahoo!上的Flex用戶組的成員也已經(jīng)超過了11000。
再比如GoogleCode上的Flexlib項目,已經(jīng)提交了大量的開源UI組件。Swiz和Mate項目貢獻(xiàn)了優(yōu)化事件處理的框架;還有GorillaLogic貢獻(xiàn)了自動化UI測試的FlexMonkeym項目。
理由三:帶來廣闊的就業(yè)前景
據(jù)Adobe的Flex“傳道士”——JamesWard看來,F(xiàn)lex高級開發(fā)員的市場需求非常大,學(xué)習(xí)Flex能讓你擁有極具市場競爭力的開發(fā)技能。
理由四:更高的業(yè)務(wù)效益回報
總體上,開發(fā)企業(yè)web應(yīng)用不是個輕松的活,這基本上是眾所周知的事實。Flex和BlazeDS提供的不僅僅是功能強大的開發(fā)工具,而且開發(fā)技術(shù)本身相對也非常簡單。開發(fā)效率可以得到大幅度的提升,產(chǎn)品因此可以很快推向市場。Flex和Flash帶來的用戶體驗也相對更有魅力,對增加流量、提高用戶轉(zhuǎn)化率(conversionrate)很有幫助。
很經(jīng)典的一個例子是Borders連鎖書店。他們最近發(fā)布了帶有“魔法書架”的新網(wǎng)站,這個網(wǎng)站采用Flash接口來模擬書籍借閱的過程。Borders發(fā)現(xiàn)這一模擬借閱非常明顯地提到了用戶轉(zhuǎn)換率:“借助這個Flash驅(qū)動的接口,用戶可以瀏覽書籍、DVD和CD的封面,用戶轉(zhuǎn)換率比其他沒有此項功能的網(wǎng)站高出62%”。
理由五:Flex是第一個專門為創(chuàng)建UI而設(shè)計的語言
大部分語言都不是在第一時間設(shè)計其對UI的支持。Java中Swing包的實現(xiàn)剛好是個很好的證明。也就是這個原因,很多像捆綁數(shù)據(jù)這樣的簡單動作在Swing當(dāng)中的實現(xiàn)就非常痛苦。用Swing最大的問題在于,要想提高開發(fā)效率就必須要對其API了如指掌。
Flex剛好相反,它是專門為創(chuàng)建webUI而設(shè)計的。正如BruceEckel所說,F(xiàn)lex是第一個針對UI開發(fā)的領(lǐng)域特定語言(DSL)。用Flex構(gòu)建UI比其它諸如JSP、JSF、Swing等技術(shù)簡便得多。語言本身糅合了數(shù)據(jù)綁定、事件處理、控件布局以及其它一些UI常用開發(fā)技巧,就算對語言沒有深刻的理解也不會影響開發(fā)效率。
理由六:編程風(fēng)格近似于Java
你可以繼續(xù)使用現(xiàn)有的Java開發(fā)工具來開發(fā)Flex應(yīng)用。當(dāng)然也可以采用SDK中攜帶的免費命令行工具,AdobeFlexBuilder(一個Eclipse插件),或最近的IntelliJIDEA8。
Flex提供的是一個有狀態(tài)環(huán)境,在這個環(huán)境中,數(shù)據(jù)從客戶端加載。這種編程模式更像是開發(fā)桌面客戶端而非HTML編程,這種風(fēng)格對于用過JavaSwing編程的開發(fā)員來說應(yīng)該是相當(dāng)熟悉。
Flex是MXML(類似XML的UI標(biāo)記語言)和AdobeActionScript(面向?qū)ο蟮慕馕稣Z言)的結(jié)合體。鑒于這種結(jié)合方式,F(xiàn)lex編程與Java非常相似,因為兩者用的都是熟知的面向?qū)ο蟮母拍睢?/p>
最理想的開發(fā)環(huán)境是把Flex應(yīng)用創(chuàng)建在web部署文件夾下。這樣一來,每次更新應(yīng)用之后都不需要重新部署,只要在瀏覽器下刷新一下就可以了。用Flex和BlazeDS開發(fā)后,開發(fā)效率絕對比之前有很大的提升。
理由七:BlazeDS可以在任何Java應(yīng)用服務(wù)器上運行
BlazeDS目前已發(fā)布了多個版本,其中的turnkey版本還包含了為BlazeDS配置的ApacheTomcat。本文中,我用的是二進(jìn)制發(fā)布版本,其中含有一個WAR用來展示如何把應(yīng)用部署到各種應(yīng)用服務(wù)器上去。不用這個WAR的話,你也可以從中提取JAR文件放到自己的項目中去。關(guān)于安裝BlazeDS的各種選項內(nèi)容,可以參見BlazeDS的wiki。
這里舉一個簡單的例子,比方說要在已有的一個簡單的蘇打調(diào)配系統(tǒng)中應(yīng)用BlazeDS。你只要把JAR文件放到項目文件夾下,然后就可以在應(yīng)用里直接用BlazeDS,可以部署到能夠部署應(yīng)用的任何地方。
在項目中添加BlazeDS,只需要完成下面兩個步驟:
解壓縮BlazeDSWAR文件的內(nèi)容:jarxvfblazeds.war。
把JAR文件都拷貝到項目的lib文件夾下:cp-RWEB-INF/lib/sodaSample。
【編輯推薦】
- 使用FlexSDK4時三大注意事項
- FlexBuilder4十大新特性閃亮登場
- Flex自動化功能測試工具QTP用法指導(dǎo)
- 揭開Flex正則表達(dá)式的神秘面紗
- 技術(shù)分享 在Flex中嵌入Flex字體的步驟