您的位置:首页 > 其它

flex介绍(摘自csdn)

2008-11-07 08:51 316 查看
1 Flash RIA 比 html+ javascript 或者 ajax 的RIA应用更好。虽然现在后者是主流;2: Flex 的学习曲线比 javascript 陡,开发也更加复杂;3:采用 flex 开发网站对于将 web 应用带到桌面应用可以做到更平滑……

去年11月份的时候,我用 flex 给我在 csdn 的博客开发了一个小 widget 应用。正好那时候我刚离职,在家呆了一个月,乘着去新公司上班前有空学了一下 flex 。说来也奇怪,我很少能从公司学到什么技术,我所学的很多技术都是自己喜欢而不会被公司所采纳的,所以总是搞的我要通过离职来学习一些东西。记得那时候我还写了一篇文章《抛开google 去思考,去创新》, 在那篇文章中我曾经说过,如果你做网站没有什么历史负担的话,大可直接跨过现在的技术,直接跳到下一代互联网技术去开发,比如 flash, silver light 等。 一年过去了,我还是这种观点。 这一年不断的通过学习 flex 并将其应用在“乐道”的开发中, 使得我越来越喜欢基于 flex 的 RIA 技术。

也许有人会说如果这样下去,Google 不会收录你的网页,你的网站也就完蛋了。这也是我一直在思考的一个问题, 我的折中方案就是维护一个现有的 html  版本,这个老版本不再继续开发,只是为了给搜索引擎用,而将更多的精力投入开发以 Flash 为主的下一个版本。有很多朋友都不解我为什么这么投入去搞 flash 的技术, 因为 flex 的学习需要时间,毕竟不如 html + javascript 来的熟悉,而且搜索引擎不友好。 这里我觉得应该说明几点:

1: Flash RIA 比 html+ javascript 或者 ajax 的RIA应用更好。虽然现在后者是主流。

最近随着 google 的新浏览器和 V8 js 引擎的提速似乎加速了人们拥抱 javascript 这门语言, 但是我始终认为现有所有基于 js 库的开发方式很落后,即便javascript速度有所提高,库函数的调用更加简便,都无法改编 ajax RIA开发模式的落后, 原因对我来说只有一点,因为它不是基于组件的,就这么简单。它无法像flex 那样做到拖放组件来快速开发,flex 可以让你可以不用几行代码就开发出非常好的 RIA 应用, 而采用 ajax 无论你采用什么 js 库, jquery ,prototype, yui , 都无法控制你的代码膨胀, 并不是说真的无法控制,而是在大多数时候,当业务逻辑稍微复杂的话, 如果你不是一个 javascript 高手,只知道如何使用某种 js , 而不了解如何通过 javascript design pattern 来建模客户端应用,那么代码维护和膨胀是迟早的事情,js 库只能解决一些问题,这就好像是“库函数”和 面向对象设计 的区别吧。 实际上 flex 在这点上已经进一步达到了 coponent 一级的应用。 组件开发并不是什么新鲜的东西, VB, Delphi 早以让我们熟悉了这种 RAD 的开发方式, 但是 flex 将这种开发方式带到了 web 开发, 一旦熟悉了它,你会发现 ajax 的开发方式还是比较低端的, 你虽然有了jquery 的帮助,你的 js RIA 开发还是一团糟。 缺乏组件开发方式,ajax 相比 Flex 从各方面来说都差了很多。

2: Flex  的学习曲线比 javascript 陡,开发也更加复杂。

前面一点我承认,但是并非很陡, 毕竟 actionscript 和 javascript 都是同出自 ecmascript 规范, 而 As 的语法更偏向 java , 而且我觉得这种学习是值得的。 它也是一条不归路,就好比你看了 DVD后就很难再回头去看VCD 了。学会了 AS 你可能不愿意再去写 java script 了。 基于 as 的开发更优雅简洁。 其实 RIA 的开发无论采用什么方式都比传统 web 开发方式复杂, 因为后者是 thin 客户端, 基本在客户端都不存在什么逻辑, 而胖客户端或者富客户端的开发量几乎可以和后台开发等同,很多逻辑转移到了客户端, 但是从某一方面来说,后台的开发变得简单了,而且从部署方面来看也简化了不少。 以我最近开发“乐道”经历来说, 阅读推荐的 flash 重新用 flex 开发了一下,只用了一天,大量使用现有的 flex 组件,每次修改了文件后只需要重新上传一下 swf 文件就可以了,无需重新启动服务器,即便采用 ruby on rails 来开发网站,你还是无法避免运行在 production 环境下重新启动 web 服务器的, 只是相比 tomcat, jboss 这种应用服务器来说,如今的轻量web服务器(nginx,lighttpd)启动更快而已。但是每次修改应用逻辑代码还是需要重新启动服务器的. 采用 flex 开发的应用,如果只是修改前台的逻辑无需重新启动服务器,这在部署上就简单了很多, 如果整个网站都采用 flex 开发, 可能优势会更明显一些,当然这之前必须和后台开发之间确定好所传递的数据格式,对我的应用而言,就是 xml 。

3:采用 flex 开发网站对于将 web 应用带到桌面应用可以做到更平滑。

最近在学习 adobe air 的开发技术, 可以说很着迷,也许是确实有了需要,所以学习起来格外兴趣盎然。 这一年断断续续的学习 flex 使得 air 的学习出乎意外的轻松。很多概念都是 flex 和 as3 早就有的, adobe air 可以说是对 flex 的一些组件扩展而已。为“乐道”开发一个桌面 widget 应用立刻提到我的日程上来, 希望我在找到下一个公司上班前尽快把这个 air 应用开发完并掌握 adobe air 技术(相信我上班后估计是用不上它了)。 就我现在的经验来看,adobe flex + air 在同时开发 web RIA应用和桌面应用来说,可以说是最好的。 你不需要再学一门新技术以应付桌面开发,如果你一直采用 flex 开发网站,那么你甚至不需要单独学习 air 来开发桌面, adobe air 内置 sqlite3 作为离线数据库(这点真是太棒了),内置 webkit web引擎,你甚至可以直接打包你的 html 页面来开发一个桌面应用,当然我更喜欢采用 flash + air 来开发桌面应用。

相信在不久的将来,国外将会有越来越多的公司推出自己的 air 桌面应用。所以对 flex 和 air 的投资都是值得的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: