MyEclipse 8.6 for Spring發(fā)布 新增iPhone工具
近日,在MyEclipse 8.6發(fā)布不久,Genuitec and Skyway Software的MyEclipse 8.6 for Spring正式發(fā)布了。這一版本包含了Spring Core 、Adobe Flex、Spring MVC、 GWT、Spring Web Flow,最為欣喜的便是MyEclipse 8.6 for Spring包含了iPhone Web應(yīng)用程序快速開(kāi)發(fā)工具。
該版本還引入了一套新的Spring開(kāi)發(fā)編輯器和代碼助手,幫助開(kāi)發(fā)基于注解的Spring程序和JAX-WS制品。.
為進(jìn)一步了解這一新版產(chǎn)品,InfoQ采訪了產(chǎn)品總監(jiān)Niel Eyde。
Q:MyEclipse for Spring 的主要特性是什么,能夠解決什么問(wèn)題?
Niel: MyEclipse for Spring的一個(gè)主要特性是腳手架(scaffolding),它包括通過(guò)采用由開(kāi)發(fā)者提供的標(biāo)準(zhǔn)應(yīng)用程序模式的最小輸入(inputs)集所產(chǎn)生的Spirng應(yīng)用的全部或主要部件。利用各種輸入(Java beans、JPA entities、關(guān)系表、WSDL/XML)你可以產(chǎn)生多種類(lèi)型應(yīng)用程序,包括:Spring MVC、Spring Web Flow、Google Web Toolkit (GWT) &Spring、Adobe Flex &Spring,以及 iPhone Web 應(yīng)用程序。MyEclipse for Spring 還支持Web服務(wù)腳手架,以消費(fèi)和生產(chǎn)JAX-WS web服務(wù),包括契約優(yōu)先(contract-first)和代碼優(yōu)先(code-first )開(kāi)發(fā)。
腳手架的目的是加速應(yīng)用程序開(kāi)發(fā)。MyEclipse for Spring能夠產(chǎn)生一個(gè)應(yīng)用程序的各層代碼,包括Web、service、domain、以及數(shù)據(jù)訪問(wèn)層。 我們來(lái)看看MyEclipse for Spring的兩個(gè)常見(jiàn)用例:一是產(chǎn)生可運(yùn)行的應(yīng)用、上下文相關(guān)的例子、或功能原型;二是產(chǎn)生開(kāi)發(fā)人員在項(xiàng)目中可利用的特定應(yīng)用層或組件。
代碼助手是MyEclipse for Spring的另一個(gè)主要特性,可以在日常開(kāi)發(fā)過(guò)程中對(duì)開(kāi)發(fā)者提供幫助。其目標(biāo)是支持基于注解的開(kāi)發(fā)。盡管大多數(shù)Java開(kāi)發(fā)者都了解Java 注解的技術(shù)運(yùn)用,但通常并不清楚對(duì)特定技術(shù)有什么注解可用,什么情況下應(yīng)該用什么注解。例如,Spring框架對(duì)基于注解編程有很好的支持,但是其所支持的注解非常多,有些注解是所有Spring stereotypes(Spring構(gòu)造型)都可用的,另外一些注解則僅對(duì)特定stereotype可用。為了給 開(kāi)發(fā)者提供幫助,MyEclipse for Spring的代碼助手支持基于注解的開(kāi)發(fā),通過(guò)在配置注解過(guò)程中提供援助,它可以幫助開(kāi)發(fā)者了解哪些注解可用,以及在何種上下文中應(yīng)該使用哪個(gè)注解。
有關(guān)MyEclipse for Spring特性的更多信息可以參見(jiàn)http://www.myeclipseide.com/me4s。
Q:這一版本的新增功能中什么是最重要的?
Niel: 在該8.6版中,我們?cè)鰪?qiáng)了已有的Spring MVC腳手架功能,并增加了對(duì)Adobe Flex、Google Web Toolkit (GWT)、Spring Web Flow、以及iPhone Web的腳手架支持。這一版包含了JAX-WS和Spring stereotypes(包括Controllers、Services、Components、以及Repositories)的新代碼助手。作為這一版的一個(gè)部分,我們還努力打造出更加全面的學(xué)習(xí)資料、文檔以及教程,以幫助用戶并給他們提供成功使用MyEclipse for Spring的所需信息。
Q:你了解正在使用你們產(chǎn)品做項(xiàng)目的客戶嗎?對(duì)于正在考慮使用你們解決方案的團(tuán)隊(duì),怎樣的開(kāi)發(fā)過(guò)程才是你們所推薦的呢?
Niel: 通常,我們的客戶使用MyEclipse for Spring 來(lái)加速應(yīng)用開(kāi)發(fā),創(chuàng)建功能原型,學(xué)習(xí)新的技術(shù),以及加速應(yīng)用程序現(xiàn)代化。下面我來(lái)分別說(shuō)明這幾塊。
加速應(yīng)用開(kāi)發(fā)
使用Eclipse的開(kāi)發(fā)者擁有很多可以利用的工具,MyEclipse for Spring則增加了一個(gè)集成的代碼生成功能套件。利用代碼生成功能,開(kāi)發(fā)者只需點(diǎn)幾下鍵盤(pán),即可精確描述其要產(chǎn)生什么組件。
功能原型
用MyEclipse for Spring在制作原型和產(chǎn)品方面沒(méi)有區(qū)別,但很多客戶發(fā)現(xiàn)從domain模型產(chǎn)生全套可工作應(yīng)用程序的能力對(duì)制作原型特別有幫助。尤其是他們可以迭代domain模型,瞬間由domain模型重新產(chǎn)生應(yīng)用。有一個(gè)可運(yùn)行的應(yīng)用,非常有助于與業(yè)務(wù)分析師推敲需求。而且,你還可以用原型作為應(yīng)用程序開(kāi)發(fā)的起點(diǎn)。
學(xué)習(xí)新技術(shù)
開(kāi)發(fā)者精通一門(mén)技術(shù)有助于其學(xué)習(xí)其他新技術(shù)。開(kāi)發(fā)者通常用一個(gè)簡(jiǎn)單應(yīng)用或參考應(yīng)用作為學(xué)習(xí)的起點(diǎn),但是 MyEclipse for Spring可以讓他們用自己的domain模型創(chuàng)建與其上下文相關(guān)的例子。比如,如果PHP開(kāi)發(fā)者想學(xué)習(xí)Spring,利用已有PHP應(yīng)用的數(shù)據(jù)庫(kù)表,他們就可以快速產(chǎn)生一個(gè)Spring MVC(Spring Web Flow等等)應(yīng)用。因?yàn)樵搼?yīng)用是基于其domain模型的,因此與從網(wǎng)上下載的應(yīng)用相比,他們對(duì)所產(chǎn)生的應(yīng)用更加熟悉。而且,他們可以以正確的方式學(xué)習(xí)新技術(shù),因?yàn)?ldquo;與其上下文相關(guān)的例子”采用了該新技術(shù)的最佳實(shí)踐。
應(yīng)用程序現(xiàn)代化
對(duì)一個(gè)組織而言,MyEclipse for Spring對(duì)于現(xiàn)代化其應(yīng)用非常有幫助,MyEclipse for Spring可以應(yīng)用于很多場(chǎng)景:例如,或許某組織正從某種技術(shù)或框架向Spring遷移;或者,他們想讓已有應(yīng)用擁有更豐富的前端(GWT、Adobe Flex)。對(duì)這兩種情況,都可以使用MyEclipse for Spring,利用他們已有應(yīng)用制品來(lái)產(chǎn)生新應(yīng)用組件的重要部分,從而跨域式實(shí)現(xiàn)現(xiàn)代化。
Q:你們產(chǎn)品里的腳手架是非常重要的特性,與其他解決方案如Spring Roo等相比,它有什么不同?
Niel: 首先,我本身就是Spring Roo團(tuán)隊(duì)成果的粉絲。我們的目標(biāo)是發(fā)布額外的Spring代碼生成工具,給開(kāi)發(fā)者提供其他SpringSource免費(fèi)選項(xiàng)。
我們有一個(gè)網(wǎng)頁(yè)羅列了Roo 和 MyEclipse for Spring的主要區(qū)別,但是從更高層來(lái)看,有三個(gè)主要區(qū)別。第一個(gè)區(qū)別是開(kāi)發(fā)環(huán)境使用的工具不同:MyEclipse for Spring使用的是基于Eclipse的向?qū)Ш途庉嬈鳎鳶pring Roo使用的是腳本語(yǔ)言和命令行接口。Eclipse用戶已經(jīng)很熟悉向?qū)Ш途庉嬈鞯氖褂茫虼耸褂肕yEclipse for Spring幾乎不用怎么學(xué)習(xí)。第二個(gè)區(qū)別是產(chǎn)生應(yīng)用程序的應(yīng)用模式不同:MyEclipse for Spring產(chǎn)生的應(yīng)用遵循傳統(tǒng)架構(gòu)模式(Controller、Service、Domain 和 DAO),而Spring Roo則采用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)概念(Domain Driven Design concepts:Aspects & Weaving、no Services 或 DAOs)來(lái)產(chǎn)生應(yīng)用程序。
第三個(gè)區(qū)別是產(chǎn)生應(yīng)用程序的類(lèi)型不同: MyEclipse for Spring產(chǎn)生Spring MVC、Spring Web Flow、GWT、Adobe Flex及iPhone Web應(yīng)用,并且同時(shí)支持Spring 2.5/3.0。所有所需第三方類(lèi)庫(kù)均已包含,因此MyEclipse for Spring非常適合產(chǎn)生當(dāng)今產(chǎn)品應(yīng)用組件。Spring Roo只能產(chǎn)生Spring 3.0的Spring MVC應(yīng)用。Spring Roo 的一些早期訪問(wèn)版本也能支持其他的應(yīng)用類(lèi)型,但是這依賴于產(chǎn)品里程碑以及早期訪問(wèn)版本的類(lèi)庫(kù)和框架。
再?gòu)?qiáng)調(diào)一下,要想了解MyEclipse for Spring 和 Roo的其他區(qū)別,請(qǐng)?jiān)L問(wèn)http://www.myeclipseide.com/me4s/faqs/faqs_tool_comparison.php。
Q:你們項(xiàng)目的路線圖是什么?未來(lái)將如何發(fā)展?
Niel: 在腳手架方面,我們將繼續(xù)研究更多應(yīng)用類(lèi)型的腳手架。我們還想提供更細(xì)粒度的代碼產(chǎn)生控制,包括通過(guò)提供自定義模板,讓開(kāi)發(fā)者更容易地自定義MyEclipse for Spring代碼產(chǎn)生引擎。另外,幾個(gè)新代碼助手已經(jīng)列入計(jì)劃,敬請(qǐng)耐心等待。
【編輯推薦】



















