【IT168分析评论】
前言:
最近JavaServer Face发布的版本已经得到了许多开发者的强有力的支持,同时也得到了强有力的IDE的集成,JSF的迅速崛起之势不禁让人感到技术变化之快,对目前来讲,将JSF开发与微软的ASP.Net/Visual Studio开发相比较是不是为时过早呢?
为了比较方便,我们首先来看看微软提供两项关键技术即:ASP.Net 2.0和他的集成开发环境Visual Studio 2005,接下来比较在JSF核心技术中的组件技术和主要的JSF开发环境.(虽然我不是一个.Net开发专家,但是我所知道的能够有效的将.Net和JSF进行比较)
微软提供的开发功能
首先,来介绍一下微软的开发技术,大家都知道, 对Visual Studio .Net 和ASP来说发布的最大的版本就是Visual Studio 2005 (Whidbey)和ASP.Net 2.0了,下面是二者的一些主要的特性.
ASP.Net 2.0 :
新的ASP.Net 2.0组件,或者在微软中叫做控件,设计的更加强大能够减少开发者的代码量,一个主要的例子就是ASP.Net 1.x中Datagrid控件的变化,在2.0中Gridview取代了Datagrid,2.0的Gridview与Visual Studio开发环境紧密的结合在一起并且提供了非常方便的帮助向导叫"Smart Tasks",这就使从可视化的编辑器中快速的进行可视化控件的定制,因此,Gridview能够迅速的在屏幕上定制,设置列为静态的或者是动态的,设置排序和分页等.开发者也可以使用帮助向导来迅速的配置组件的外观为一个整体,从而没有必要为控件输入许多个性化的属性来进行设置.
一般来讲, Gridview和其他2.0控件一起能够提高生产效率,减少手动编写代码量.这些都是利用了Visual Studio的Smart Tasks的编辑器来进行更加容易的定制.
Visual Studio 2005的开发环境:

就像上面提到的Gridview的例子, Visual Studio 2005编辑器提供了完整的ASP.Net控件的交互,这样就提高了控件本身的可用性.下面我们来看看Visual Studio 2005开发环境的主要特性:
【IT168分析评论】
Inituitive Rendering:
Visual Studio在可视化编辑器中提供了ASP控件的直接的可视化透视图,如果你选择控件,你可以通过使用一般的属性编辑窗口来编辑它的属性,或者使用漂亮的”Smart Tasks”弹出式的为每个控件定制的编辑器.

“Smart Tasks”:
“Smart Tasks”是一个非常方便的为每个Asp.Net控件定制的简单来使用的弹出属性编辑器.它允许定制复杂控件的配置,例如,可以方便的为Gridview控件定义属性,像datasource,数据列的显示,编辑,排序,分页等,甚至可以定义控件本身的显示样式,如交叉行的颜色,主题的颜色等.

Easy Databinding:
数据绑定可以通过使用”Smart Tasks”弹出属性编辑器并且指定一个数据源或者直接从Servers Explorer上拖拉一个数据对象到界面上来完成.

Easy to use page templating:
Visual Studio的"Master Page"技术可以非常容易的创建一个”master”页来充当其他页的页面模板, Visual Studio提供了一个简单的checkbox方法来决定是否从一个master页的类库中创建一个新的页面.可视化编辑器根据master页通过在页面中提供编辑区域来保持master页的内容的完整性.

Integrated Security:
Visual Studio 和ASP.Net提供了一种简单的机制来安全访问Web应用程序,通过使用登录控件,可以迅速的创建一个登录界面,并且加入.Net的安全技术.

Built-in Mobile Development:
Visual Studio 2005为与微软相关的移动设备提供了丰富的移动开发工具箱.
Application Themes:
提供了高标准的外表和视觉效果.
【IT168分析评论】
JavaServer Faces提供的开发功能:
Intuitive rendering:
首先让我们来看看JSF IDE提供的JSF UI组件(与ASP控件相同的)的直接的视觉效果.在几个嵌入JSF的IDE像Sun的Java Studio Creator, Oracle的 JDeveloper 10.1.3, IBM的WSAD 5.1.2也包括最近新出的M7's NitroX JSF IDE,都可以工作在一个可视化的界面中,并且在运行时看到JSF UI组件的透视图状态.所有的这些工具都提供了JSF可视化编辑.
下面时一些JSF IDE和他们的可视化JSF编辑器:

Oracle JDeveloper 10.1.3's JSF enabled Visual JSP Editor

Sun Java Studio Creator's JSF Visual Editor

IBM Websphere Application Developer's JSF enabled JSP Visual editor
【IT168分析评论】
方便的属性编辑器(像”Smart Tasks”)
使用更加方便的编辑器类似微软的”smart tasks”编辑器来编辑复杂组件的属性像JSF数据表格确实在JSF IDE中存在不同程度的差异.例如Sun的 Studio Creator可以通过在可视化编辑器上右键DataTable来编辑表格的布局,IBM也为他的DataTable的自定义版本提供了一个更好的属性编辑器: HX:datagrid, Oracle JDeveloper也通过DataTable向导提供了访问DataTable组件的属性的功能.
然而,由于IDE之间的不同,这种特点通常存在不同的JSF IDE,但是每一个又有自己的使用方法,由于他们的不一致的方法和UI,理想的情况下,应该有一个单一的向导标准来在一个可视化编辑器中访问JSF组件.

JDeveloper 10.1.3's Reentrant DataTable Wizard

IBM WSAD's Datagrid Property Editor

Sun Creator Studio's Table Layout Wizard for dataTables
虽然不同的JSF编辑器提供了更加高级属性编辑器,,但微软提供了单一的,一致的向导.
Easy Databinding
JSF IDE提供了更加方便的访问数据绑定JSF UI组件的功能了吗?
当然,例如, Sun的 Java Studio Creator提供了能够将一个绑定数据的UI组件拖到页面上,然后拖一个数据项如表格在组件上,并且设置组件的数据属性的功能.IBM也提供了向导来支持这种功能. Oracle JDeveloper也提供了拖拽组件像DataTable的功能. Oracle 产品JDeveloper今年版本将提供高级的数据绑定功能,可以从数据控件板上拖拽item,创建不同的先前绑定的JSF UI组件.
虽然.Net的数据绑定是强大的,对于微软的SQL Server支持的相当好,但对其他各种数据库/数据源支持并不是那么好,而JSF IDE对各种与Java兼容的数据库/数据源提供了更强大的数据绑定功能,因此,JSF IDE可以与微软相媲美.
【IT168分析评论】
Easy Page Templating :
虽然各种JSF IDE提供了页面模板,例如IBM页面模板,然而没有统一的方式来创建页面模板比如怎么使用微软的”Master Page”技术,在页面模板方面,将来的JSF IDE将会提供更好的支持,比如JDeveloper.通常,真正强大的是被JCP核准的Web页面模板的标准的方法.这种方式所有的JSF IDE能够实现一个单一的Web页面模板策略.
Integrated Security:
微软的”Login”控件和”smart tasks”向导可以为Web应用程序创建更加安全的机制,这并不是说不可以在JSF IDE中创建安全性,只是需多做一点工作来构造安全的访问策略.
Built in Mobile Development:
微软提供一个强有力的开发方案,虽然仅仅支持微软的PDA技术,在Visual Studio也提供了PalmOs开发的插件,但是很小和独立,不值得一提,JSF IDE并没有这方面的功能,Oracle产品 JDeveloper的版本提供了JSF PDA开发方案,通过使用可视化编辑器和ADF Faces, Oracle的 ADF Faces JSF组件与内置的对PDA支持一起和JDeveloper产品的版本提供了一个PDA友好的可视化的设计器.
虽然MS对PDA开发提供了强大的技术支持,但它缺少对非微软PDA开发的支持.另一方面, Oracle's ADF Faces对不同的设备类型提供了内置的对PDA支持,但是在JDeveloper 10.1.3版本以前,可视化编辑器的集成并不支持.
Application Themes (Skins):
应用程序的外观和主题设置在JSF IDE中通过使用CSS和图片来实现,然而对于JSF或者J2EE的应用程序外观来说并没有一个标准,JSF通过使用"pluggable rendering"这种核心技术来实现应用程序的外观效果,每个UI组件根据客户端的要求来呈现不同的样式. Oracle的 UIX技术提供了这样的功能,即外观能够被创建并且与用户接口组件相关,在运行时可以应用/改变.
总结:
虽然微软与JSF IDE在基本的开发特性上不相上下,但是,新的JSF IDE将会对微软的技术提出更大的挑战,直到今天为止,JSF IDE与微软的可视化开发环境能够竞争的相当好,虽然JSF在微软的堆栈方面不能提供所有的特性,但这也只是时间的问题, 在J2EE社区中将会提供更加强大的驱动力来推进JSF IDE的发展,在将来有可能超过微软,这很值得我们期待.