是的,我內(nèi)心很喜歡Tapestry。我喜歡他的開(kāi)發(fā)風(fēng)格,這和我的工作范圍是有關(guān)的。
在我參加工作之前,我一直用ASP.NET(工作后轉(zhuǎn)J2EE開(kāi)發(fā)),工作的第一家公司用的是私有的MVC框架,有類(lèi)似的實(shí)現(xiàn),同時(shí)提供了類(lèi)似Spring Web Flow的東東。
因?yàn)橐恢弊銎髽I(yè)應(yīng)用,一個(gè)很大的感受是:
企業(yè)應(yīng)用是有一個(gè)嚴(yán)格的流程的。
一個(gè)工作任務(wù)的Transaction是有一個(gè)嚴(yán)格的流程:一步一步按流程往前走,每一步都有嚴(yán)格的校驗(yàn),對(duì)于客戶(hù)或者User的誤操作都會(huì)給出明確的提示,只有客戶(hù)的操作是正確的,才可以進(jìn)行下一步流程。
這和面向公眾的應(yīng)用是不同:
這里沒(méi)有一個(gè)自由跳轉(zhuǎn)的概念的,出了錯(cuò)給個(gè)簡(jiǎn)單提示,讓客戶(hù)自己后退。(不過(guò)現(xiàn)在也開(kāi)始強(qiáng)調(diào)客戶(hù)體驗(yàn),使用ajax來(lái)控制了)
這個(gè)時(shí)候,一個(gè)Page其實(shí)就是一個(gè)小型的Application應(yīng)用。Tapestry和ASP.net從這點(diǎn)看很相似。
國(guó)內(nèi)的開(kāi)發(fā)者也越來(lái)越多的認(rèn)識(shí)到這一點(diǎn),Michael Chen就在buffalo項(xiàng)目中提出One Page, One Application
從這點(diǎn)上看Struts也許并適合,但現(xiàn)在Tapestry升級(jí)為Apache的一級(jí)項(xiàng)目,就有明顯的比較選擇了:Strust面向普通Web應(yīng)用,Tapestry面向企業(yè)Web應(yīng)用(Apache foundation也許也是這么考慮的吧)
BTW:一些觀點(diǎn)也許并不正確或者不嚴(yán)格,因?yàn)檫@樣不得不寫(xiě)更多的東東。既然是blog,我可以選擇寫(xiě)的簡(jiǎn)單些。
不過(guò)在Tapestry你可以參照Tapestry Script Specification的方法去做!