随着互联网的快速发展,人们对网络应用的兴趣逐步在提高,迫切需要能够构造一个“富客户端”:能够用HTML能实现的接口更加健壮、反应更加灵敏和更具有令人感兴趣的可视化特性,而且能够在互联网上以一种象使用Web一样简单的方式来部署富客户端程序,而且能够随着系统的升级而享用更多便捷的高效的体验。
而这,是一个趋势,不久的将来必定要成为主流。
当前,基于HTML的应用程序之所以变得流行是由于应用系统的部署成本低、结构简单,且HTML易于学习和使用。很多用户和开发人员都乐于放弃由桌面计算机带来的用户界面改进,来实现对新数据和应用系统的快速访问。与丧失一些重要的UI功能相比,基于Web的方式所带来的好处要更大得多。
但是,随着用户需求的提升,在某些互联网应用方面,复杂的应用可能需要多次提取网页来完成一个事务处理。这往往会导致交互响应速度慢,让人无法接受。甚至有可能需要多次操作才能得到用户最终结果。之所以如此,用户对交互体验的需求上升才导致AJAX(Asynchronous JavaScript And XML)的迅速流行。但JavaScript脚本引擎的脆弱性必将注定这只是RIA的一个中间过渡方式。
在一个典型的RIA应用体系结构(如下图)中,XML通常被用作数据传输的格式,有时也被用来描述窗体的布局。客户端可以保持与数据源的连接,这样服务器能够实时地对客户端数据进行更新。
用于富客户端(RIA)的常用技术有:
1.JavaScript/Ajax
2.JAVA(这里指的是Applet或者是Java的应用程序)
3.Flash/Flex
4.XUL,等等。
而我们该如何选择RIA开发环境呢?
而基于以上开发技术实现RIA的应用的解决方案有上百种之多,通常情况下我们很容易失去重点并判定错误。
Marc Domenig 给出了他的答案(Rich Internet Applications and AJAX - Selecting the best product)。
如下是他对选择RIA还是Ajax的判定图。
首先需要对自己将要开发的项目回答几个问题,这样才能做出正确的选择。
1)您将开发的项目是简单的用户界面需求?
如果您回答是,那没有选择,HTML将是最快捷便利的手段。简单的HTML也能够完成绝大多数用户的交互需求。
但如果想提供用户UI体验,您需要考虑下如下RIA技术特性:
局部屏幕更新;
异步通讯;
服务器端推送数据;
支持直接操作的部件;
多窗口应用;
模式对话框;
菜单;
键盘导航,等等。
RIA在Web应用体系结构中提供富客户端操作体验,其目标是整合桌面客户端和WEB应用程序的优势,而常用的开发技术就是如上提到的Java,JavaScript,Flash/Flex。该如何选择呢?这就需要您回答第二个问题了。
2)全面应用性?工业级应用?还是漂亮人性化的用户操作体验?
AJAX既不是一个产品也不是一项新技术,但它确实是RIA体系中的一个新的分支。它是基于JavaScript,XML和其他技术的一项整合操作。
是否采用Ajax需要考虑如下几个问题:
是否需要面对市场上繁乱复杂的浏览器和操作系统;
AJAX所封装和支持的UI组件是否能够满足您的系统需求;
对系统操作的健壮性需求;(如果是高要求,不建议使用)。
如果您开发的系统需要的是工业级应用需求,Marc Domenig 的答案是采用Java。
如果您开发的系统更需要漂亮人性化的用户操作体验,Marc Domenig 建议采用Flash。
Flash是一个已经成熟的商业产品,它可以在Web网页中引入交互式的图形界面。最近经过升级后,新版本包含了建立窗体风格的应用程序的功能。尽管Flash作为一个在Web上最广泛部署的前端技术还有争议(取决于所选用的Flash Player版本),但据称已经有98%以上的桌面系统都支持Falsh。由于用来创建动画式图形的Flash工具其功能十分强大和是可视化的(与之相反其它技术要求进行低级的图形编码),所以图形设计人员使用起来十分得心应手。Flah采用的脚本语言是ActionScript--ECMAScript 1.5的一个变种,该脚本语言又被称为JavaScript。Flex产品对Flash增加了一个XML描述语言,使得可以编译用户界面,并且能够用Flash Player来随时进行描述。Flex使得传统的开发机构能更好地了解和使用Flash。Flex和Flash的最大缺点在于对XML和Web服务等标准的支持很有限,而且作为应用开发工具的环境还不大成熟。Flex和Flash的优点在于它可以很容易的用来创建复杂的动画式显示,以及可以使用第三方控件。
而对于JAVA程序员来说,可以把所有的有关企业级的应用,包括数据库操作,消息中间件,事务处理等都交给JavaEE去完成。RIA只是用于提高用户体验,提高可操作性的一种方式。我们可以根据开发系统的用户需求去做正确的选择。
分享到:
相关推荐
RIA在Web应用体系结构中提供富客户端操作体验,其目标是整合桌面客户端和WEB应用程序的优势,而常用的开发技术就是如上提到的Java,JavaScript,Flash/Flex。AJAX既不是一个产品也不是一项新技术,但它确实是RIA体系...
开发者可以使用SDK中的命令行工具或者集成开发环境(IDE),如Flash Builder,来编写、编译和调试Flex项目。 2. **Flex组件**: Flex提供了一套丰富的预定义组件,如按钮(Button)、文本输入框(TextInput)、列表...
它包含了Java编译器、Java虚拟机(JVM)、类库和其他工具,是Java程序员必备的工具集。 5. **J2EE**: Java 2 Platform, Enterprise Edition,用于开发和部署企业级应用程序。它包括Servlet、JSP(JavaServer Pages...
敏捷开发方法将继续流行,需求对有着敏捷开发环境的理解和成功经验的开发人员将高速增涨。 8. 问题领域知识 了解问题领域的开发人员能够用更可见的、高价值的方式给项目作出贡献。 9. 开发修养 开发修养包括使用 ...
1. **MyEclipse**:一个集成开发环境,支持Flex插件。 2. **Tomcat 6.0**:作为服务器平台,用于部署应用。 3. **BlazeDS**:这是一个免费的开源项目,用于替代Adobe的LCDS(LiveCycle Data Services),提供Flex与...
IDE(集成开发环境)通常是程序员用于编写、调试和管理代码的工具。Eclipse是其中一种,它支持多种语言,包括Java。"java"标签表明Dorado7和Dorado9是基于Java技术栈的。"dorado7插件"则指出了这个IDE包含了一个专门...
- **Windows桌面开发**:熟悉Windows平台下的开发环境和技术栈。 - **Linux服务器开发**:掌握Linux系统管理和高级编程技巧。 - **Web前端开发**:了解HTML、CSS、JavaScript等前端技术。 - **数据库(DB)相关**:...
### Flex LCDs 2.6 程序员开发手册知识点概述 #### 一、Adobe LiveCycle Data Services ES 2.6 概述 **Adobe LiveCycle Data Services ES 2.6** 是一款专为Flex应用程序提供的服务器端技术平台,旨在帮助开发者...
在这种模式下,Flex程序员和Java程序员各自负责自己的部分,独立开发。Flex应用通常通过HTTP或AMF协议与Java后台服务进行交互,使用 BlazeDS 或 LCDS (LiveCycle Data Services) 作为中间层来处理数据交换。开发者...
JavaFX 2是Java的图形用户界面(GUI)库,为开发富互联网应用(RIA)提供了强大的支持。它包含了丰富的控件、布局管理器和动画框架,允许开发者创建具有现代视觉效果的应用。JavaFX 2引入了Scenegraph模型,这是一种...
Flex-Java通信是将Adobe Flex技术与Java平台相结合,以构建富网络应用(Rich Internet Applications,简称RIA)的一种技术方案。RIA是互联网应用程序的新形态,它弥补了传统C/S(客户端-服务器)和B/S(浏览器-...
Flex是一种用于创建富互联网应用程序(RIA)的开源框架,而Eclipse是一款广泛使用的开源集成开发环境(IDE)。当我们谈论Flex(Eclipse)开发配置,主要涉及如何在Eclipse中整合Flex和Java,以便于两者之间的通信和...
Flex、LCDS(LiveCycle Data Services)和Java的结合是Adobe Flex开发中常见的技术栈,主要用于构建富...这是一门涵盖Flex前端开发和Java后端服务的综合性课程,对于希望从事RIA开发的程序员来说,是一份宝贵的资源。
虽然没有集成开发环境(IDE)的支持时开发效率较低,但它仍然提供了强大的功能支持。 - **授权协议**:Mozilla Public License, version 1.1 (MPL) - **开发语言**:ActionScript 3.0 - **运行环境**: - **Adobe ...
jActionScript库使得Java程序员能够更深入地操作和理解ActionScript代码,这对于那些需要在服务器端处理Flash内容或者需要将ActionScript转换为其他格式的开发者来说非常有用。 jActionScript的核心功能包括: 1. ...
- **test-flex**:这可能是Flex客户端的源代码,Flex是一种用于构建富互联网应用程序(RIA)的框架,它可以与后端的Java远程对象通信。 在实际操作中,Java RMI流程通常包括以下几个步骤: 1. **定义远程接口**:...