您的位置:首页 > 编程语言 > Java开发

评价一个框架好坏与否的标准:

2009-05-11 13:38 239 查看
Ajax支持        是不是内置了?是否便于使用?
     书签能力       用户能否将某个页面收藏起来并且可以方便地返回到该页面?
     验证        使用是否简单?是否支持客户端(JavaScript)验证?
     可测试性      脱离容器测试控制器,是否足够简单?
     提交和重定向      框架如何处理重复提交问题?
     国际化       如何支持国际化?控制器利用国际化信息,是否容易?
     页面修饰       框架支持哪种类型的页面修饰/组成机制?
     社区和技术支持       提出问题,能否被快速地、恭敬地回答?
     开发工具       是否有支持这个框架的好的工具,尤其是IDE?
     市场需求       学习了这个框架,它能否帮你找到份工作?
     岗位数量       在dice.com和indeed.com上,对这个框架技能的需求如何?

    笔者认为这个评价标准,值得大家借鉴。

     然后,Matt按照这些评价标准,对各个框架做了以下阐述:
     Ajax支持
     JSF:没有内置的Ajax支持,需要使用ICEfaces和Ajax4JSF
     Stripes:没有对应的类库,支持流输出
     Struts 2:内置Dojo,有用于GWT和JSON的插件
     Spring MVC:没有对应的类库,需要使用DWR和Spring MVC扩展
     Tapestry:Tapestry 4.1中,有内置的Dojo
     Wicket:有Dojo和Script.aculo.us支持

     书签能力
     JSF:可以任意提交——URL甚至不被考虑
     Stripes:使用约定,但是你可以不加理会
     Struts 2:有命名空间的概念,这使得收藏某个页面并返回变得容易
     Spring MVC:允许完全的URL控制
     Tapestry:依然存在一些丑陋的URL
     Wicket:允许装配(mount)页面/URL    

     验证
     JSF:默认的国际化信息丑陋,但是配置简单
     Stripes和Wicket:用Java类进行验证——不支持客户端验证
     Struts 2:使用OGNL完成强大的表达式验证功能;只有在Action上指定了规则,才支持客户端验证。
     Spring MVC:允许你使用公共验证器——这是一种成熟的解决方案
     Tapestry:有健壮的验证功能——不需自定义就有漂亮的国际化信息

     可测试性
     Spring MVC和Struts 2:允许利用mocks(例如EasyMock、jMock和Spring Mocks)简单地进行测试
     Tapestry:测试困难,因为页面类被抽象、具体类被简化
     JSF:页面类可以方便地被测试,实际上很像Struts 2 中的actions
     Wicket:有WicketTester——一个强大的解决方案
     Stripes:有Servlet API Mocks和MockRoundtrip

     提交和重定向
     解决重复提交问题的最简单方法是:在提交后重定向
     Spring MVC:允许你将参数加到重定向URL上
     Stripes、Tapestry和Wicket:有“flash式”的支持
     Struts 2:需要一个自定义的解决方案
     JSF:需要一个自定义的解决方案,国际化信息很难加入到页面bean中

     国际化
     JSTL的<fmt:message>标签使国际化变得简单;如何将国际化信息放到控制器类中,还没有一个统一的标准。
     Stripes、Spring MVC和JSF:每个地区使用一个资源绑定文件
     Struts 2、Tapestry和Wicket:提倡把每个页面/action用到的资源文件分开
     JSF:需要在每个页面上定义资源绑定信息
     Tapestry:<span key="key.name">标签比较可怕

     页面修饰
     Tiles能够用于Struts 2、Spring MVC和JSF中;需要对每个页面进行配置。
     SiteMesh能够用于所有的这些框架中(不推荐在JSF、Tapestry或者Wicket中使用);在设置完成后, 只需要很少的维护。

     开发工具
     Spring MVC:Spring IDE,但是只做XML校验,不是一个UI/web工具
     Struts 2:Eclipse
     Tapestry:Spindle,对编码者非常有利
     JSF:众多IDE支持,并且做得越来越好
     Stripes和Wicket:没有任何官方工具
     NetBeans目前支持Struts *、JSF(+Facelets)、Tapestry和Wicket,尚不支持Stripes和Spring MVC
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息