前两天ADOBE发布了PhotoShop的网络版(http://www.photoshop.com/express )。与像google doc这样的web程序相比,PS express给人的第一感觉就是——漂亮。整个界面都是flash实现,不仅使用方便,而且界面吸引,在网络比较流畅的情况下用起来基本没有反应缓慢的感觉。
这就是之前Adobe所谓的flex框架所制造出来的一个经典RIA(富客户端)应用。
flex是一个非常新颖的技术。通过使用一套基于XML的语言——MXML定义界面,再加上ActionScript作为逻辑代码,然后利用flex sdk就可以生成出一套由html、flash、javaScript等东西组成的网页。
以下是一段完整的界面代码,通过这些可以在页面上显示一个“窗口(panel)”里头包括一段文字以及按钮
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Panel>
<mx:TextArea text="Say hello to Flex!" />
<mx:Button label="Close" />
</mx:Panel>
</mx:Application>
在制作客户端的层面上,flex和flash有质的区别。flash是针对艺术创作以及一些小型交互多媒体而设计的,它难以承担数据处理的任务,而且由于它不是基于控件开发的,所以不利于开发应用程序。而flex把flash作为载体来生成界面,非常好的解决了网页界面体验的问题。同时flex提供了和其他web技术整合的通道,使这个界面能有效的与数据处理整合。利用flex可以开发更复杂的一些网页程序。
说到flex,还得提及一下Adobe AIR。flex是针对web的,而AIR则是利用Web技术解决桌面应用。AIR相对于一般Web技术来说,最主要就是跳出了浏览器的限制,通过AIR runtime让这些Web程序获得处理本地数据的能力(例如读文件)。
不光是adobe,微软也在大张旗鼓的向RIA开发进军。微软为其.net平台又添加了几个重要的元素:WPF以及SilverLight(原来是叫WPF/E)。
WPF是.Net Framework 3.0的三大核心之一,主要是解决界面处理的问题。类似于flex,WPF也提供了基于XML的语言进行界面定义。当然,真正让WPF区别于旧有桌面程序开发的一个重要原因是因为它是针对3D桌面设计的。它是基于directX而不是gdi,能充分利用显卡进行图像绘制。并且它提供了大量API支持3D界面的开发。
至于silverLight,它原名是WPF/E(windows presentation foundation everywhere),可以看出它和wpf的亲缘性。最初的silverLight更像一个微软版的flash。当然,微软不会为了打倒一个flash而花这么多功夫。silverLight也是一个用于开发Web RIA的前台技术。由于它基于.Net,所以也具有跨语言的特性。你可以用类似WPF的开发方法加上自己熟悉的语言(当然C#永远是最合适的)开发出界面华丽的Web程序。而且它和ASP.Net有很好的整合能力。微软已经在自己的网站上使用silverLight了。在微软的下载中心、MSDN主页都有silverLight的存在。
最后我们也可以看到两间公司在“整合”这方面的优秀策略。像flex和AIR其实底层技术基本都是以前大家都在用的Html,flash,actionscript等等,然而经过一个全新的整合之后就变成了高效而强大的开发工具。而微软自然就不用说了,.Net这个平台已经是涉及到开发的方方面面,从用户桌面到企业web都能找到.Net的身影。
RIA这个市场非常有前景,也必然是这两间公司必争的一块宝地。不过对我们做开发的来说,最重要的还是多了一堆实用的技术。