软件开发模式经历了C/S到B/S的演变。虽然B/S架构具备零部署,易升级,操作简便等巨大优势,但是随着企业及软件业务逻辑越来越复杂,原先采用HTML/JavaScript/CSS来作为显示技术显得愈发的捉襟见肘。与此同时,Java社区中RIA(Rich Internet Application)地解决方案已经是百家争鸣。
1.XMLHTTP+JavaScript
XMLHTTP IE浏览器内置的ActiveX控件,可以实现再不提交页面的情况下和服务器进行HTTP协议通讯,此外Mozilla/FireFox浏览器也已经通过自己的方式支持XMLHTTP技术了。不过,XMLHTTP广泛应用的主要障碍在于需要编写非常复杂的JavaScript来驱动XMLHTTP和服务器端交互,而JavaScript复杂度的上升会带来很多意想不到且难于控制的浏览器运行期错误和兼容性问题。
2.传统的Java Applet/Java Web Start
Java Applet具有强大的交互功能,Java Web Start也是许多大公司部署客户端Java应用的首选,优点在于利用了Java技术的强大能力,缺点是Java图形技术的繁琐和低效率。
3.XUL类的RIA
XUL(XML User Interface Language)是Mozilla的首创,真正实现了界面描述语言和事件响应代码的分离,即以XML来描述图形用户界面,以编程语言来响应事件,处理用户交互和服务器通讯。XUL的思想近来被广泛地接受并且演变出来非常多的XUL架构的RIA技术。
1) Microsoft XAML
使用XML来描述Windows操作系统的界面组件,以.net平台来运行事件响应程序,事件响应通过Web Services和服务器端通讯,使得能够跨平台。
2)Flex/Laszlo
使用XML来描述Flash的界面组件,以ActionScript/JavaScript来编写事件响应程序,在初次运行期编译为Flash作为客户端RIA,Flex同时支持.net和J2EE服务器端技术,Laszlo是一个开源的项目,运行在Java AppServer上的容器。IBM提供了Laszlo的Eclipse插件,可以通过拖拽的方式来设计Laszlo界面
3)JDNC/Thinlet
JDNC是Sun力推的XUL架构技术,以XML来描述Swing界面,以Java来编写事件响应代码。对于采用J2EE技术的软件项目来说,JDNC是一个非常好的选择。Thinlet是非常有创意的技术,只使用AWT,编写出21个常用的图形组件,具备良好的浏览器兼容性,非常少的内存占用,快速的启动速度,界面也比较美观,学习和掌握也很容易。Thinlet也比用在J2ME技术中,编写手机内运行的图形应用程序。
找到的一个比较表,比较几个界面设计语言,Macromedia的 Flex (MXML)和微软的XAML以及 Mozilla 的XUL。XUL全部为绿色,就不标出了。
不过虽然XAML只能在lognhorn上用,现在也有好多公司推出现就可以编写xaml的工具。如xamlon。
另外设计表单的标准还有W3C的Xform。
MXML |
XAML |
XUL |
|
|
Here today |
2006? 2007? |
Here today and battle tested. |
Runs anywhere Flash Player 7 runs |
Runs only on Longhorn |
Runs on any platform. Runtime smaller than .Net. |
Server required |
Server not required |
Server Not Required |
Uses ActionScript 2.0 |
Uses .NET languages |
Javascript, Python, C++ |
XPath support: no |
XPath support: yes |
XPath support: yes |
CSS support: limited |
CSS support: no |
CSS Support: excellent. |
-----
另外像MXML基於flash的技術還有laszlo,下面有段話可以具體了解這些技術是否可以被您的項目採用
下面是一段关于这些技术的比较详细的讨论:
推荐javaeye论坛上一贴,对XUL 系技术非常不错的分析和讨论.
详见:
http://forum.javaeye.com/viewtopic.php?t=8655&postdays=0&postorder=asc&start=0
桶子们在热烈的讨论 UI 技术,这是好事啊。
俺来添加,鉴于大家对 XUL 系列不是特别了解,我就谈谈这些技术的运作方式。
观点:目前的 MozillaXUL/Thinlet/SwiXML/JDNC/XAML/Flex/Laszlo... 在我看来,都是一个套路。
先别急,且听俺慢慢说来。
XUL 的核心思想是“用XML来表达界面”,是 Mozilla 的创新, Mozilla 浏览器本身就是一个经典的 XUL 应用。有兴趣的可以研究 Mozilla\Chrome\Browser.jar 中的东西。这的确是个伟大的发明,以至于,现在其他公司纷纷效仿,出现了N个衍生技术。
Mozilla 的内部,有一个 XRE ,即 XUL Runtime Environment,这个 XRE 解析运行所有的 XUL 应用,包括:Browser本身和各种工具,如 LiveHttpHeader, XUL Console 等等。一个 XUL 文件被 Parser 解析,将其中引用的 Widgets 组装,通过 Render 显示给用户,当发生事件时,通过 ScriptEngine 执行相应事件的脚本代码。可惜的是, Mozilla 的这个宝贝似乎“养在深闺人未识”,罕见有哪个项目使用的。但它的思想,衍生出了N多的技术。
Thinlet/SwiXML/JDNC: Java 的 XRE。以 Applet/Swing 来 Render 界面,发生事件时,调用用户自己的事件处理程序(java 程序)。
XAML: Longhorn 内置 Native 的 XRE。以 Windows 的界面组件来 Render 界面,发生事件时,调用用户自己的事件处理程序(.NET 的程序)。
Flex/Laszlo: 基于 Swf 的 XRE。先由 Java 的 Interpreter 将 MXML/LZX 源文件生成为 Swf 文件,该 Swf 可能包含界面构造信息(XUL?)、事件脚本(转换为ActionScript)和经过裁减的WidgetsLib(XUL中用到的widgets)。用 Flash 的界面组件来 Render 界面,发生事件时,调用用户的事件处理程序(用户的代码转换成的ActionScript程序)。
大胆预测一下:
这些技术中,最具竞争力的是 Longhorn/XAML ,它具备平台底层的支持(OS内置),可以想象性能和能力都要比其他要出色。但,这也是弱点,如果没有一个合理可靠的安全机制做保证,它也有可能因为安全问题而败北。
Thinlet/SwiXML已是成熟技术,它们将在各自领域继续发挥作用,但,Sun 目前正在立推 JDNC ,预计这两个产品将不会有更大的作为。而 Sun 的 JDNC 是很有野心的计划,在非 Windows 平台它将可能是唯一的通用标准(如果MozillaXUL的推广仍无起色)。但在 XAML 蓄势待发的情形下,它有可能和目前的 Applet/Swing 一样,处于劣势。
Flex/Laszlo在浏览器领域肯定会占据一席之地,因为它们目前已经比较成熟。而,彼此的竞争会带来更大的利益。Laszlo 现在已经是 OpenSource 的了,走 CPL 协议。Flex 也被迫推出了非商业客户的免费计划。如果 Flex/Laszlo 在 XAML 推出之前能有 Killer 级的应用,可能会形成事实上的 RCP 标准从而取得优势也未可知。
那么,下一个界面技术对我们的开发有什么影响呢?或者,那时的应用会是怎样的?
以 XAML 为例,应用的客户端可能就是一个 XAML 的文件。这个文件可以象现在 JavaWebStart 的 JNLP 一样,从网上下载,本地缓存。运行时,XAML 被运行环境打开,如果需要,Client 从远端的 WebService 上获取功能支持。这意味着基于 XAML 的 Web 应用可以完全脱离浏览器,但仍具备 Web 技术的优势。不依赖于浏览器的界面将有更丰富的表示形式。而 JDNC 如果和 JavaWebStart 结合,则意味着 Java 标准的 RCP 平台(不过几乎可以肯定性能会不如 M$),对于非 Windows 平台意义重大。
可以看到,关键业务逻辑被集中于服务器。依据 SUN 和 M$ 的和解协议,以 webservice/xml 方式提供的服务将具备互操作性(不排除 M$ 违反协议推独立标准的可能)。也就是说,只要遵循 WebService 的标准,任何一种 Client UI 技术都将被支持。对我们而言,这意味着 UI 层和 Business 层的进一步分离。也就是更多的服务器端开发(WithOut HTML)。
分享到:
相关推荐
随着带宽增加和技术进步,开发者开始寻求更流畅、响应更快的Web应用模式,这就是RIA的诞生。Flex API在这样的背景下应运而生,它为ArcGIS Server的Web应用开发提供了高效、动态的交互界面。 在ArcGIS RIA开发实践中...
ria应用开发是现代Web开发中一个重要的领域,旨在提供更加丰富、交互性更强的用户体验。本课程专为对RIA技术感兴趣的开发者设计,通过12个精心策划的课时,将引领你深入探索这一技术的精髓。 **jQuery学习课程** ...
《Flash MX 2004 ActionScript 2.0 与 RIA 应用程序开发》这本书深入探讨了使用Adobe Flash MX 2004进行富互联网应用(Rich Internet Application,简称RIA)开发的核心技术——ActionScript 2.0。ActionScript是...
《Flex4:开发RIA应用程序》是一门针对Adobe Flex4技术的专业培训课程。该课程旨在帮助开发者掌握使用Flex4来构建高质量、交互性强的RIA(Rich Internet Applications,富互联网应用)的方法与技巧。通过系统的学习...
- 随着RIA技术的发展,各种不同的技术框架正在逐渐融合。例如,AJAX、Flex和Silverlight等技术正在互相借鉴,共同推动RIA技术的进步。 - RCA技术也在不断发展,如Adobe AIR、Microsoft Silverlight等工具的出现,...
【DWZ-RIA-1.2Final】是一个专注于富互联网应用(Rich Internet Application,简称RIA)开发的国产前端框架,其主要目标是提供一套高效、易用、功能丰富的JavaScript工具集,帮助开发者快速构建交互性强、用户体验...
- **JavaFX认知**:JavaFX是一个由Java技术构建的平台,它旨在简化富互联网应用程序(RIA)的创建与部署过程,这些应用程序能够跨多个平台运行并且具有统一的表现。JavaFX平台的核心优势在于它结合了高性能的媒体及...
- 实战:参与开源项目或构建自己的RIA应用,实践是最好的老师。 6. **未来发展**: - PWA(Progressive Web App):RIA的未来方向之一,它让Web应用具备类似原生应用的特性,如离线访问、推送通知等。 - ...
### Flex 4:开发RIA应用程序 #### 一、Flex与RIA概述 - **Flex简介**: - Flex是一个开源框架,用于构建高质量的客户端应用程序,这些应用程序可以跨浏览器、操作系统和设备流畅运行。 - Flex最初由Macromedia...
本教程旨在帮助开发者深入理解和掌握 Flex 3 技术,紧跟 RIA 发展的潮流。 一、Flex 3 概述 Flex 3 是基于 ActionScript 3.0 的开发环境,它提供了图形用户界面(GUI)组件库,用于构建跨浏览器、跨平台的RIA。...
- **教材价值**:作为Adobe官方提供的中文教材,《Flex 4:开发RIA应用程序》不仅适合准备参加技术认证考试的学习者,也适用于希望通过实践案例来深入理解Flex开发技术的专业人士。 #### 二、Adobe Flash Platform...
在本实验中,我们将专注于两个关键的JavaScript插件:jQuery UI的Datepicker和jQuery Validation,它们在RIA应用开发中用于表单处理和用户输入验证。** **1. jQuery UI Datepicker 插件** jQuery UI Datepicker 是...
《Flash MX 2004 ActionScript 2.0 与 RIA...总之,《Flash MX 2004 ActionScript 2.0 与 RIA 应用程序开发》光盘提供了一个全面的学习平台,让你能够掌握这个领域的核心技术和实践技巧,进而成为一名出色的RIA开发者。
"dwz" 是框架的简称,"dwz_demo" 和 "dwz-demo" 可能指的是框架的演示或示例代码,"dwz-ria" 强调了其与RIA的关联,而 "ria" 是Rich Internet Application的缩写,代表了这种类型的软件应用。 **压缩包子文件:** ...
1. **复习教材相关内容**:回顾HTML表格的基本结构、JavaScript基础以及Ajax技术,这些都是实现RIA应用的基础。 2. **预习本次实验**:了解DataTables插件的API,学习如何配置和调用其功能。 **实验内容** 1. **...
在本实例中,我们将深入探讨如何将Silverlight与WCF结合,构建一个强大的RIA应用。 首先,我们要理解Silverlight的角色。Silverlight作为一个运行于浏览器上的插件,它可以提供类似于桌面应用的用户体验,支持...