本文基于對以下人的采訪(最后兩位的看法獨到還是自己看吧!): JSF Jacob Hookom RIFE Geert Bevin Seam Gavin King SPRing MVC Rob Harrop Spring Web Flow Rob Harrop and Keith Donald Stripes Tim Fennell Struts Action 1 Don Brown Tapestry Howard Lewis Ship Trails Chris Nelson WebWork Patrick Lightbody Wicket Eelco Hillenius
6、你對Ruby on Rails的看法如何? 它與WebWork一樣好用,它的CoC(Convention over Configration)和腳手架非常好用。他認為CoC可以被應用在任何framework,他認為這是RoR最大的優點。他還認為RoR會走上其它framework的路(復雜性),因為人們需要自己的擴展。
6、你對Ruby on Rails的看法如何? 它是PHP的很好替代品。假如它有一個正經一點的持久化層它就可以和Java競爭了。
Spring MVC(Rob Harrop)和Spring Web Flow(Rob Harrop and Keith Donald)
1、你認為你的framework的"甜點"在哪里?他最適合哪種類型的項目? Spring MVC: 穩定可擴展,支持了i18n、文件上傳、異常處理,這些穩定的支持給開發者堅實的工作基礎。是最佳實踐,告訴你怎么做是最好的。與Spring集成,領先的IoC遠生支持。支持,Spring社區活躍和龐大。Struts開發者可以平滑過渡。適合多種項目,可選的多種result類型。 Spring Web Flow:內置任務處理引擎,支持線性處理過程中的持續狀態。抽象,減少開發的關注點。適合多種項目類型,插件支持Spring MVC、Struts、JSF等。
2、它不適合于什么樣的場景?在這些場景你推薦什么fremework?它是哪個? Spring MVC:不適合需要組件化開發的場景。它是一個request驅動的MVC。那些場景推薦JSF或Tapestry。 Spring Web Flow:處理線性頁面流,不適合一般的"自由瀏覽"。當然Spring Web Flow可以與request驅動或者組件驅動共存。
4、你的framework的未來會怎樣?對于用戶開發會有什么方便使用的變化?你會原生支持Ajax么?你們計劃支持它了么? Spring MVC:簡化jsp標簽。更多的MVC配置schema。CoC風格的默認控制器、URL影射、view,學習Rails和Stripes的優點。增強數據綁定和驗證(支持范型綁定)。Portlet支持。Spring也要接受Ajax,使用DWR庫。 Spring Web Flow:一大堆,關心的可以自己看......
5、有對你們的framework的傳言需要澄清么?假如有,是哪個? Spring MVC難于配置。在Spring 2.0,將會改善,可以使用自己定義的基于schema的配置。
6、你對Ruby on Rails的看法如何? Spring MVC:RoR非常有趣。不過現在就拿出來用還有點幼稚。這里舉了個例子,關于變量的復數形式的處理,RoR會使用這樣的CoC風格來處理變量list,而Spring MVC也實驗了種種風格,但是受到的結果卻很差。人們認為英語的復數很古怪,沒有一定的規則,所以會帶來混亂,如(person -> people)。所以Spring ...
6、你對Ruby on Rails的看法如何? 我認為Java社區有很多可以從RoR學習的地方。Stripes學習了RoR的前端部分,開發者可以減少配置量。但是RoR的RHTML讓我想到了以前的JSP中混亂的scriptlet。而后面的ActiveRecord是一個很好的理念,實現的也很好。ActiveRecord比Hibernate等復雜的ORM工具要輕易理解,因為這樣的特點RoR才引起了這么大的波瀾。
6、你對Ruby on Rails的看法如何? 不需要D&D工具,旨在幫助開發人員提高開發效率的好例子。我們在Action2中將學習它的先進理念。
Tapestry(Howard Lewis Ship)
1、你認為你的framework的“甜點”在哪里?他最適合哪種類型的項目? 我想Tapestry對于中等規模或者大規模的應用會帶來很多好處(甚至你可以在單頁面的應用程序中獲得好處)。這里有答應你創建新的組件的良好工具。Tapestry不關心數據從哪里來,很多“項目類型”都基于切面(aspect)(如CRUD vs. rss feed vs. etc.)。我認為Tapestry非常輕易與IoC集成(HiveMind或與Spring),方便進行測試。