欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

细说框架风云 JSF能否拯救WEB江湖(1)(3)

来源: javaer 分享于  点击 19809 次 点评:72

ASP.Net的成功说明了什么?

ASP.Net是一种面向组件,基于事件驱动模型的WEB开发技术。在基于请求驱动模型的WEB开发技术中(如JSP和ASP),程序代码需要混合在HTML标签中。而事件驱动模型与请求驱动模型相比,在一个表单上的组件通过激活应用程序的事件来响应用户的行动。开发人员通过为组件的相关事件编写相应的程序代码来实现相关的逻辑。事件驱动模型的WEB开发技术提供了一种更为直观的编程模式,使得WEB开发就像编写一个VB或Java Swing桌面应用程序一样。用鼠标把相应的控件拖到页面视图,然后再为控件编写相应的事件代码来实现业务逻辑。这样,就把WEB前端开发变成了运用高级语言进行程序开发(在ASP.NET中采用VB..NET或C#)。面向组件和基于事件驱动模型使得WEB开发真正的回归到了传统的开发方式。大大的简化了WEB项目开发的复杂度。

ASP.NET提供了丰富有WEB前端组件。因为ASP.Net是面向组件的,和基于事件的。所以ASP.Net必须提供丰富的组件,并为这些组件定义相关的事件。让开发人员去扩展事件代码来完成逻辑功能。ASP.NET 一开始就提供最实用的WEB组件,如DataGrid用于数据显示,开发人员只需要通过设置属性就可以实现自定义分页显示。而在以前的ASP或JSP则需要编写大量的程序代码才能完成。到ASP.NET 2.0时,微软更是提供了近150多个WEB组件,如在WEB开发中经常用到的树形菜单组件,下拉菜单组件,文件上传组件等。ASP.NET通过提供这些丰富而功能强大的组件,使得WEB应用开发就像桌面应开发一样简单。

正因为ASP.Net带来了一种全新的开发模式,使得以往复杂的WEB应用开发变得简单,让WEB应用更易于发布,并通过微软的商业运作,ASP.NET一扫ASP的阴霏,迅速的占据了大量企业市场份额。
ASP.NET的成功对我们有什么启示呢?可以肯定面向组件、基于事件驱动模型是未来WEB开发技术的发展方向。ASP,JSP等基于请求驱动式的WEB技术必将退出历史的舞台。

因为由厂商来提供丰富而实用的组件,大大简化WEB前端的开发量和开发难度。把复杂的问题交由厂商或开源组织去解决。基于事件驱动模型才是真正的把UI人员和业务程序员分离开来。只有把程序代码与HTML标记分离,才能真正做到UI设计者与程序员分离。

面向组件,基于事件驱动的WEB框架要取得成功必须提供大量实用的WEB组件。只有提供了丰富的,功能强大的WEB组件,开发人员才能从WEB开发中解脱出来。否则如果每个用户都需要去实现自己的组件库,那样的工作量也是非常庞大的。特别是针对一些小型用户。必须要有优秀的IDE工具配套支持,如果没有VS 2003或VS2005开发工具,而是通过简单的文本编辑工具来进行ASP.Net开发,很难想像ASP.Net会成功。要真正的实现像VB或Java Swing编写桌面应用程序那样来开发WEB应用程序,优秀的IDE工具是必不可少的。允许你把组件从组件面板拖放到页面上并通过属性编辑器来定义它的外观和行为,直接为组件的相关事件编写事件代码。

JSF及它的未来

Java Server Faces 简称JSF,是一种面向组件和事件驱动模型的WEB开发技术。JSF的诞生还要追溯到2001年。在2001年5月,Sun制定了一个用户界面框架的规范JSR#127.

而JSF 规范的1.0到2004年3月才得以面世。直到JAVA EE 5的发布,JSF推出1.2版本并作为JAVA EE 5的一部分同时发布。历经5年的风雨,JSF现在成为了JAVA企业应用规范的一部份。

我在上节讨论ASP.NET的成功时,已经介绍了面向组件,基于事件驱动模型的WEB开发技术的优势。并从ASP.NET的成功可以看出面向组件和基于事件驱动模型是未来WEB技术的发展方向。

从技术上来看JSF是非常先进的,提供了很多复杂的组件支持类似Spring的依赖注入功能。页面流程控制也通过Faces-config.XML来配置,而不是写死在代码里。这有点与Struts类似。同时像SUN,Oracle,Boland,IBM等公司都为JSF提供了开发环境,Sun的Java Studio Creator2 和Oracle的Oralce Jdeveloper 10g都是免费的JSF开发工具,像Eclipse也有相应的插件提供对JSF的支持。JSF技术也同时得到了许多厂商的支持,如Sun的JSF WEB UI,IBM的JSF extension,Oracle的ADF Faces.还有许多开源项目如My Faces都提供了对JSF的支持和扩展。

这样看来,JSF成为了JAVA EE的标准,又得到了众多厂商和组织的支持,那么JSF应该是前途一片光明啦?

何以见得,JSF错过了它的最好发展时期。Sun其实很早之前就想简化JSP的开发,用一种新的技术来取代JSP。从而简化整个WEB层的开发。于是在2001年就开始制定了JSF的规范,但是由于SUN的官僚作风及商业推广的失败,JSF一直未能走向前台。如果SUN能在2002年或2003年,在JSP最红火的时候全力推出JSF。取名为JSP 2.0或JSP 3.0。而不是一意孤行的取名为JSF,那么现在JAVA的WEB开发早已经是面向组件和基于事件驱动了。

成熟和稳定方面

JSP的确是一种非常成熟和稳定的技术,就是因为JSP太成熟了,所以才导致了JSF的发展缓慢。世界上有太多采用JSP技术的成功案例,SUN非要把JSF变成一个新生儿,谁也不愿意去冒这个风险。虽然采用JSP技术进行WEB开发是复杂的,而且开发周期要长,但是它是稳定并且成熟的WEB技术。JSP已经占据了大量的市场份额,如果JSF要想取代JSP,那么JSF就必须有成功的案例来证明JSF能像JSP那样可靠和稳定。

厂商的支持方面

厂商对JSF的支持远远不够。从JSF1.0,到JSF1.2的发布并成为JAVA EE的标准,经历了近五年的时间。各个厂商一直对JSF持观望的态度,其实主要还是取决于SUN。如果SUN在早期就把JSF作为JAVA EE的标准,那么现在JSF已经是遍地开花了。JSF的命运从一开始就像EJB,在实验室时呆了5年之久,要把它定制成一个大而全的规范是不可能的,任何技术都应该听取开发人员的意见,EJB的失败已经充分的证明了在办公室写出的规范并不是开发人员所需要的。

虽然IBM,Oracle等厂商现在都已经提供了对JSF的支持,但是他们提供的JSF组件库都非常有限,而且有些组件是已经过时的组件。同ASP.NET 2.0相比,各厂商对JSF的支持远远不够,这又怎么能够吸引开发者和企业选择JSF呢?同时,ASP.NET 2.0定义的页面的生命周期要比JSF灵活及有用得多。而JSF的生命周期则显得生硬和呆板。

我们上节说到ASP.NET的成功离不开VS 2003和VS 2005这些优秀的IDE开发工具的支持。虽然有Sun的Java Studio Creator2 和Oracle的Oralce Jdeveloper 10g免费支持JSF开发,但它们都不是最主流的JAVA 企业应用开发工具。而像目前最主流的ECLIPSE却没有很好的支持JSF的开源免费插件。在开源的大旗下,恐怕很少有人会再去选择收费的开发工具吧。WEB开发只是JAVA企业应用开发的一部份,而不是全部。希望哪一天能见到Sun或IBM这样的商业公司来为ECLIPSE这些主流IDE开发支持JSF的插件。其实世面上还有一些专门针对JSF的开发工具,但是我们要知道,JSF仅仅是JAVA企业应用开发的一部份,我们更需要一个成熟的集成开发环境,如重构,单元测试,甚至整个项目的生命周期管理。我们需要的是在一个主流的成熟的集成开发环境上提供对JSF的支持,而不是那些的专门针对JSF的单一编辑工具。

Sun商业策略方面

SUN的商业推广策略也是JSF能否成功的关键。SUN不缺技术,但是缺商业推广。JSF迟迟未能成为JAVA EE的标准,延误了JSF的推广。把JSF取名为JSP 3.0都可能对JSF发展更为有利。很多时机被SUN一再错过了,才让JSF在今天显得如此的尴尬。JSF社区的建设及该如何吸引开发人员和企业转向JSF?SUN的商业推广策略是至关重要的。

天将降大任于斯JSF也!虽然WEB开发技术注定要进入面向组件和基于事件驱动的时代, JSF 能否拯救WEB的江湖呢?让我们共同拭目以待吧!

  1. 简谈JSF与Struts的功能比较
  2. 微软最新ASP.NET MVC框架Beta版技术细节
  3. Spring和Struts整合的三种方式
  4. J2EE框架入门 对Spring初学者的学习建议


相关栏目:

用户点评