本文基于对以下人的采访(最后两位的看法独到还是自己看吧!): 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),方便进行测试。