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