阅读更多

JavaScript库,ICEfaces,Adobe Flash,微软Silverlight,现在还有HTML5,全球性的网络支配地位的竞争已经进入了崭新的时代——一个富网络应用(简称RIA,中文也有叫富互联网应用)的时代。本文目的是界定什么是RIA,解释为何网络已经开始向RIA靠拢,探索今天已经存在的不同RIA框架,对每个框架作出一些优点和缺点的概述,并讨论这些新技术在未来将是怎么样的生存态。


RIA是何物?

所谓RIA,或者说富网络网应用,就是指可以像桌面程序一样操作的网络应用。 在RIA冒出来之前,大多数的网络应用都是静态的页面构建的。


 
Sumo Paint 是一个基于Flash的RIA, 具有像Photoshop一样的图形编辑功能。

跟桌面应用程序不同,任何一个网页的互动往往需要重新加载一个全新的页面。而桌面应用程序,在另一方面,有很多更好的用户交互性,因为所有处理都是在用户的机器本身,所以能给以更加无缝的用户体验。

因此,软件开发商开始问自己,“我们产品应该是一个桌面应用程序还是一个Web应用程序呢?”

这一直是一个公平的问题,因为这两种类型的应用程序都具有各自优点和缺点。

桌面应用程序具有流畅的用户交互性,但软件是售出去的,会遇到发布和更新的问题。

Web应用程序,另一方面,很容易从网上获得,摆脱相关的软件发布和更新的问题,但在用户交互性体验非常差。

因此,怎么样才能两全其美呢?

RIA就是两全其美。 RIA通过网络发布,有非常丰富的用户交互。得益于Ajax的出现,一个无需刷新就可以发送服务器请求的网络应用的方法,新技术出现,加入了RIA的运动。

基于这些技术出现了一些框架,帮助开发人员构建和部署富网络应用程序,如JavaScript库,ICEfaces,Adobe Flash 4(Flex 3前身),微软Silverlight,以及HTML5的。

让我们来一个个探讨RIA的框架。

网络应用的JavaScript库

JavaScript库,例如 jQuery和MooTools 是首批技术之一,可以真正的帮助部署流畅和互动的富网络应用。它们提供通过杠杆客户端脚本来处理前端接口功能的RIA框架。它们是一些基本的 Javascript文件,由一些有用的,经过跨浏览器测试功能的集成。可以使用Ajax,以及处理普通的基于用户驱动事件的交互,如显示和隐藏内容。

目前最流行的有jQuery(尤其是使用jQuery UI),MooTools,YIU(雅虎用户界面库),以及EXTJS。这些库包括RIA组件,如网格,图表和复杂的表单元素,以及处理Ajax的工具。 最引人入胜的是,大部分网络开发的JavaScript库都是开源的。

如果你不想购买一个集成开发环境(IDE),但仍希望在自己的网站绚丽而专业的RIA功能,JavaScript库是一个很不错的选择。

使用JavaScript库的网站有Google,Digg,雅虎,亚马逊,微软,Twitter,以及Best Buy。

ICEfaces

ICEfaces是标准的JavaServer Faces(JSF)的框架的扩展,旨在去除方程中的JavaScript从而简化程序员的工作流程。换句话说,ICEfaces通过Java应用接口为 你处理了所有的JavaScript / Ajax。通过删除这些自定义JavaScript函数的复杂引入,大大简化了创建富网络应用的任务。

如果你的团队主要成员是Java开发人员,或者如果你的网络应用程序不需要其它ICEfaces没有的复杂组件,又或者如果你的网络应用程序是事件驱动 的, 那么使用ICEfaces是很好的选择。如果你的网路应用是事件驱动的,请确定你已经了解ICEfaces不提供真正的“服务器推”技术的, HTML5, Flash Builder 4和Silverlight都支持的。不过,相应地ICEfaces使用长轮询的方法来模拟服务器推技术。

使用ICEfaces的网站有波音,美国航空航天局,联合太平洋公司,T - Mobile,以及美国银行。

Adobe Flash Builder 4
    
Flash已经出现了很长一段时间,但是用使用Flash来构建整个网络应用十分麻烦,直到Flex的引进,这是Flash的一个扩展,提供RIA网络组件。

Adobe Flash Builder 4最令人兴奋的是它的跨平台和跨浏览器特性,允许程序在所有的操作系统和所有的浏览器上以同样的方式运行。相比于JavaScript,浏览器有不同的 JavaScript引擎管理和处理的代码,而Adobe的Flash只有一个引擎,用户通过Adobe Flash浏览器插件来安装(通常的情况是他们有了)。

     

Flash Builder 4 应用之所以能如此,因为它们已经嵌入到HTML页面,这意味着浏览器本身并没有对应用程序的性能有什么影响。这意味着你如果你乐意, 你还可以在IE6上运行最复杂的网络应用程序。(这当然简单,因为Flash插件/引擎经常会更新,因此只是稍微依赖于用户插件的版本)。

这些应用通常是伴随着服务器端处理,比如一个Java后端处理,而且需要Flash Builder 4IDE做开发。

如果你的团队主要是Java开发(因为搭配Java运作良好),或者你的应用程序使用事件驱动的构架,可以选择Adobe Flash Builder 4。

使用Flash作为网络应用程序的网站有Mint.com,Flickr和Hyundai。

Silverlight
             
Silverlight是基本上微软版本的Adobe Flex /的Adobe Flash。现在已获得了一些吸引力,但似乎并没有达到的Adobe Flash的普及程度。

Silverlight应用程序明显约束于.NET的后端,因为它是微软的产品。这意味着,你不得不 Silverlight /.NET 和Adobe Flex / [一些服务器端脚本,如PHP] 之间整合考虑。

 如果你的网络应用需要复杂的图形,或者如果你的团队主要是.NET开发人员,又或者如果你的应用程序使用事件驱动的架构,那你可以选择Silverlight。

使用Silverlight的网站,如Netflix。

HTML5
    
HTML5的是RIA运动中的最新发展。 HTML5,在本质上是HTML4,JavaScript,CSS,Javascript代码库以及Falsh的最优合并,利用API模型成为一个单一规 范。 HTML5的是一个开放的技术,这意味着不会有单一的主管团体如Flash的Adobe或Silverlight的微软。

由于HTML5规范还没有完成,IE9尚未发布,要建立产品级的网络应用,你还需要等待一点点时间。

目前,所有主要浏览器除了IE8都支持HTML5。由于IE8的浏览器市场占据了主要部分,在IE9发布之前,HTML5实在难以成为主流。

一旦HTML5得到广泛支持,如果你不想购买和学习的IDE(像Flex和Silverlight框架所必需的),如果你的应用程序使用事件驱动架构,或 者如果你喜欢使用内置的HTML功能和JavaScript API 功能而不是使用第三方JavaScript库,那么使用HTML是很好的选择。

尽管HTML5中可以很好地处理图形,但是使用Flash和Silverlight来处理复杂图形和动画在目前仍然容易/更快的选择。

RIA 的未来

 
HTML5应用程序是互联网的未来吗?不完全是。只要那些创造性和创新性的网络开发人员还在不断的去创造一些特别的东西,就会总是出现一些新技术可以造出些HTML5或其他任何网络技术无法完成的神奇的东西。

 JavaScript库,ICEfaces,Flash,Silverlight和HTML5的存在首要原因是其创造力和创新性。未来的网络将会由许多共存的技术组成,就像现在。

来源:sixrevisions.com


编译: MazingTech

  • 大小: 18.8 KB
  • 大小: 29.6 KB
  • 大小: 24.7 KB
2
1
评论 共 5 条 请登录后发表评论
5 楼 wei1224hf 2011-03-23 21:37
为啥没有 DOJO 和 HTMLX 这两个 JS RIA
4 楼 s9999 2010-08-18 16:51
这篇文章 是啥时候的?
3 楼 Tracyer 2010-07-28 18:53
mblmh2008 写道
qiaoqinqie 写道
为什么没有java fx

javafx不是针对cs编程的吗?

晕,我再好看看吧.javafx是sun新一代的UI技术,可以构建军CS和BS的UI
2 楼 mblmh2008 2010-07-28 10:35
qiaoqinqie 写道
为什么没有java fx

javafx不是针对cs编程的吗?
1 楼 qiaoqinqie 2010-07-27 22:33
为什么没有java fx

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 使用Custom Control自定义控件

    使用Custom Control自定义控件 使用Custom Control自定义控件 使用Custom Control自定义控件

  • C++ builder 自定义控件

    在我们开发过程因为软件的需要 很多的系统控件满足不了我们的需求,这个时候就需要我们通过自定义的控件来完成任务 一 自定义控件: 1 新建一个包 File->New->Package 2 再包中点击右键 Add New->Other->C++ builder files 选择Component 如下图所示 3 点击ok ,选择继承的类 4 下一步  其中 cl

  • 深入C++ Builder之编写自己的元件-深入分析VCL继承、消息机制

    这篇文章提及内容可能大家已经在很多地方看到过了,作者也是如此,只不过还看了很多VCL源代码,加上自己实际编写元件的经验,拼凑了这么一篇文章。所以所有言论都是个人观点、经验的描述,仅供参考。 你可转载,拷贝,但必须加入作者署名Aweay,如果用于商业目的,必须经过作者同意。 系统要求 如果你想一起跟着做的话,那么你应该看看这里,否则你可以直接跳过。 C++ Builder6 + updata

  • C++ builder XE 关于文件路径的创建源码

    #include <Filectrl.hpp> void __fastcall TForm1::Button1Click(TObject *Sender) { //这个路径是否存在 if (!DirectoryExists("c:\\myfile")) { if (!CreateDir("C:\\myfile")) throw Exception("不能创建文件."); }//如果创建失败 if (!CreateDir("C:\\myf...

  • 找到几篇有关delphi vcl消息机制的文章,收藏先~

    ====================================================== 注:本文源代码点此下载 ====================================================== 由vcl中的代码理解vcl中的消息处理机制 (drawwingmap ) delphi,一个非常优秀的开发工具,拥有强大的可视化开发环境、面向

  • c++builder自定义控件

    c++builder自定义控件 http://docwiki.embarcadero.com/CodeExamples/XE8/en/RegisterComponents_%28C%2B%2B%29   void __fastcall SetFocusControl(TWinControl* Value); void __fastcall CMDialogChar(TWMKey...

  • c++builder自绘按钮

    想找自绘按钮的代码,找了很久,下载到了一个。作者不记得了。不过有点不完美。原代码没有处理,鼠标放在按钮上,按钮高亮显示功能。因此,增加了两个鼠标的CM_MOUSEENTERH和CM_MOUSELEAVE事件。 #ifndef Unit12H #define Unit12H //------------------------------------------------------------

  • C++builder自绘控件框架

    #ifndef __switch1__ #define __switch1__ #include "gdi.h" //自定义GDI+函数库 class TSwitchButton : public TGraphicControl { private: int m_left; int m_top; int m_width; int m_he

  • 使用C++Builder创建自定义VCL组件时的一些问题

    主页:http://www.maxss.net邮件:maxchou@163.com  在有些情况由于特殊的需求,需要开发自己的VCL组件以满足需求。对于初学者来说有些问题是需要强调一下的。  第一:就是文件及类的命名问题  菜单操作过程:“Component->New Component...”,在“New Component”对话框的“Unit file name”栏中输入你的类名,

  • C++Builder 自定义消息 处理 总结

    这几天忙着弄一个SSDT HOOK驱动,一环扣一环啊,无奈要去理解一下C++Builder是怎么定义自定义消息的。网上资料很多,看了几篇,觉得有必要总结下。也希望找到这篇文章的同志,可以省点力气...首先,简单讲一下C++Builder的消息机制,BCB的消息处理集成在每个控件类中,首先主窗口有一个最大的消息处理循环函数MainWndProc,这个函数针对一些由BCB特定的消息做处理,其他的则

  • C++Builder中开发Activex 分享

    1.创建自己的ActiveX控件C++Buider开发ActiveX的功能非常强,但是这方面的资料却比较少,本人经过摸索终于搞定了创建Web方式Activex的基本方法⑴打开BCB6,新建一个Activex工程,选择时注意选择ActiveX标签页的Active Form⑵在弹出的对话框中设置ActiveX Name为 ActFrm,后面的实现单元和工程名都会自动更改⑶勾选Make Control

  • 使用C++ Builder Xe6编写ocx

     author:ANGRY_KUA_MAX QQ     :2518383357 Time  :2018-11-03 taobao:https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.594c1debrohhAV&id=577929138091   这几天,因为有客户需要使用64位的驱动程序,之前产品一直出的是32位的...

  • C++ Builder写的工作日志管理软件及源码

    C++ Builder写的工作日志管理软件及源码,使用MSSQL数据库。 还原数据库修改INI配置文件即可运行。

  • c++ 多线程写日志的一个很实用的日志类源码(支持 c++ builder)

    1.日志基类 .h文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 //-------------------------------...

Global site tag (gtag.js) - Google Analytics