2007年7月1日,Kingdee發(fā)布了OperaMasks 1.0,并且推出了開(kāi)源社區(qū)OperaMasks.org。
OperaMasks是一個(gè)基于JSF的Web應(yīng)用框架。
選用JSF作為基礎(chǔ)引擎,個(gè)人認(rèn)為有三大優(yōu)勢(shì):
一是,SUN的官方標(biāo)準(zhǔn);二是,JSF得到了包括IBM在內(nèi)的眾多大廠商的支持,這點(diǎn)對(duì)于可持續(xù)發(fā)展來(lái)說(shuō)很重要;
第三點(diǎn),也是Kingdee宣稱(chēng)的“與表現(xiàn)層無(wú)關(guān)的表現(xiàn)層技術(shù)”,這點(diǎn)有助于適應(yīng)不斷發(fā)展的RIA技術(shù)。在這方面,OperaMasks提供了“Render Kit”,也就是說(shuō),當(dāng)有一個(gè)新的RIA技術(shù)出現(xiàn),僅僅需要針對(duì)這種RIA技術(shù)編寫(xiě)一個(gè)“Render Kit”,而不需要對(duì)以前的應(yīng)用做修改。
OperaMasks有幾個(gè)地方比較吸引我:
一、J2EE without AJAX
在這個(gè)AJAX滿(mǎn)天飛的時(shí)代,各式各樣的AJAX框架也層出不窮,單在Java方面就有DWR、DOJO、GWT、jMaki、Ajax4jsf等等。
一方面,這樣的框架提高了開(kāi)發(fā)效率,但是同時(shí)也意味著更高的學(xué)習(xí)成本;另外一方面,這些框架與既有Web技術(shù)的綁定問(wèn)題,以jMaki為例,如果你想為你的JSF應(yīng)用增加AJAX功能,你需要將一些JSF標(biāo)簽換成jMaki標(biāo)簽,這無(wú)疑增大了開(kāi)發(fā)者的工作量,并且增加了出錯(cuò)的機(jī)會(huì)。
而OperaMasks則從根本上解決了這些問(wèn)題,它提供了“原生”的AJAX支持。
這就是說(shuō),利用OperaMasks開(kāi)發(fā)具有AJAX功能的Web應(yīng)用,你不需要掌握額外的AJAX框架技術(shù)。通過(guò)OperaMasks,你只需要采用標(biāo)準(zhǔn)的JSF組件的寫(xiě)法,你唯一需要做的就是指定該組件的Render Kit是Ajax,或者在配置文件faces-config.xml中將全局Render Kit設(shè)置為Ajax。
只要掌握基礎(chǔ)的J2EE知識(shí),就可以進(jìn)行AJAX開(kāi)發(fā),這無(wú)疑是意義重大的。
OperaMasks提供了豐富的組件庫(kù),用于組織、顯示和編輯數(shù)據(jù),并且集成了強(qiáng)大的YUI-EXT組件庫(kù)功能。
這是OperaMasks的一些應(yīng)用截圖:


二、Apusic Studio
與別的一些開(kāi)源框架相比,這是OperaMasks的巨大優(yōu)勢(shì)。
Kingdee為OperaMasks提供了一體化的開(kāi)發(fā)、配置、調(diào)試、監(jiān)控的集成開(kāi)發(fā)環(huán)境——Apusic Studio,它是一個(gè)基于Eclipse的IDE工具。通過(guò)Apusic Studio,你可以進(jìn)行“所見(jiàn)即所得”的可視化設(shè)計(jì)。Apusic Studio提供了Apusic Ajax、Apusic Graph、Apusic Layout和Apusic Widget等控件集。通過(guò)簡(jiǎn)單的拖放,就可以實(shí)現(xiàn)很好的AJAX效果。
這是Apusic Studio的一些截屏:


三、開(kāi)源社區(qū)
OperaMasks.org,是OperaMasks的開(kāi)源社區(qū)。
透過(guò)它,你可以看到有關(guān)OperaMasks的新聞、項(xiàng)目進(jìn)展情況、技術(shù)文章、在線(xiàn)示例、下載信息等等,你還可以通過(guò)論壇,來(lái)反饋信息。通過(guò)近日的觀察,發(fā)現(xiàn)社區(qū)還是比較活躍的。
當(dāng)然,從開(kāi)源角度,OperaMasks還有做得不夠理想的地方,例如采用的GPL開(kāi)源協(xié)議,對(duì)商業(yè)應(yīng)用是否友好?maillist、bugtrack何時(shí)完善?等等。
從一個(gè)JSF使用者的角度來(lái)看,OperaMasks帶來(lái)的方便,確實(shí)是巨大的。作為國(guó)產(chǎn)開(kāi)源軟件,希望OperaMasks可以走得更遠(yuǎn)!
OperaMasks是一個(gè)基于JSF的Web應(yīng)用框架。
選用JSF作為基礎(chǔ)引擎,個(gè)人認(rèn)為有三大優(yōu)勢(shì):
一是,SUN的官方標(biāo)準(zhǔn);二是,JSF得到了包括IBM在內(nèi)的眾多大廠商的支持,這點(diǎn)對(duì)于可持續(xù)發(fā)展來(lái)說(shuō)很重要;
第三點(diǎn),也是Kingdee宣稱(chēng)的“與表現(xiàn)層無(wú)關(guān)的表現(xiàn)層技術(shù)”,這點(diǎn)有助于適應(yīng)不斷發(fā)展的RIA技術(shù)。在這方面,OperaMasks提供了“Render Kit”,也就是說(shuō),當(dāng)有一個(gè)新的RIA技術(shù)出現(xiàn),僅僅需要針對(duì)這種RIA技術(shù)編寫(xiě)一個(gè)“Render Kit”,而不需要對(duì)以前的應(yīng)用做修改。
OperaMasks有幾個(gè)地方比較吸引我:
一、J2EE without AJAX
在這個(gè)AJAX滿(mǎn)天飛的時(shí)代,各式各樣的AJAX框架也層出不窮,單在Java方面就有DWR、DOJO、GWT、jMaki、Ajax4jsf等等。
一方面,這樣的框架提高了開(kāi)發(fā)效率,但是同時(shí)也意味著更高的學(xué)習(xí)成本;另外一方面,這些框架與既有Web技術(shù)的綁定問(wèn)題,以jMaki為例,如果你想為你的JSF應(yīng)用增加AJAX功能,你需要將一些JSF標(biāo)簽換成jMaki標(biāo)簽,這無(wú)疑增大了開(kāi)發(fā)者的工作量,并且增加了出錯(cuò)的機(jī)會(huì)。
而OperaMasks則從根本上解決了這些問(wèn)題,它提供了“原生”的AJAX支持。
這就是說(shuō),利用OperaMasks開(kāi)發(fā)具有AJAX功能的Web應(yīng)用,你不需要掌握額外的AJAX框架技術(shù)。通過(guò)OperaMasks,你只需要采用標(biāo)準(zhǔn)的JSF組件的寫(xiě)法,你唯一需要做的就是指定該組件的Render Kit是Ajax,或者在配置文件faces-config.xml中將全局Render Kit設(shè)置為Ajax。
只要掌握基礎(chǔ)的J2EE知識(shí),就可以進(jìn)行AJAX開(kāi)發(fā),這無(wú)疑是意義重大的。
OperaMasks提供了豐富的組件庫(kù),用于組織、顯示和編輯數(shù)據(jù),并且集成了強(qiáng)大的YUI-EXT組件庫(kù)功能。
這是OperaMasks的一些應(yīng)用截圖:


二、Apusic Studio
與別的一些開(kāi)源框架相比,這是OperaMasks的巨大優(yōu)勢(shì)。
Kingdee為OperaMasks提供了一體化的開(kāi)發(fā)、配置、調(diào)試、監(jiān)控的集成開(kāi)發(fā)環(huán)境——Apusic Studio,它是一個(gè)基于Eclipse的IDE工具。通過(guò)Apusic Studio,你可以進(jìn)行“所見(jiàn)即所得”的可視化設(shè)計(jì)。Apusic Studio提供了Apusic Ajax、Apusic Graph、Apusic Layout和Apusic Widget等控件集。通過(guò)簡(jiǎn)單的拖放,就可以實(shí)現(xiàn)很好的AJAX效果。
這是Apusic Studio的一些截屏:


三、開(kāi)源社區(qū)
OperaMasks.org,是OperaMasks的開(kāi)源社區(qū)。
透過(guò)它,你可以看到有關(guān)OperaMasks的新聞、項(xiàng)目進(jìn)展情況、技術(shù)文章、在線(xiàn)示例、下載信息等等,你還可以通過(guò)論壇,來(lái)反饋信息。通過(guò)近日的觀察,發(fā)現(xiàn)社區(qū)還是比較活躍的。
當(dāng)然,從開(kāi)源角度,OperaMasks還有做得不夠理想的地方,例如采用的GPL開(kāi)源協(xié)議,對(duì)商業(yè)應(yīng)用是否友好?maillist、bugtrack何時(shí)完善?等等。
從一個(gè)JSF使用者的角度來(lái)看,OperaMasks帶來(lái)的方便,確實(shí)是巨大的。作為國(guó)產(chǎn)開(kāi)源軟件,希望OperaMasks可以走得更遠(yuǎn)!
|
|
歡迎大家訪(fǎng)問(wèn)我的個(gè)人網(wǎng)站 萌萌的IT人
Kingdee宣稱(chēng)”不依賴(lài)于應(yīng)用服務(wù)器,在Servlet 2.5兼容的容器中均能運(yùn)行“
呵呵,我還在測(cè)試,會(huì)將測(cè)試報(bào)告,與大家分享。^_^
我想OperaMasks和dorado相比,一個(gè)很大不同在于OperaMasks是個(gè)JSF引擎,其without AJAX的概念,使得基于JSF的AJAX應(yīng)用,更加自然。而dorado是否意味著更高的學(xué)習(xí)成本?
再有Apusic應(yīng)用服務(wù)器為OperaMasks提供了一些額外的特性,例如基于NIO的多路復(fù)用技術(shù)提升并發(fā)處理能力、基于gzip形式的狀態(tài)壓縮技術(shù)降低網(wǎng)絡(luò)流量、支持在Managed Bean中通過(guò)Annotation進(jìn)行資源注入等等。
Ajax本來(lái)就是很簡(jiǎn)單的技術(shù),還要搞這個(gè)噱頭?
而所謂的Apusic Studio 也只是簡(jiǎn)單的WTP插件的集成而已,沒(méi)有什么技術(shù)含量!
呵呵,不知道您這里說(shuō)的簡(jiǎn)單,是原理上的簡(jiǎn)單?還是應(yīng)用到具體項(xiàng)目時(shí)的簡(jiǎn)單?
呵呵。我看了一下OperaMasks得demo,應(yīng)該是基于yui實(shí)現(xiàn)的。性能絕對(duì)是比不上dorado,yui開(kāi)個(gè)有效果的頁(yè)面,cpu就可能到100%,當(dāng)然只是一瞬間的100%,但是我也覺(jué)得不可忍受。
OperaMasks是jsf引擎,那么開(kāi)發(fā)人員還得去學(xué)習(xí)jsf對(duì)吧。學(xué)習(xí)dorado只需要知道jsp就可以了。而且頁(yè)面上的內(nèi)容都是通過(guò)配置文件來(lái)實(shí)現(xiàn)的,比OperaMasks那個(gè)手動(dòng)寫(xiě)代碼省事多了。
呵呵,OperaMasks確實(shí)是基于yui-ext的,不過(guò)這只是一種實(shí)現(xiàn)選擇!如果你愿意的話(huà),也可以選擇別的。
哈,這是一個(gè)基于JSF的框架啊,就好像AJAX4JSF似的。學(xué)習(xí)曲線(xiàn)可以換成:JSF-->OperaMasks。^_^
嗯,您在開(kāi)發(fā)中,使用dorado?還望多多指教!
哈哈,您的見(jiàn)解非常到位!謝謝!受益匪淺!
我說(shuō)Apusic Studio簡(jiǎn)單是指它是直接使用Eclipse WTP插件,在這個(gè)插件“掛”自己的標(biāo)簽而已,使用過(guò)WTP或開(kāi)發(fā)過(guò)emf插件的一看就知道
至于Ajax簡(jiǎn)單點(diǎn)用prototype,做適合自己的封裝,說(shuō)白了主要還是DOM/JS的封裝,不必要弄J2EE Without Ajax這么大的標(biāo)題
前幾年流行的是 thinking in xxxx
后來(lái)流行的是 xxx in action
再后來(lái)流行的是 xxx without xxx
技術(shù)界的標(biāo)題黨可真多……
首先J2EE without AJAX,這是AOM的口號(hào),我只是用這個(gè)口號(hào)而已,“技術(shù)界的標(biāo)題黨”,有點(diǎn)過(guò)了。
如果你說(shuō)Apusic Studio簡(jiǎn)單的理由是在Eclipse WTP上掛幾個(gè)自己的標(biāo)簽,那么請(qǐng)問(wèn)您如何看待MyEclipse?IDE工具說(shuō)白了,只是提高開(kāi)發(fā)效率,如果說(shuō)提高了開(kāi)發(fā)效率還算簡(jiǎn)單的話(huà),我就不知道追求不簡(jiǎn)單的意義何在了?!
AJAX簡(jiǎn)單這點(diǎn),ok,我明白了,您指的是原理簡(jiǎn)單,AJAX庫(kù)使用簡(jiǎn)單,只是我想了解這些所謂的簡(jiǎn)單,能不能帶來(lái)實(shí)際開(kāi)發(fā)過(guò)程中的簡(jiǎn)單?
言辭不當(dāng),多多原諒。
AOM所提的“原生支持AJAX”,是有其獨(dú)特之處的,在aom的環(huán)境下,開(kāi)發(fā)者可以開(kāi)發(fā)標(biāo)準(zhǔn)JSF應(yīng)用(譬如sun公司的petstore例子),使用MyFaces部署,或者使用sun的JSF參考實(shí)現(xiàn)部署,也可以使用aom來(lái)部署,同樣的一個(gè)標(biāo)準(zhǔn)應(yīng)用,不改動(dòng)任何的代碼和配置,部署在其他JSF引擎上的,點(diǎn)擊按鈕是要刷新頁(yè)面的,而部署在aom上的,是ajax方式的,這個(gè)我親手試過(guò)。
目前為止,我沒(méi)有見(jiàn)到過(guò)在某個(gè)應(yīng)用在不做任何配置的情況下,能夠讓<h:commandButton action="#{dosomeThing}"/>直接以ajax方式工作的。
至于dorado,解決的僅僅只是客戶(hù)端的問(wèn)題,dorado如何做規(guī)則導(dǎo)航,如何服務(wù)器端校驗(yàn),如何處理事務(wù),如何做容器管理,如何做依賴(lài)注入?這些在aom里面是有解決方案的。
至于Apusic Studio,我不認(rèn)同您說(shuō)的“而所謂的Apusic Studio 也只是簡(jiǎn)單的WTP插件的集成而已,沒(méi)有什么技術(shù)含量!”觀點(diǎn)
首先Apusic Studio并不是專(zhuān)門(mén)為aom的可視化設(shè)計(jì)提供服務(wù)的,aom的可視化設(shè)計(jì)器只是其中JavaEE開(kāi)發(fā)模塊的一小部分。
Apusic Studio的主要工作是集成了Apusic應(yīng)用服務(wù)器,使開(kāi)發(fā)過(guò)程一體化,提高開(kāi)發(fā)者使用apusic開(kāi)發(fā)的效率,在Apusic Studio里面,可以完成對(duì)應(yīng)用服務(wù)器的管理、開(kāi)發(fā)、調(diào)試、部署、測(cè)試的完整過(guò)程。
在Apusic Studio里可以完成應(yīng)用服務(wù)器的啟動(dòng)、停止,添加數(shù)據(jù)源、部署應(yīng)用、以實(shí)時(shí)圖表方式監(jiān)控服務(wù)器各個(gè)指標(biāo)等功能。
在執(zhí)行一個(gè)程序并想對(duì)其進(jìn)行性能分析的時(shí)候,通過(guò)指定配置,可分析在一個(gè)調(diào)用過(guò)程中,哪些類(lèi)的哪些方法被調(diào)用了多少次,耗時(shí)多少,占用內(nèi)存多少等信息。
Apusic Studio是集成了WTP插件沒(méi)錯(cuò),據(jù)我所知,在WTP插件中,如果要為自己的組件添加可視化設(shè)計(jì)支持,不是單單導(dǎo)入一個(gè)tld文件就可以的,那樣只是在文本形態(tài)的jsp編輯器里面有tld的補(bǔ)全支持,如果要在WTP插件中加入自己組件的可視化支持,必須對(duì)每一個(gè)組件進(jìn)行編碼實(shí)現(xiàn),包括該組件的設(shè)計(jì)期形態(tài)、預(yù)覽形態(tài),都是要有編碼繪制,否則只會(huì)在設(shè)計(jì)器上顯示個(gè)叉叉。
EJB2也有這兩個(gè)所謂的“優(yōu)勢(shì)”,可惜世易時(shí)移,最后流行的都是without EJB。
呵呵,流行很難說(shuō),誰(shuí)敢斷定EJB3.0不會(huì)流行?技術(shù)總是向前發(fā)展,所以without EJB注定也不是永久!
如果說(shuō)JBoss Seam會(huì)是下一個(gè)流行,那么堅(jiān)守without EJB無(wú)疑是錯(cuò)的!
我因?yàn)閞od johnson得without ejb跳到spring,用從gavin king得seam跳回ejb.
技術(shù)好壞,ide支持多少,開(kāi)發(fā)方便,維護(hù)性能,等等等等,不如興趣。有興趣得,用vi寫(xiě)個(gè)java也是有滋有味的事。
支持國(guó)產(chǎn)!