Beautiful RIA [3]
Stewart :其中一个感觉是,Flash仍有很多观念上的问题需要解决,因为人们并不把它视为 实现应用程序的方式而是骚扰广告媒体。庆幸的是,视频某种程度上改变的这种观念,但周 围仍然有很多“骚扰 Flash”。另外一个弱点是我认为 Flash需要适应 Web生态系统。很多东 西像 SEO、链接、分析技术都建立在 HTML模型之上,所以大块的 Web如何运作以及赚钱 实际上依赖于 HTML和 JavaScript的。我们只是看到 Flash在某些方面表现更好,但是最终它 总让人觉得有点不同,这正是我要研究的缺陷。
Girard:浏览器的弱点就是 GWT弱点。最重要的是关于 2D图像。如果浏览器更难好的支持 画布和 SVG的话就好了。
6.大多数 RIA语言并不同时用于开发客户端和服务器。主要的后台程序用 PHP、Java和.NET 等实现。如何看待这种多语言编程模型对 RIA的影响呢?
Dash :我喜欢“精通多种语言”这个词。坦白说,这会让人混淆。我观察到业界正分化为双语 言方案(例如:C#和 XAML、 ActionScript 和 MXML、 JavaFX 和 Java)。有些人会说 2种 比 4种好而 4种又比 6种好。但是我们使用 Curl的人相信一种语言包含演示层和逻辑层。 因此,MIT的研究人员设计一种统一的语言来解决整个方案。这就导致了可怕的“程序员经 济”,一些我们在 RIA业界没有注意到的东西。我们的客户经验极大地证实了这项优点。Curl 是相当好的建立富客户端应用程序的多范例语言。我们希望你能够掌握这项语言。
Stewart:我希望它很快会得到采纳。学习新语言是令人畏惧还是有趣取决于你如何看待它,
虚拟座谈会:RIA和 Ajax技术的现状与展望
但文中的观点,针对应用程序结合不同的语言变得非常重要。最后,我认为让程序员自由使 用最适合他们的语言组合才是最有生产力的。如果每个人都同意那种说法,我们认为每个 RIA供应商都会看到高采用率和广泛应用,这也会让我们得到鼓舞。
Almaer :我喜欢 RESTful的世界。我认为它有很好的解耦功能。然而,我们正探索统一的前 端和后端观念,在我们当中使用 JavaScript。使用富服务器端 JavaScript平台,移植 JavaScript 到浏览器,在接下的日子中,我们会得到 Smalltalk支持的有趣解决方案吗?我们正要探索。
Girard:对于 GWT情况却并非这样。你可以对客户端和服务器端使用相同的语言。这实在 是太好了。
Sneath :这当然是 Silverlight的独特之处。如果你是.NET开发人员,你肯定知道 Silverlight, 相同的编程模型,它只是整个.NET Framework的一个子集。实际上,你可以利用在基于 ASP.NET服务器上运行的相同源码,并在基于 Silverlight的客户端应用程序中使用它,而无须 任何修改。由于.NET的普及性,你不仅仅可以分享代码还可以跨越多种不同的设备类型来 分享技巧:从 Xbox->移动设备 ->Web浏览器->Windows客户端应用程序->云数据中心服务 器。
Pilgrim :对于 JavaFX开发人员,我认为你需要用 Java编程解决难题。实质上,如果你使用 EJB、JMS或者使用客户端服务器协议,像无线发送 XML。我看不到 JavaFX对服务器端的用 处。给我一个用例好吗?
也许某人可以编写动态生成 JavaFX代码的Grails应用程序,编译它然后回发引用动态生成JAR 文件的 JNLP文件。是的,你可以用技术实现,但是使用它的商业价值在哪里呢?换句话说, 当我们遇到所谓的信贷紧缩的时候,它浪费时间和金钱。相反,使用这些语言来解决业务问 题,才是真正的改革方式。基于这一点,我认为 JavaFX、Flex和 Silverlight都是可行的解决 方案和平台。
原文链接:http://www.infoq.com/cn/articles/ria-panel
相关内容:
Grails Ajax富客户端插件大比拼
创建并扩展Apache Wicket Web应用
Joe Walker谈DWR
利用GWT开发高性能Ajax应用 、JavaScript多线程编程简介
Ajax应用开发:实践者指南
作者 成富
Ajax 技术的出发点在于改变传统 Web应用使用时的“操作-等待页面加载-操作”的用户 交互模式。这种交互模式会打断用户正常的使用流程,降低用户的工作效率。Ajax技术 的交互模式是“操作-操作-操作”。用户并不需要显式地等待页面重新加载完成,而是可 以不断地与页面进行交互。页面上的某个局部会动态刷新来给用户提供反馈。整个交互 过程更加平滑和顺畅。这是 Ajax技术得以流行的一个重要原因。本文简要介绍了 Ajax 应用开发的各个方面以及相关的最佳实践,但对一些细节内容没有展开讨论。
目前的 Web应用开发基本上都是围绕富互联网应用(Rich Internet Application,RIA)展开。 RIA的实现技术有很多种:Ajax、Flash、JavaFX和 Sliverlight等。 Ajax技术的优点在于它是 构建在开放标准之上,不存在厂商锁定的问题;同时也不需要额外的浏览器插件支持。Ajax 应用对搜索引擎也比较友好。对开发者来说,Ajax所需技术的学习曲线也较平滑,容易上 手。本文简要介绍了 Ajax应用开发的各个方面以及相关的最佳实践,但对一些细节内容没 有展开讨论。
Ajax简介
Ajax 技术的出发点在于改变传统 Web应用使用时的“操作-等待页面加载-操作”的用户交互 模式。这种交互模式会打断用户正常的使用流程,降低用户的工作效率。 Ajax技术的交互 模式是“操作-操作-操作”。用户并不需要显式地等待页面重新加载完成,而是可以不断地与 页面进行交互。页面上的某个局部会动态刷新来 给用户提供反馈。整个交互过程更加平滑 和顺畅。这是 Ajax技术得以流行的一个重要原因。
Ajax 构建于一系列标准技术之上,包括 HTML、JavaScript和 CSS等。在这些技术中,HTML 是作为应用的骨架而存在的,展示给用户最基本的内容。CSS则为 HTML表示的内容提供易 于用户阅读的样式。JavaScript则为应用添加丰富的交互行为,为用户提供良好的使用体验。
Ajax应用开发:实践者指南 Ajax技术的出现使得应用中一部分的逻辑从服务器端迁移到了 浏览器端。浏览器的作用从简单的渲染页面和表单处理,上升到了处理一部分业务逻辑。
一般来说有两种类型的 Ajax应用风格,一种是仅少量使用 Ajax技术来适当增强用户体验
Ajax应用开发:实践者指南
( Ajax Lite),另外一种则是大量使用 Ajax技术来达到与桌面应用相似的用户体验(Ajax Deluxe),提供诸如鼠标右键、拖拽和级联菜单等。开发人员应该根据应用的特征选用合适 的风格。
浏览器兼容性
开发 Ajax应用的时候要面对的一个重要问题就是浏览器兼容性。虽然 Ajax技术基于 HTML、 JavaScript和 CSS等标准技术,但是不同的浏览器厂商对于这些标准的实现程度有着很大的 差别。同一浏览器的不同版本之间也会有一些不同。新版本可能会修复旧版本上的问题,也 可能会带来新的问题。不过总体的趋势是浏览器的实现越来越向标准靠拢。
解决浏览器兼容性的第一步是确定应用要支持的浏览器种类和版本。这个决策取决于应用的 目标用户和特定的应用需求。对于一般的通用 Ajax应用来说,可以按照浏览器的市场份额 和支持某种浏览器所需的代价来确定。雅虎提出的分级式浏览器支持(Graded Browser Support)是一个很好的参照,从其中给出的 A级浏览器开始是一个不错的选择。从特定的 应用需求来说,某些使用了 ActiveX控件的 Ajax应用就只能在 IE上运行;而开发针对 iPhone 的应用则只需要考虑移动版 WebKit就可以了。
就 Ajax应用的三个组成部分来说,HTML的兼容性问题比较少,毕竟目前主流的 HTML 4.01 规范已经有 10年的历史了;在 JavaScript方面,JavaScript语言核心部分基本上没什么问题, 而文档对象模型(DOM)和浏览器 对象模型(BOM)部分的兼容性问题相对较多,这主要 是因为浏览器长生对规范的支持程度不同以及各自添加了私有实现。使用一个流行的 JavaScript库就可以解决这些问题;CSS方面的兼容性目前是问题最多的,而且没有比较好 的库的支持。在下面会着重介绍 CSS的兼容性问题。
富含语义的 HTML
HTML 语言本身上手比较简单,只是一些元素的集合,只需要了解这些元素及其属性的含义 即可。这些元素既有与文档结构相关和富含语义的元素,也有与页面的展示相关 的元素。 一个好的实践是只使用与文档结构相关和富含语义的元素。从 HTML语言规范的历史也可以 看到这个趋势。HTML语言规范的历史比较长。在 HTML最初的草案和 HTML 2.0中,HTML 只包含描述文档结构的元素。在 HTML 3.2中,很多与展示相关的元素被引入进来。HTML 4.01 规范试图解决这个问题,许多与展示相关的元素被标记