`
freesea
  • 浏览: 128888 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Web Framworks 的决斗

阅读更多

http://blog.csdn.net/john_zhu/archive/2005/07/10/419248.aspx

 

Web Framworks 的决斗

 

 

 

 

 

 

译者:John Zhu

 

 

 

 

 

 

在本次JavaOne的周三的对话中,关于Web 框架的对决是非常有趣的对话之一。我们从这次对决的拥护者和格式开始报道,我们提供每个框架的概要描述和不同点,最后,我们发布TSS的自己的积分卡,那个框架在本次决斗中倒下,以及"Best Business Case" "Best Technical Case"的胜利者。

 

 

 

决斗的拥护者:

 

 

 

参与的框架:
JavaServer Faces, championed by Ed Burns
Webwork, championed by Jason Carreira
Shale, championed by David Geary
Tapestry, championed by Howard Lewis Ship
Wicket, championed by Eelco Hillenius

 

 

 

缺席但是非常优秀的其他框架:
Struts 1.x
SpringMVC
Ruby on Rails

 

 

 

决斗的方式:

 

 

 

第一回合: 每个拥护者用三分钟介绍他们的框架.

 

 

 

第二回合: 主持人提问.

 

 

 

第三回合: 观众提问.

 

 

 

战斗的钟: 主持人是Kevin Osborn控制着战斗的钟声.控制现场秩序,以利于决斗不会使用非正当手段或者拥护者是否超过时间时.                                                                                                        

 

 

 

我们的评论:

 

 

 

我们注意到在本次决斗中一个主要的趋势是针对组件。每个框架介绍自己的Web组件如何工作的优势。传递给观众的信息是web组件是如此的流行和时兴拥护者介绍他们的组件的核心在于看上去像什么?我们还注意到,Struts已经明显落后,而所有其他的框架都努力在从Struts的阴影中突破,强调自己如何之不同和如何之更好。尽管Web框架已经前进并将Struts丢在后面,但是Struts仍然是经过实践检验并在成千的成功项目中实施。我们禁不住认为Structs没有包含Web组件的思路,所以开发者需要考虑其他的框架,web组件是一个好的开始。:)

 

 

 

 

 

 

框架概述 (第一回合)

 

 

 

JavaServer Faces (JSF)

 

 

 

  • 技术特性

     

    • 界面接口组件和事件模型的第一个类

       

    • POJO依赖注入(又称控制反转)

       

    • 客户端独立性

       

    • 使用或者不使用工具

       

    • 可扩展的导航(类似于Struts导航,注:Page导航)

       

    • 强大的扩展能力 (如Shale

       

    • 完全的集成(如JSP集成Spring

       

    • 本地化和易理解性

       

  • 市场和商业特性

     

    • 广泛的采用,包括SUNOracleIBM,BEA,Apache,EDS

       

    • 作为J2EE 5.0的部分

       

    • 大型第三方组件市场(iLog, Business Objects, Oracle, Sun, IBM)

       

    • 业内领先的工具支持(Sun Java Studio, Oracle JDeveloper, IBM WSAD, NitroX plugin for Eclipse, Exadel Studio)

       

    • 已经有关于JSF的许多的书上架了

       

    • Monster上三页长的关于JSF的工作需求

       

Webwork

 

 

 

  • 核心价值

     

    • 简单

       

    • 可测试

       

    • 可维护

       

    • 可扩展

       

  • 对于未知展示层技术的支持,这次JSPVelocity,和其他的展示层技术

     

  • 对于Http请求映射未逻辑(交互性)活动

     

  • 通过分层的MVC和模板机制简化组件

     

Shale

 

 

 

  • 集成JSPJakarta的框架

     

  • 成为Struts 2.0的提议

     

  • 作为Struts的子项目

     

  • Struts类之间没有直接的联系

     

  • 作为JSF技术的扩展:“JSF 1.0 并没有保护所有的我们需要的东西,所以我们加入目前需求的。所以Shale增加了比如说客户端校验,Ajax,等作为JSF 2.0的铺路石。期间,Shale 作为证明的基础。”

     

  • Shale的特性

     

    • Web

       

    • <city w:st="on"></city> <place w:st="on"></place> Ajax

       

    • SpringTiles的集成

       

    • 客户端和服务端的校验

       

    • 类似于Tapestry的展示层的参数化的子树

       

    • 工具:Back-Button的滥用,文件上载,JNDI API

       

  • Shale的扩展点

     

    • ShalePropertyResolver

       

    • ShaleVariableResolver

       

    • DialogNavigationHandler

       

    • ShaleViewHandler

       

    • TilesViewHandler

       

  • “如果不知道JSF本身,JSF是非常非常易扩展的”

     

Tapestry

 

 

 

  • 核心价值:

     

    • 简化-Web应用不能像火箭科技!

       

    • 一致性-为页面工作就是为组件工作,为小应用工作就是为大应用工作,不同的开发人员对于相似的问题应该有相似的解决方法

       

    • 高效性-应用软件应该是高性能和易扩展

       

    • 反馈-如果有什么地方出现问题了,本框架不会中断,事实上,它会提供一些有用的诊断

       

  • 工具:

     

    • 不需要使用工具

       

    • 可以使用你已经使用的工具.

       

  • Tapestry 4.0中的新特性(子集):

     

    • 支持注解

       

    • 真正优秀的集成能力

       

    • 管理服务端状态具有更大的弹性,非常高效的获取什么在事务的明细.

       

    • 支持门户

       

  • Extensibility可扩展性:

     

    • Over 180 extension points 超过180个扩展点

       

    • Built around Component Object Model with many layers 在需要层上集成了组件对象模型

       

    • Terrific ability to override, change, and customize过载,更改和客户化的强大能力

       

    • Great support for component libraries which are open source and available.支持开源和可用组件库

       

  • “对于其他的框架来说,Tapestry是被追赶者!

     

Wicket

 

 

 

  • 还是一个新生家伙.

     

  • Wicket是容易的,优雅的,并且是强有力的”

     

  • 易用:

     

    • 简化,一致,明显

       

    • 重用组件

       

    • 非插入的

       

    • 安全

       

    • 效率/可扩展

       

值得注意的引用:

 

 

 

  •  谁都知道JSF优于Struts,当然,JSFTapestry不相上下

     

  •  Struts是一所老学校,所以恢复它”

     

  •  “如果你需要一个像这样的工具,那么你的扩家可能太复杂了”

     

  •  “你可以说,但是不能让人们去用它”

     

  •  “如果你要节省你的Struts代码,JSF可以做到”

     

  • “在事实你可以采用标准的方法去扩展框架,从而达到在某个功能点构建你的扩展,但是事实你不会真在StrutsWebwork上真的这样去做”。有的人说你不需要使用一种想象的事件模型去获得Web应用的重用。

     

我们的积分卡

 

 

 

TSS尽量用分数来记录决斗,我们对每个框架在两个领域以5分总分作为记录:

 

 

 

  • 技术特性

     

  • 商业使用

     

技术特性

 

 

框架

 

 

分数

 

 

原因

 

 

JavaServer Faces (JSF)

 

 

4.8

 

 

JSF赢得大部分分是因为它是第一个真正支持Web组件的。我们的分析师感觉JSF在简单和优雅方面缺乏指控是不当的。JSF是易用的,强大的,并且是革命的。已经存在的ShaleSpring表明JSF的确是可扩展的。

 

 

Webwork

 

 

4.2

 

 

Webwork的多层MVC作为先驱是革命性的,然而我们感觉WebworkHMVC和模板机制于JSF比已经黯然失色,其思想已经融入了JSF中。

 

 

Shale

 

 

4.95

 

 

如果说Shale站的比其他框架高,那是因为它站在巨人的肩膀上。通过扩展JSF,包含了Web流,支持Ajax,集成tiles,客户端检验,我们的感觉是Shale展示了Web框架的需求和机会的未来。

 

 

Tapestry

 

 

4.75

 

 

TapestryWeb组件的先锋,在讨论中谈到的“JSFTapestry不相上下”本非遥远。然而,JSF的标准扩展点,和第一个支持门户的开发对于Tapestry来说是强有力的竞争优势。我们看比赛已经结束,当然我们乐意看到Tapestry支持JSF的标准接口和支持交互性。明确的说,我们喜欢能够用TapestryJSF组件,用JSF组件的方法去用Tapestry组件。我们热切的期待下一次比赛

 

 

分享到:
评论

相关推荐

    framworks.tar.gz

    Android Framework层代码,用于Audio系统framework代码学习和分析,深入理解安卓音频

    Tengine Convert Tool支持将多个framworks的模型转换为适用于Tengine-Lite AI框架的tmfile。-C/C++开发

    Tengine Convert Tool支持将多个framworks的模型转换为适用于Tengine-Lite AI框架的tmfile。 由于此工具依赖protobuf来解析Caffe,ONNX,TensorFlow,TFLite等的原型文件,因此只能在x86 Linux系统上运行。 Tengine...

    Computational Frameworks for the Fast Fourier Transform

    ### 计算框架在快速傅立叶变换中的应用 #### 概述 《计算框架在快速傅立叶变换中的应用》是由Charles Van Loan撰写的一本关于数学分析领域的专著。该书聚焦于快速傅立叶变换(FFT)的计算框架,并深入探讨了FFT在...

    c# wpf实例 下载

    C#实例下载 供大家学习 有很好的实例 供初学者可以参考

    5个通用CSS Frameworks框架

    在网页设计和开发中,CSS(层叠样式表)框架是开发者的重要工具,它们提供预定义的样式和组件,帮助快速构建响应式、美观且功能丰富的网站。本篇将详细介绍5个广受欢迎的通用CSS框架,助您在项目中找到最适合的解决...

    spring-framwork-5.1.x:建造好的spring5.1.x源码阅读环境

    首先,Spring 5.1.x在模块化设计上进一步优化,主要包括核心容器(Core Container)、数据访问/集成(Data Access/Integration)、Web、AOP(面向切面编程)和测试等模块。核心容器包括Bean工厂和ApplicationContext,它们...

    openfl-bitfive:针对OpenFL的替代针对blittingHTML5后端

    它主要用于将基于Flash的Web应用程序移植到HTML5,尽管它还与HaxePunk,HaxeFlixel和其他基于OpenFL的framworks兼容。 由于每个新的OpenFL版本都对共享类和通用的自定义后端机制进行了越来越多的更改,因此开发...

    Nodejs-rest-api-project-structure-Express:使用Express框架和MongoDB构建RESTful API的Nodejs项目结构实践

    Express和MongoDB项目结构这是一个基本的项目结构,可帮助您使用Express框架和MongoDB,并以基于干净的MVC架构的良好结构实践为基础,开始构建自己的RESTful Web API(适用于Android,IOS或JavaScript framworks)。...

    基于MXNet的分层参数服务器框架。 GeoMX还实现了多种通信高效策略。-C/C++开发

    GeoMX是基于MXNet的两层参数服务器框架,旨在通过在Web上协作培训共享的深度学习模型,以保护隐私的方式集成多个独立方拥有的数据知识(即,无需传输原始数据)。分散和分散的方式。 简介GeoMX是基于MXNet的两层参数...

    Android 往Framework中添加新资源的方法详解

    在Android开发中,有时我们需要向框架(Framework)中添加自定义的资源,以便在系统级别使用。本文将详细介绍两种向Android Framework中添加新资源的方法。 首先,我们要理解Android的资源管理机制。...

    444

    关键字:软件/技术/ Framworks技能 [HTML5,CSS3,BOOTSRAP,PYTHON,JAVA,MICROSOFT SQL Server,FLASK,数据分析,机器学习,自然语言处理,FASTAPI,DOCKER,AZURE机器学习服务,GIT,OFFICE365,WEB SCRAPING...

    Reimagined-JS:受JQuery和Angular启发的JS FramWork

    重塑JS 受JQuery和Angular启发的JS FrameWork 必需:安装java-derby和tomcat #如何使用框架 1)复制将整个文件夹粘贴到您... **注意:这并不完全像JQuery和Angular一样,是一个实现这些FramWorks背后的逻辑的项目**

    dotless:Ruby的.NET Port Less CSS lib

    从1.6版开始,支持以下.NET Framworks: .NET Framework 4.5.1 .NET Framework 4.6.1 .NET Framework 4.7 .NET Standard 2.0(.NET Core 2.0,Mono 5.4,.NET Framework 4.6.1+) 如果您的应用程序/库未在任何...

    ProtoBuf-Replication-Prototype

    ProtoBuf-Replication-Prototype二手的Framworks /工具AWS开发工具包杰克斯ProtoBuf 弹簧靴Eclipse&gt; Juno AWS开发工具包-Eclipse-插件安装说明签出git项目将3个文件夹作为eclipse-projects导入eclipse测试指令本地...

    精品资料(2021-2022年收藏)五星国际建筑工程消防安全性能研究开题报告.doc

    美国则通过一系列项目和模型,如FRAMWORKS模型和SFPE防火工程手册,推动了性能化防火设计的发展。日本自20世纪50年代以来,经历了从指令性规范到性能化规范的转变,例如1996年的《建筑基准法》修订。澳大利亚和...

    Getting-Started-With:所有与入门相关的资料的链接,包括库,工具,插件等

    “对于任何项目, “初学者”通常都是最困难的部分,因此,这里有许多指向博客文章,文章的链接,有关所有语言,framworks,模块,插件等入门的视频等。此列表尚处于初期阶段。 如果您要添加一些链接/资源,请随时...

    开放数据工具包

    使用的语言和Framworks 我们使用以下语言作为源代码前端 - HTML5 CSS3 Java脚本React.js 后端- JavaMySQL 文件结构如下1.文件此文件夹包含文档的文本文件。 2.源代码Main.java-这是代码的驱动程序类收集-此文件夹...

    discord-py-framework-original

    不和谐的框架 类似于discord-js框架构建的discord.py框架 PS:这种类型的framworks很少使用,即使在discord.py中也是如此。 这样做只是为了好玩,不建议在正常情况下使用。 该框架是从以下js框架复制的: :

    matlab滑动条代码-ml:机器学习课程中使用的代码

    matlab滑动条码1.简介 这些代码和幻灯片在机器感知和互动小组(MPIG)的一年级研究生的机器学习课程中使用。...Framworks的描述应用 18_深度学习简介 4.在线视频 MPIG的硕士生提供“不受监督的学习”和“深度学习

Global site tag (gtag.js) - Google Analytics