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