《FLEX工程师成长计划》--入门篇之二:了解FLEX框架

又忙碌了一周,代码写呀写,终于完成了一个小模块的开发,现在可以喘口气了。。。写代码的时候,是我最快乐的时候,但是东西做完之后,如何能推广出去,却成了难题;天无绝人之路,坚持自己的道路吧,好东西总会有人理解你的,不要消沉不要放弃。。。。

-------------------- 言归正传 ---------------------------------

技能一:了解FLEX框架

在了解Flex开发之前,我们先来认识下什么是Flex,以及它的来龙去脉,适合做什么,不适合做什么,对这项技术有个全面的认识,这样你就不会盲从,也不会人云亦云;

 

Flex如果你没听说过,但是Flash你肯定听说过,也见过,互联网上花花绿绿的广告和视频都是在用Flash作的,那么Flex是什么呢?简单来说,Flex就是企业版的Flash,它要比Flash沉重多了,因为它有更多的东西在里面;Flex是英文单词flexible(灵活的)的前面四个字母,当初这项技术设计的初衷就是发明一种语言,能够简单、快速的构建企业应用,以满足日益复杂的企业需求;

 

Flex1.0诞生于2004年的Macromedia公司,随后同年出了Flex1.5,但是这两个版本反响都不大,没有广泛被认可和使用;主要原因是昂贵的许可费用(按服务器CPU收费)和低下的运行效率,这两个版本特点主要还是利用一个运行时编译器,像使用jsp一样,访问时去编译,这个编译非常耗资源,所以一般机器都扛不住;而且使用ActionScript2.0进行编写应用,客户端运行在效率低下的Flashplaye6/7中,难以让客户忍受;

 

真正这项技术重要的里程碑是Flex2,于2006年底发布,这个版本的Flex2变成了开源项目,由Adobe公司官方负责维护;此时ActionScript语言和FlashPlayer发生重大升级,ActionScript变成了延续至今的ActionScript3.0,FlashPlayer升级至9.0,内置了新的虚拟机,客户端运行速度提升了十倍以上;从Flex2开始,已经改变了过去的部署模式,不再使用运行时编译,而是开发时预先将应用编译成swf文件,然后部署到服务器上访问,这样运行效率就好多了;Flex2的推出大受欢迎,使得这项技术真正被开发者接受,从2007年开始国外涌现了许多优秀的Flex成功案例,国内社区也开始逐渐在尝试使用这项开源技术,笔者也是这一年转型做Flex开发的;

 

后来就波澜不惊了,2008年初Flex3发布,也是大多数开发者所熟悉的版本;2010年初Flex4发布,引入了新的组件体系Spark,开发工具也改了名称由原来的FlexBuilder3改为FlashBuilder4,还提供了一个供开发者和设计人员协作的工具FlashCatalyst,此工具将Adobe其他设计工具比如PhotoShop、Illustrator的设计成果整合起来进行原型和组件的开发,并可提交给最终Flex开发者使用,这样大大改善了Flex应用开发的工作流程;

 

就在本书写作的时候,2011年4月11日,也是在Flex4发布一年后的时间,Flex4.5发布了,这个版本主要有三个方面的特色:针对Android/BlackBerry/ Apple平台的多种移动设备应用开发,补充了新的Spark组件,Flex编译器的性能提升;随后5月2号,又放出了FlashBuilder4.5正式下载,本书的部分例子就是在FlashBuilder4.5中完成的;

 

了解了Flex的历史,现在了解下Flex究竟是什么,现在业界提到Flex就是特指Flex SDK(sortwaredevelopment kit); 前面说的Flex4.5的官方发布,也就是指的这个Flex SDK,即Flex软件开发工具包;FlexSDK包含了三大部分:编译器及辅助工具、组件框架、运行环境即FlashPlayer/AIR;那这三者是怎么结合使用呢?简单来讲,就是你用一个文字编辑器,写一段由MXML和ActionScript3.0组成的代码保存成.mxml文件,然后用编译器提供的命令行工具mxmlc.exe去编译成swf文件,最后就可以在FlashPlayer运行你这个应用了;当然我们实际开发过程中是不会这么原始的,我们有开发工具FlashBuilder4.5来完成这一系列任务;

 

所以这就引出另外的话题,Flex应用的编程语言MXML和ActionScript3.0;MXML就是一种类似于html的用于表现UI的标签形式,只不过这种标签是一个同名的ActionScript3.0类的另外一种形式; ActionScript3.0是真正的Flex应用中产生交互和业务逻辑的编程语言,这种语言的语法与Java很像,是一种面向对象的强类型语言,但是比Java要简单,更容易理解;如果你有Java开发基础,那么掌握ActionScript是非常轻松的事情;FlexSDK中的所有组件都是用ActionScript写成的,所有的Spark组件皮肤都是用mxml标签写成的;

最新的FlexSDK可以在Adobe官方网站上下载,除了FlashPlayer你看不到源码外,整个框架的源码,包括编译器的源码你都可以看到,感兴趣的可以到这个地址去下载:

http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK

 

前面说了Flex是为了企业应用而诞生,那么它究竟能做什么呢?我们来看看Adobe官方网站上的介绍:

http://www.adobe.com/products/flex/

这是Adobe关于Flex产品的门户网站地址,在这个页面的顶部有一个小Flash应用来介绍Flex究竟是什么,能干什么,谁在用它,接下来怎么入手等等:

从这个How is Flex being used?中可以看出Flex的三类典型应用:

l  数据可视化

l  用户自助的产品配置

l  简洁直观的表单输入

事实上,Flex所能做的不仅仅是这些,有很多用html实现不了的,或者只有在桌面应用中才能实现的应用,都有可能通过Flex来实现;

 

现在再来看下Adobe Flash Platform对于企业应用的成功案例:

http://www.adobe.com/flashplatform/technology/enterprise/

成功案例一:Demandbase

这是一家为B2B企业提供旨在改善营销效果、简化客户发掘过程的SAAS服务的公司;Demandbase借助Adobe Flash平台和支撑技术建立了一套按需解决方案,使得企业发掘有效客户像在线购买音乐那样容易;销售人员和营销人员可以从浏览器上访问这套系统,也可以从桌面widget,或者email中使用;

 

成功案例二:NASDAQ

纳斯达克,是众所周知的公司,该公司使用Adobe AIR运行时和开源的Flex框架并结合Amazon S3创建了这个市场回放产品,用来对大量的数据进行丰富的动态的展现和分析;该应用可以使投资者和经纪人回放市场事件,并实时的(指操作没有延时,无需等待)查看历史数据;

 

成功案例三:SAP BusinessObjects Xcelsius

SAPBusinessObjects Xcelsius软件被设计用来将业务数据转换为丰富的,可交互的数据仪表盘和图形化展示,而不需要任何编程工作;它充分的利用了Adobe Flash平台的能力,只需点几下就能生成可交互的数据驱动的内容;

 

成功案例四:Sharp Electronics

夏普电气使用Adobe Flash平台来部署一个可执行的“驾驶舱”应用,用它来告诉核心管理人员关键的SAP系统数据,从而加速了对新兴趋势的快速响应;这些数据被呈现在Adobe AIR应用中,并投放在65英寸的可交互大屏幕上显示;

 

Flex如此强大无所不能,但是有一点要记得,Flex只是用来开发客户端应用的,也包括桌面应用和移动应用,当它用来做web的前端时,必须要有后端来支持数据库的访问,比如Java/.NET,当它作为桌面应用和移动应用时,除了可以访问后端服务,还可以访问运行环境内置的数据库SQLite;这些关于桌面和移动应用的能力,都是得益于近几年来Flash平台的长足发展,使得原来的普通Flex程序员也能进行桌面和移动开发,而且可以实现一次开发,到处运行的理想;

 

任何事物都有它的长处,就必定会有局限性的方面,Flex也不例外;Flex擅长做数据驱动的应用,以及多媒体类的应用,比如视频播放等等,但是对于文字内容比较多的应用,就不太适合;所以你很少能看见大型网站或者内容管理系统以及门户会采用这种技术,不是说Flex不能做,而是这样做发挥不出优势来,而且还可能会把它的不足暴露出来;比如目前流行的互联网应用微博,你最多能看到新浪会有个AIR客户端,但是web版肯定是基于html/js去做的,手机上也是原生的Android应用和iOS应用比较普遍;所以,用好你手中的武器,用在合适的地方,不能滥用,更不能听信别人说HTML5要成为Flash杀手就对Flex也报怀疑态度;

 

----------------------- 结束语 ------------------------------------------

今天没有广告,因为状态不好,又喝了点小酒。。。。所以不发广告了,等下次有好的作品发布,再给大家吹牛吧,好了,下次再见!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值