Flex: RIA 的先驱,无坚不摧的银弹?
Flex: RIA 的先驱,无坚不摧的银弹?
首先有必要了解一下 Flex 。(详细的了解请看附录的链接。本文并非Flex的介绍)
以下是 Flex 的基本架构图。
用我的话讲,大概就是,用 mxml( 他们自创解析标记 ) 作出一个 mxml 页面,然后服务器动态生成 flash swf 文件给前台。这样做最大的好处我看来有三点:
由于 Flash 技术铺天盖地,已经到了无 Flash 不浏览器的地步,因此这个 Flex 利用这一点,采用 Flash 作为 Presentation Layer ,在跨浏览器上,已经具备了得天独厚的优势。
Flash 最初给我们的印象是:动感的,小巧的,漂亮的。而与此相比用 JavaScript 或者其他东西看起来总缺少灵性。与Flash紧密结合的Flex会给"用户最佳的体验",这是一句广告词。这句话一点也不假。
由于采用FlashRemoting技术,结合常见的Http协议,使得Flash能够进行客户机/服务器的交互操作。Flex能够提供一种平台,使得这种交互更为容易便利。因此从这一点上,Flex看得很准。
然而,我对Flex并不是大家常见的褒扬。
感谢 Azure ,他很热心的办了RIACN网站(见附录,Azure是国内知名的Flash高手之一),我得到了一份 trial version 。安装、体验之后,对于这个东西,也许我有一些你们看起来不太一样的观点。总而言之,我认为这将是一个彻底失败的项目,我不认为它将会得到很全面的推广,至少在国内,理由如下:
1 要价太高, $12000 的价格不是不能接受,而是不合理。
在我看来,他的设计并非完美——一个普遍验证的框架+久经使用的Flash技术,抱歉,也许还有我不知道的——而且很多元件都是从 Flash 产品中直接得到,没有更多的开发成本和技术成本。FlashMX多少钱?Flex要多少钱?凭什么一个这样的框架就该价值10W人民币?weblogic多少钱?websphere又多少?为了得到best experience我就该付天价?
2 太费资源——我只得不是服务器端,虽然服务器端也如此——是指客户端
我用的TOmcat作为app server.打开任意一个demo mxml,进行任意演示操作,CPU马上到达70%。我的机器配置:P42.4G,768MRam。这会让用户得到best experience?至少现在不会,我认为。worst experience还有可能。我想,这个也许不是大问题,随着机器配置的提高,动态生成flash效率的提高,将会得到解决。
3 mxml编译速度太慢 —— 这个我只是感觉,没有确切的数字验证。和JSP一样,这个东西需要编译。编译后产生的就是swf了。
4 作为开发者,开发模式太单薄,只是MVC……
我不是说MVC不好。而是对于这种死死的限定,会有什么好处呢?
5 最致命的一点,就是不该收费,或者说不该以这种方式运作。
FlashMX的造价肯定比Flex低,既然我明白了swf文件的结构,我又何尝不能自己造出一个比flex更棒的framework呢?……事实上,在SourceForge已经有了,只是没有形成Flex这么全面的架构。然而,开源世界的可爱的开发者们,说不定像JBoss一样,造出一个更好的东西跟Flex叫板呢?
以上只是一些随口之言,未经更为详细的思索,还希望抛砖引玉,能够引发更为深刻更为精彩的讨论。
附录:Flex资源
Flex老家:http://www.macromedia.com/software/flex
Flex演示程序,确实激动人心:http://www.macromedia.com/devnet/flex/example_apps.html
RIACN: azure同志对flash钟爱有加,开办此站。国内别无分店。http://www.riacn.com