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的存在首要原因是其创造力和创新性。未来的网络将会由许多共存的技术组成,就像现在。

原文链接:http://sixrevisions.com/web-development/building-rich-internet-applications-with-frameworks/

译文链接:使用框架建立富联网应用

使用框架建立富联网应用相关推荐

  1. Windows7 Scrapy框架建立

    Windows7 Scrapy框架建立 因为在Windows7中安装python 的 scrapy框架实在是太繁琐,而且在网上查找的scrapy安装过程全都是告诉你去哪里下载,所以光去找东西都找了很久 ...

  2. DL之Keras:基于Keras框架建立模型实现【预测】功能的简介、设计思路、案例分析、代码实现之详细攻略(经典,建议收藏)

    DL之Keras:基于Keras框架建立模型实现[预测]功能的简介.设计思路.案例分析.代码实现之详细攻略(经典,建议收藏) 目录 Keras框架使用分析 Keras框架设计思路 案例分析 代码实现 ...

  3. COMSOL软件入门仿真框架建立及软件基本操作

    COMSOL软件入门仿真框架建立及软件基本操作 1.初识COMSOL仿真 以多个具体的案例建立COMSOL仿真框架,熟悉软件的使用方法 2.COMSOL软件基本操作 2.1 参数及变量设置方法 2.2 ...

  4. Python Flask框架建立项目

    Python Flask框架建立项目 ECharts实现全国空气质量查询 Python Flask框架建立项目   Flask项目建立   Flask项目编程 Python 爬虫爬取空气质量数据 Ec ...

  5. ThinkPHP 框架建立 PostgreSQL / 腾讯云 TDSQL PgSQL (TBase) 连接

    一.TDSQL 介绍 二.在 ThinkPHP 代码目录建立新的数据库连接文件 /Config/extra/database_pgsql.php <?phpreturn [// 数据库类型'ty ...

  6. 在Linux(Ubuntu16.04)上用Django框架建立网站的常用命令

    Linux建站常用命令 1. 管理uwsgi: ps aux | grep uwsgi (查看uwsgi进程) uwsgi --ini uwsgi.ini (启动uwsgi) uwsgi --stop ...

  7. DHTMLX 前端框架 建立你的一个应用程序教程(二)--设置布局

    Layout控件的演示 Dhtmlx有很多的组建来组织网页的建设, 这篇主要介绍dhtmlxLayout . 下面图片中 布局将各个组件(1.Menu 2.Toolbar 3.Grid 4.Form ...

  8. DHTMLX 前端框架 建立你的一个应用程序 教程(八)-- 添加表单Form

    添加表单Form 我们下一步是在页面中添加一个表单,表格中的选中字段将会显示在表单中.提供一个提交按钮 可以对显示的数据进行修改提交. 添加表单到布局单元格中 1.在右侧布局中使用attachForm ...

  9. 【百问网7天物联网智能家居】训练营学习笔记(二)(需求分析,框架建立)

    构建一个项目的大致流程: 1,负责拉项目的同时,就叫市场部的同事吧,他们在外面和别的公司或者企业的人进行交流协商,得到一个项目: 2.然后再将这个项目交由研发部的负责人评估怎么做,研发部负责人召集手下 ...

  10. DWZ富客户端框架使用手册

    概述 DWZ富客户端框架(jQuery RIA framework),是中国人自己开发的基于jQuery实现的Ajax RIA开源框架. DWZ富客户端框架设计目标是简单实用.扩展方便.快速开发.RI ...

最新文章

  1. SAP 对HU做货物移动报错-Only 0 serial numbers entered instead of 30 -
  2. 无线覆盖带机量比较大的型号推荐
  3. JSP在动态网页上输出 三角形和菱形
  4. ad10怎么挖铺的铜_一个西北阴阳的诡异经历(五六):镇兽铜虎
  5. WPF入门(一)——绑定Binding
  6. Go语言中*和的区别
  7. leetcode 530. 二叉搜索树的最小绝对差(中序遍历)
  8. 机器人绳索英雄下载苹果手机_警察机器人绳索英雄游戏下载-警察机器人绳索英雄苹果版v1.0-FC游戏网...
  9. PyTorch的Tensor(张量)
  10. 云和物联网(IoT)是不可分割的,因为物联网需要云来运行和执行
  11. 【每日算法Day 63】LeetCode 第 179 场周赛题解
  12. java 获取xml 版本号_java读取xml文件字段值
  13. Python基础学习九 单元测试
  14. 桌面共享工具(可以实现RTMP直播、K歌、投屏等功能)
  15. 固态硬盘是什么接口_硬盘接口/SSD固态硬盘
  16. Android开源库:手把手教你实现一个简单好用的搜索框(含历史搜索记录)
  17. Android Apk瘦身方案1——R.java文件常量内联
  18. 百亿外卖CPS市场该怎么玩?(附公众号小程序裂变源码及搭建教程)
  19. VSCode中自定义的snippets对h文件无效的解决办法
  20. 警告:Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA

热门文章

  1. 推荐一个ajax控件项目 ajax data control
  2. php+mysql事务处理例子详细分析实例
  3. 利用Metaweblog技术的API接口同步到多个博客网站(详细)
  4. 剑指offer 66题 -- 丑数
  5. 数组迭代方法之reduce
  6. 企业选型数据库系统的五点建议
  7. android studio文件读写,Android 中的文件读写操作
  8. Linux中权威域名服务器,请在(7)~(9)处填写恰当的内容。在Linux系统中配置域名服务器,该服务..._考试资料网...
  9. android studio进行增删改查代码_使用C#进行数据库增删改查(二)
  10. Unity AssetBundle 资源(纹理,网格,动画,字体,LightMap,音频等)使用 优化