RIA方案—基于Flash的Flex
Flex简介
Macromedia公司被公认为新兴的RIA市场的领导者。今天98%的浏览器上都使用Macromedia Flash客户端软件,因此几乎每个人都可以使用基于Flash的RIA。Macromedia Flex是Macromedia的新服务器产品,它使企业应用程序开发人员能够全面访问RIA的功能。Flex具有基于标准的架构,与当前企业开发人员的工具、方法和设计模式互补。
Flex应用程序与传统的HTML应用程序的主要区别在于Flex应用程序处理最适合在客户端运行,如字段校验、数据格式、分类、过滤、工具提示、合成视频、行为及效果等。Flex 可使开发人员更好地交付应用程序,这种应用程序使用户可以迅速反应、在不同状态与显示间流畅过渡,并提供毫无中断的连续的工作流。
Flex 应用程序框架
如上图所示,Flex应用程序框架由MXML、ActionScript 2.0及Flex类库构成。开发人员利用 MXML及ActionScript 2.0编写Flex应用程序。利用MXML定义应用程序用户界面元素,利用ActionScript 2.0定义客户逻辑与程序控制。Flex类库中包括Flex组件、管理器及行为等。利用基于Flex 组件的开发模型,开发人员可在程序中加入预建的组件、创建新组件或是将预建的组件加入复合组件中。
这里重点介绍一下MXML。与HTML一样,都是标记语言,它描述了反映内容与功能的用户界面。与HTML不同的是,MXML 可对表示层逻辑与用户界面和服务器端数据绑定提供声明抽象。MXML可将表示与业务逻辑的问题彻底分开,以实现最大程度地提高开发人员的生产率及应用程序的重复使用率。
Flex的不足
目前Macromedia最新推出了Flex 1.0 Updater,但它代号为“Brady”的IDE还没有正式推出,目前还在进行Beta 3测试。抛开IDE不说,笔者认为Flex目前还很不成熟,还不利于在实际项目中使用。
例如,Flex自带的ZipCodeValidator,里面只提供了美国和加拿大的邮编规则,没有其他选择,也无法个性化它。看来只有自己来定义Validator了,但这样一来,和在JS中写正则表达式有什么区别(代码量和JS差不多)?用户需要的是国际化的ZipCodeValidator,这样才能提高工作效率。
一句话概括
现在的Flex才是1.0版本,很多地方都不完善,只好自定义才能完成特定的要求。期待着Brady以及Flex后续版本的推出!
RIA方案—基于JS的Bindows
Bindows简介
“Bindows把JavaScript发挥到了第九层!”——网友这样评价Bindows。
运行中的Bindows
的确如此,Erik等编写这个框架已经将JavaScript的OOP和基于IE6的DHTML发挥到极点!Bindows 0.93发布的时候已经将IE内置的功能开发得淋漓尽致了,包括Filter、XMLHTTP、Web Service、VML。JavaScript用于客户端界面的显示和处理,XMLHTTP用于客户端与服务器的信息传输。JavaScript在客户端的表现力不容置疑,看看www.bindows.net所表示出来的能力,利用JavaScript几乎可以实现Windows应用程序所能干的大部分事情,XMLHTTP一直以来常被用于实现“无刷新”的Web页面,它和JavaScript配合,可以完成数据从服务器和客户端的传输。
Bindows的不足
Erik喜欢那种一次全部载入的方式来实现脚本库,使用过Bindows会发现,在窗口的加载期,需要一个漫长的等待过程,甚至浏览器的进程会产生无响应的情况。按照V0.93,脚本文件的大小是600多K,在一个普通的Web应用中,我们更多时候不会用到Bindows的全部功能,这点Bindows根本没有遵循“用多少去多少”的准则。另外,过多的JS会使CPU占用率陡然增加,产生潜在问题。
内部大量利用了IE6的技术,没有考虑到非微软平台的浏览器,限制了Bindows的流行。在图表方面,大量采用了VML技术,在IE5,IE5.5这两个版本,VML引擎不是那么的成熟,很多地方的显示不够流畅,会受到带宽和硬件的限制,过分绚丽的图形最终会给用户带来崩溃。“图形方面我是采用VML的,当初太偏执,如果使用SVG来实现可能好许多的,也就是那段日子,我花了非常多的时间去折腾web方面开发。”——有网友这样说。
一句话概括
在技术的角度上,从Bindows是可以学到不少东西的,但好像它的学术价值大于它的商业价值。
后 记
兴奋归兴奋,冷静下来仔细想想,运用RIA改造现有B/S模式还为时尚早。制约我们的首先是网络环境和硬件环境的不完善性,我想没有哪个用户愿意花大量的时间来等待想要看见的“花哨”页面,更不愿意等来的东西使自己的机器不堪重负,而换来的只是一些良好体验吧?市场决定一切,而不是任何的新技术!其次,目前RIA的解决方案也不成熟,笔者看好Flex,可惜还需要长时间的等待才有结果。当然,还有很多RIA的方案,感觉MS的Smart Client + Web Service来头不小。
本文叫“迎接RIA时代的来临”,笔者充满了对RIA的美好憧憬,期待着有一天能够在RIA的环境中进行虚拟现实的交互式体验!
Are you ready? Let’s go!
鸣 谢:RIA中国 没有他们,我想今天也不会对RIA有如此的认识!!!
参考文献