频 道 直 达 - 新闻 - 读书 - 培训 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

你好,Shale!了解Struts框架的全新后代(1)

作者: Brett McLaughlin 出处:MATRIX  (  ) 砖  (  ) 好  评论 ( ) 条  进入论坛
更新时间:2006-11-14 15:58
关 键 词:Java  struts  Shale  框架
阅读提示:Shale到底是什么呢?Brett McLaughlin在本文中将揭开这个Struts后代的面纱。本文是一个由五部分组成的系列中的第一篇文章,在本文中,Brett解释了Shale是什么,Shale与Struts框架的不同之处,以及如何在开发环境中安装和设置它。

Shale不是什么?Shale不是打包好的、有编制好的文档并经过严格测试的产品,也没有附带自动安装程序和优雅的管理界面。那么Shale到底是什么呢?Brett McLaughlin在本文中将揭开这个Struts后代的面纱。本文是一个由五部分组成的系列中的第一篇文章,在本文中,Brett解释了Shale是什么,Shale与Struts框架的不同之处,以及如何在开发环境中安装和设置它。

在过去5年间出现的所有Web框架中,Jakarta Struts是Java™开发人员使用得最多的一种框架,因此其后代的问世是一件值得注意的事情。虽然Shale还不是最流行的框架,也不是最为人熟悉的框架,但是出自名门的背景仍给人以深刻印象。更令人兴奋的是,Shale并不仅仅是Struts的重大升级和新的发行版:它彻底更新了Struts中的很多核心原则,并且加入了Web开发中最新的思想。

在这个由五部分组成的系列中,您将了解到,Shale与Struts的背离是一柄双刃剑。一方面,Shale是经过精心设计的Struts的后代。Shale的创立者综合考虑了Struts的优点和不足,提出可与其前辈媲美的下一代框架。另一方面,正如您很快就可以在这个系列中看到的一样,Shale是一种完全不同于Struts的框架,其中隐含着很多新的开发工作!

Shale不仅仅是Struts的又一个修正版,它已扩展到超出Struts所能达到的高度。它包含Java Web程序设计中一些最重要的、最近的开发成果,包括JSP Standard Tag Library(JSTL)和JavaServer Faces(JSF),并建立在这些开发成果之上。Shale完全应该被看作是与Struts不同的一种框架,在这个系列中,我将还Shale框架以本来面目。在这个月的文章中,将首先对Shale与Struts之间的区别作一个概述,然后带您体验安装Shale并测试安装情况的步骤。最后,我将给出一些思想,令您能进一步参与到Shale项目(它是开放源码的)中,并提供一些相关的信息。整个系列的目的就是要向您展示如何安装Shale以及如何使用Shale构建和开发项目,同时很少涉及Shale的前辈,即Struts框架。

评价Shale

任何新的Web开发框架要想在这个竞争已经很激烈的领域占得一席之地,最好能够经受住巨大压力下的评测。好消息是,Shale独力经受住了细致的考察。但是,坏消息是,由于Shale完全是对Struts重新构建的产物,因此必须重新编写和重新测试您所有基于Struts的代码,以便实现这些代码。您将花同样多的精力来编写一个新的Shale应用程序,或将一个Struts应用程序转换成Shale应用程序,就好像Shale与Struts完全无关一样。

所以接下来我们忍不住要问,为什么还要采用Shale呢?为了得出答案,我首先解释一下Shale的伟大之处——这在很大程度上是由于它的Struts血统,但这又不是惟一的原因——然后讨论Shale之所以没有被发布为Struts框架的重要修正版的两大原因。这样,您就会更好地理解从Shale身上可以得到什么,这将有助于评价使用这种下一代的框架是否值得。

Struts血统

Shale重用了大量的Struts代码基,并声称Struts是它的“父”框架,因此如果您要相信Shale的价值,就得相信Struts的价值。首先,Struts作为第一个真正意义上的Web开发框架,拥有巨大的价值。据Shale和Struts网站报道,第一批代码是在2000年6月提交给Struts CVS存储库的,而Struts 1.0是在2001年末才发布的。当很多开发人员正在艰难地使用Java Server Pages(JSP)和不断变化的servlet规范时,Struts提供了一种易于使用的Model 2方法来构建基于servlet和JSP的Web应用程序。换句话说,Struts使Web开发人员可以开发健壮的Web应用程序,而不必精于日志记录、分布式计算、JDBC、Servlet、JSP、JNDI、RMI和大量其他的API和技术。

接下来,Struts要做的事情就是保持它的强大性:从写出第一批代码开始,Struts连续6年一直是最流行的Web开发框架之一。至今它仍然是人们口中的谈资,笔下的素材,使用得不比任何竞争对手少。由于Struts是如此流行,如此长寿,如今它已经有丰富的功能,有良好的文档,被广泛地支持,并且易于使用,在它上面进行开发和管理也很容易。数千名开发人员对Struts邮件列表上的问题作出答复,数万名开发人员试用Struts并报告问题,这使得这些问题很容易得到修复。

最后,Struts是不断发展的。很多框架一开始比较强大,然后就停滞不前(商业产品和开放源码项目都存在这样的现象),而Struts总是不断提供新的特性。当您下载Struts时,核心发行版中还包含一个健壮的确认引擎(validation engine),并且Struts已经与JavaServer Faces集成,拥有广泛的标记库和一个不断发展的Model 2架构,其中引入了在分布式n-层应用程序领域中最新的思想。而且告诉您,Struts还紧跟程序设计中出现的新模式,例如IoC(Inversion of Control)。Struts与WebWork和Spring框架自然地集成,后两者都是具有最佳血统的、为使用Web开发中的新方法提供入口的框架。

简而言之,您很难发现在Struts中有做不成或不支持的事。所以显然我们就要问,为什么Shale要另起炉灶呢?为什么Shale没有成为Struts的下一个版本呢?这有两个主要原因:一个原因与鲜为人知的新软件发行惯例有关,另一个原因则与众所周知的Struts根基中的弱点有关。让我们分别来考虑这两个原因。

发行版辨析

要理解Shale为什么没有成为Struts的一个新的发行版,首先需要理解关于新软件发行的一两件事。对于一个新的软件发行版,大多数用户首先看的是一组新的特性。版本升级的幅度越大,用户对新特性的期待就越大。因此,如果软件版本从2.1升级到2.2,就应该有一些新的特性,但是如果从版本2.2升级到版本3.0,那么就应该有很多新特性。这就是为什么当一些大型产品(例如Microsoft Word)或操作系统(例如Windows和Mac OS X)出了新版本的时候,用户总是对它们很挑剔。对于每一个新的发行版,用户总是期待有更多新的特性。

由于大多数用户一味地将注意力放在特性上,他们没有意识到向后兼容性(backward compatibility)才是真正最有价值的东西。虽然每个人都希望Excel中加入新的、很好的选项,希望Panther与iTunes有更好的集成,希望Gnome中对XUL有更好的支持,但是如果那些用户现有的程序和文件在新版本下突然不能运行的话,相信他们会尖叫,“这是血腥谋杀”。在这种情况下,新特性毫无价值。

对于Struts也一样。一般来说,Struts的每个新版本都增加了新的特性,同时保持了与之前版本的向后兼容性。此外,新版本的Struts还需要支持旧版本的Java平台和Servlet规范,因为已安装的旧的Struts要在这些平台上运行。这两个需求——向后兼容性和对旧版本的Java API的支持——对于Shale来说已经是一个严重的约束。尤其是,至少就Java平台而言,JSF API已经成为Web的中心组件。虽然Struts也支持JSF,但是Shale却是完全依赖于JSF的——这对于需要维持向后兼容性的Struts来说简直是不可能的。

最后,派生出一个像Shale这样的新项目,同时继续在Struts这种已有的项目上进行开发活动,这样做具有无与伦比的优势。如果Struts只是简单地升级到2.0(或者3.0或4.0),并在不考虑向后兼容性的情况下实现Shale,那么对于很多人来说,由此造成的移植工作将是令人痛苦的,可能有人干脆连Struts也不再使用了。即使仍然维护更旧的代码基,也难于吸引开发人员花时间来修复bug,他们也不愿意为一个“遭到废弃”的或者“旧”版本的软件增加特性。

由于这些原因,让Shale成为一个全新的项目,使其建立在一个新的代码基之上,是很有意义的。


共6页: 1 [2] [3] [4] [5] [6] 下一页
【内容导航】
发表
查看
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
·Java基础教程 (查看52371次)
·UML类图详解 (查看46839次)
·Java编程开发手册 (查看25118次)
·UML统一建模语言 (查看24099次)
·C#技术开发指南 (查看22406次)
·Java编程开发手册 (1195个砖)
·Java基础教程 (429个砖)
·C#技术开发指南 (304个砖)
·PB开发教程 (220个砖)
·.NET开发手册 (217个砖)
·Java编程开发手册 (653个好)
·Java基础教程 (569个好)
·.NET开发手册 (251个好)
·PB开发教程 (209个好)
·Delphi开发技术手册 (174个好)
订阅技术快讯
电子杂志下载
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
名称:Vista精品应用黄皮书
简介:《Vista精品应用黄皮书》囊括了Vista的各方面内容。此次的精简版,是将里面的内容做了提取,便于用户下载和使用。内容包含了各种Vista的安装与实施、技巧与解析以及各种Vista相关学习文档和相关软件的安全下载。该电子书是了解和应用Vista人员必备的工具手册,并且也是第一本
名称:2006中国IT论坛精品集合
简介:本书由“51CTO论坛推广联盟”制作完成。书中所有内容均来自各联盟成员的论坛(网站)。制作本书的目的是为了集中大家的优势资源,将更多更精彩的内容带给广大技术爱好者。本书是联盟成立以来制作的第一本书。
关键字阅读
频道精选
主编信箱 热线:010-66476606 告诉我们您想看的:专题 文章
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 意见反馈 | 网站地图
Copyright©2005-2007 51CTO.COM 版权所有