tekynet 阅读(1036) 评论(0)
 
1、什么是flex?
将桌面软件丰富的功能同 web 的广度相结合,使企业级应用程序更为有效。 Macromedia Flex 表示服务器提供为开发者所熟悉、基于标准的编程框架和功能强大的组件,来为企业级应用程序创建功能更丰富、回应迅速的表示层。 查看 Flex 数据表 (Flash or PDF, 156K) 查看 Flex Builder 数据表 (Flash or PDF, 81K) Flex 1.5 的新特性 Rich Internet 应用程序:释放应用程序 ROI 的关键 现今的 web 应用程序有效利用了 web 的广度,但在提供易于使用和功能丰富的表示层却常常达不到用户的期望。这妨碍了应用程序的广泛使用,降低应用程序转化率,增加了培训成本,减少了整体 ROI。 Rich Internet 应用程序通过将桌面软件的丰富功能与 web 的最大广度相结合来提高 ROI。这下一代技术在改善用户体验的同时减少带宽占用和服务器负载。 Macromedia Flex 表示服务器提供为开发者所熟悉、基于标准的编程框架,用以提供 Rich Internet 应用程序的表示层。 增强应用程序效能通过提升最终用户体验来增加 ROI 提高应用程序转化率 改善用户满意度 增强应用程序的使用广度 减少带宽占用和服务器负载 为开发者所熟悉兼容现有的工具、流程和基础结构可使用从记事本到 Eclipse 的任何集成开发环境进行编程 启发性和声明性的编程流程 基于 XML、SOAP 和 ECMAScript 等标准 与现有组件和框架(包括 EJB 和 Struts 等)相集成 功能强大企业级功能丰富的、可扩展的用户界面构件库 高性能的运行时服务 完整的调试和简介功能 配置在现有基础架构
2、Flex的优势?
不需要进行浏览器兼容测试
AJAX的一个特点就是它比普通的XHTML和一些CSS要复杂的多。浏览器兼容性测试从此变成了可怕的梦魇。因为Flex应用程序编译成Flash SWF文件,所以不论你用什么样的操作系统和浏览器,它都同样下载为像素。
E4X:只要是解析过XML的人都知道解析的痛苦。Flex 2中的Actionscrip包含了针对XML的Ecmascript或者叫做E4X。它通过把XML看作一个原始变量使得操作一个XML对象变得简单。看一下这些简单的例子吧。
不再有布局界面的痛苦
我们都曾经忍受过这种痛苦。所有热衷于使用CSS布局的都知道试图适当地布局那些DIV标签时的痛苦。确实很痛苦。通过使用基于容器的Flex标记语言(MXML),把确定的(fixed)和流动的(liquid)布局设计转变成想要的布局结果变得非常容易。
简单的域验证
所有创建过商业程序或者电子商务应用程序的人都处理过表单域验证。邮政编码。信用卡号。这些在Flex中都是内置的并且很容易使用。
丰富的媒体支持
Flash平台让以前占统治地位的Web媒体播放器(Real,Windows Media)完全失去优势。Flash平台是轻量级的,并且工作时不需要安装任何东西。Flex使得你在程序适当的地方嵌入音频或者视频内容变得简单。
实现表现层和内容的真正分离
多年来,开发者都在说把数据从表现层分离出来的优点。当然,在Web世界中,说总比做容易。绝大多数的web应用程序都是和一些形式的动态内容有关联的模版。使用Flex,可以把数据巧妙地从任何地方(简单的XML,SOAP,等)中取出并帮定到界面中的元素上。这样做可以促进更严格的分离。你的服务器现在只传输数据就行了。当你这样做的时候,你不只拥有了一个应用程序,你还拥有了一个API。
Flex开发环境
所有的Javascript开发者都知道开发AJAX/JS应用程序的痛苦。调试是件烦人的工作而且没有任何有关AJAX/Javascript的可视化的开发环境。Flex Builder 2是一个Flex可视化编程环境,它是像Visual Studio和Jbuilder一样的已经产业化的IDE。它是建立在Eclipse IDE平台的基础上的。
CSS 支持
我们在Arc90已经得到了一些认真的CSS天才,我们也很高兴的看到Flex的很多样式也是由CSS控制的。颜色。字体。倾斜度。那些CSS技巧仍然可以应用到皮肤和自定义Flex应用程序上。你可以看一下Flex Style Explorer对Flex的CSS有个简单的认识。
Web存档文件的部署
在 J2EE 服务器上或 servlet 容器中将 Flex 应用程序打包及部署成标准的 WAR 文件。

3、Flex的难易程度?
Flex开发对于一个熟悉ActionScript和XML语法的人来说比我想象中的要简单,效果也非常显著。也不要把Flex想象的非常神秘,查看生成的页面可以看到Flex不过通过服务器端的转换把xml文件编译成一个SWF文件显示在网页中(而且还不是显示在屏幕中间)。如果熟悉样式表的使用的话,mxml的属性也很容易理解和掌握。

4、我们都可以掌握flex吗?
你至少需要了解两种语言才能开发Flex应用程序:MXML和ActionScript。MXML是一种XML标记语言,主要用来设置Flex的用户界面,还包括一些不可见的元素,例如访问数据源、数据绑定等。ActionScript是一种面向对象的编程语言,采用ECMAScript第4版的标准,用来完成程序逻辑和响应用户的交互。一个典型的Flex应用程序开发可以遵循下面的步骤:
        使用编辑器或可视化工具创建包含根标记的一个MXML文件;
        添加一个或多个容器;
        添加对容器的控制,如输入框、按钮和输出框;
        定义数据模型;
        添加WebService,HTTPService或请求远程Java对象操作;
        添加对数据字段的验证;
添加脚本扩展组件;
        调试

5、为何选择学习flex?
Flex带给了JSP\ASP等广大的web application开发人员相近的工作流程与编程思路, 采用了XML declaration + procedural scripting language的模型, 建立了一整套的Flex class library来做为UI描述的tags, 使得开发Flash Form application式的swf的过程就像开发html page一样类似.

6、Flex与其他同类的区别?与flash的区别?
Flex 是 Macromedia发布的presentation server(展现服务),它是java web server的一个应用,根据.mxml文件(纯粹的xml描述文件和actionscript)产生相应得.swf文件,传送到客户端,由客户端的flash player或者shockwave player解释执行,给用户以丰富的客户体验。
大名鼎鼎的Macromedia Flash是强大的矢量动画编辑工具,在作动画起家之后,Flash一直在谋求rich internet application(ria富客户端)的霸主地位,最有影响的是,已经推出了面向对象的编成脚本actionscript2.0,并且建立起类似于java swing的类库和相应component(组件)。等非Flash途径,解释.mxml文件组织components,并生成相应得.swf文件。Flex的component和flash的component很相似,但是有所改进增强。
Flex和j2ee/.net其实没什么关系,Macromedia用java做出来个应用把flash的技术融合到j2ee里面,里面去;最繁琐的问题那就是web 客户端的问题。
Flex应用程序与传统的HTML应用程序的主要区别在于Flex应用程序处理最适合在客户端运行,如字段校验、数据格式、分类、过滤、工具提示、合成视频、行为及效果等。Flex 可使开发人员更好地交付应用程序,这种应用程序使用户可以迅速反应、在不同状态与显示间流畅过渡,并提供毫无中断的连续的工作流。
7、flex的功能和应用
利用Flash建构高互动性网站:
相较于Workplace的Rich Client是企业内部协同合作的应用,IBM与Macromedia合作推出的Flex展示服务器,则是针对电子商务推出的解决方案,希望藉由RIA(Rich Internet Application)的接口,颠覆目前的网站操作经验,协助企业建置互动性更强的网站。 透过Flash提供的客户端经验,Macromedia称之为「Halo」,是Rich Internet Application的一种跨平台经验模式,Flex就是藉由Halo模式,结合桌面应用程序的反应力与丰富性,及网页应用程序的散播力,以协助企业目前网页应用程序缺乏客户端智能的情况。
Flash Player是散播应用的通路:
根据NPD Group的统计,Flash Player的安装率高达98%,所以若采用Rich Client的架构,客户端额外安装的负担减少很多。此外,Flash Player档案并不大,全新下载Flash Player的话,档案大小约400k;如果仅是功能更新,Flash引擎会自动侦测下载需要更新的部分,使用者不见得会察觉系统更新行为。Macromedia把Flash Player定位为一个「通路」,目前支持的平台包括计算机及PDA,未来将延伸应用到手机及数字电视。由于Flash使用向量技术,不论下载至任何平台,Flash档不用重写,只需调整需要呈现的内容即可,所以不但可减轻开发人员的负担,也可保证用户拥有一致的使用经验。
相较于网页资料无法保存状态,Flex应用程序在Flash Player虚拟机器上执行,可呈现实时的信息,及处理字段验证、资料格式化、排序、过滤、提示、整合影像、行为及效果等客户端工作,无需换页或返回上一页。如果以Flash呈现网站内容,由于Flex展示服务器会编译MXML档案,成SWF格式的Flash档,因此客户端无法检视原始程序代码,安全控管机制不易被破解,因此可避免传统网页可能的安全性问题。
Flash 6.0以后的版本,已支持数据链路的功能,Flex提供Flash Remoting、Web Services、Java Object、Http Query及XML等,四种执行期服务(Runtime Services)串连后端服务器,整合企业资源。此外,Flash整合视讯功能,可以对象形式加入影音内容。
Flex解决方案架构:
在多层式(N-Tier)应用程序架构中,Flex展示服务器位于接口层,用以改善目前HTML网页夹带客户端程序代码的问题。企业既有的架构导入Flex,不需要更动商业逻辑层,只是加入一个展示服务器,强化接口层。Flex展示服务器以WAR档部署在现有的Java应用服务器,并在应用服务器中执行。目前Flex支持IBM WebSphere、BEA WebLogic、Macromedia JRun及Apache Tomcat,的版本。
Flex应用程序由MXML及ActionScript组成,MXML用以宣告定义应用程序中使用者接口的元素;而ActionScript 2.0则处理客户端逻辑与控制程序。程序背后的Flex类别链接库,包含Flex组件、资料系结、行为与其它功能,开发者运用类别链接库建立使用者接口及程序行为。
Flex展示服务器不是发布赤裸裸的MXML文件及ActionScript程序,而是由Flex应用程序编译成SWF格式的Flash檔,下载至客户端以Flash Player执行。利用执行期服务,Flex应用程序也可与应用服务器及数据库沟通交换资料,以对客户端使用者的动作产生响应。
ActionScript 2.0瞄准C#及Java开发者:
过去Macromedia提供Flash MX作为开发工具,却遭遇一大瓶颈,因为虽然业界有很多Flash的设计人员,却不见得有足够的Flash开发人员。由于ActionScript开发应用程序相当复杂,Flash独有的时间轴、舞台及动画等的概念,与一般程序开发的逻辑大不相同,导致学习的门槛让开发人员感到挫折。
因此Macromedia针对新推出的Flex做了大幅的修正,以MXML设计使用者接口,而ActionScript 2.0则撰写商业逻辑及组件的行为。为降低开发的门槛,Macromedia遵循ECMAScript 4标准,改写了ActionScript推出ActionScript 2.0,是对象导向的程序语言,瞄准C#及Java的开发人员,采用传统的程序化开发方法,语法与Java相同,只是引用的对象及方法不同,所以熟悉Java的开发人员将很容易上手。
由于Flex是IBM与Macromedia合作的产品,因此未来Java开放原始码开发工具Eclipse,会推出Flex的外挂程序,至于其它的开发工具,Macromedia会释出Flex的链接库,只要加入Feature Plug-in,即可支持Flex。
设计客户端接口的MXML:
跟HTML一样,MXML是描述使用者接口内容及功能的标记语言,然而不同的是,MXML分隔接口与商业逻辑的关联性,客户端逻辑由ActionScript 2.0处理。Flex展示服务器会编译两者成为SWF格式的Flash文件,如果要修改接口内容,只需调整MXML档,无需更动ActionScript 2.0程序,可提高应用程序的重复使用性,强化生产力。
MXML是以XML为基础的标记语言,目前除了Macromedia Flash MX外,记事本及UltraEdit等文字编辑器均可撰写MXML,不过如同手工撰写HTML是不够直觉的经验,Macromedia预计今年暑假推出代号「Brady」的设计工具,是MXML的可视化设计工具,以类似Dreamwaver的接口,提升设计MXML的便利性。
Flash Player的版本影响Flash的效能:
根据浏览网站的经验分析,虽然参杂Flash的效果令人目眩神迷,却也需要一段等待下载Flash档的时间。尤其是首页的Flash档,如果只是增加效果的动画,使用者可能宁愿选择跳过。零壹科技技术顾问陈子龙表示:「这与Flash的最佳化经验有关,有很多方式可以避免过长的等待时间。如果以Flex展示服务器架构电子商务网站,Flash与HTML执行效能比较,的确是企业衡量的条件之一,陈子龙表示:「效能是重要的议题之一,不过对电子商务而言,快速的开发方式及更好的使用者体验更为重要。」Flash的做法是先把需要的资料下载到客户端,及时在客户端运算,所以第一次会稍微慢些。不过后续的效能跟及时性,与HTML必须不断更新网页的使用经验相较,是较优质的体验。此外,效能也与Flash Player的版本有关,较新版的Flash Player,提供较好的效能品质。
适合Flex的应用类型:
并不是所有应用程序都适合采用Flex导入RIA解决方案,零壹科技指出需要多个步骤才能完成的流程例如订房系统,利用Flash整合所有步骤在单一窗口,可避免逐步设定不断换页的麻烦。以现今的购物网站为例,使用者在选择产品类型之后,还需选择品牌、比对功能及价位,来回点选寻找适合的产品花费很多时间。结合Flex以Flash展现,使用者可在单一画面设定产品的条件,后端服务器即自动筛选出适合的产品,使用者再拖放需要的产品至购物车,这些程序都不需要换页,将带给使用者全新的网络购物经验。此外,诸如需要许多手动操作的系统,及必须呈现可视化内容的网站,也都是Flex适合的范围。
8、Flex的市场前景?
市场对Flex技术的反应整整比ajax慢一年多,这也跟macormedia对flex的推广失利有关,到06年4月份人才市场才表现出对flex开发者的需求,直到06年7月flex2推出后,需求稳步增长。试想,如果flex2早些推出,那么现在又是一番景象了,从今年年初笔者开始关注flex以来,亲眼目睹了这一爆发式的增长,Ted patrick的这篇文章印证了这个过程。可以预见,在adobe一系列活动的推动下,再加上apollo平台带来的冲击效应,未来将会有越来越多的flex工作机会。

9、flex人才
flex2才发布不长时间,所以没有见到开发者的大规模增长也是正常的,但是现在情况已是大不相同,最近flex开发者的数量稳步增长,而且大企业对flex开发者的需求也越来越多,flex正在adobe的多项政策的推动下逐步深入企业和开发者视野中。
第一重 初级程序员
Flex初级程序员是指经过一周到一个月的间歇性学习(自学)和模仿而形成的上手级开发者。这个定义主要从投入精力和学习路线来规定的,这个层次的程序员往往是出于一时的爱好或者项目的需要而进入改领域的学习。其特点是能做一些简单的应用,能搞清楚flex应用的开发过程,使用flexbuilder能拖拽出一个界面来,并能写简单的AS脚本,从而完成一个基本的Flex应用。这类程序员从此就再没有深入研究,而且没有完整的看过官方的所有开发文档,也没有体会到Flex/RIA开发的思想,基本上就在该领域停滞不前了。
第二重 中级程序员
该阶段的程序员是指超过三个月的学习(自学)并完成至少一个项目的进阶级开发者。位于此阶段的Flex开发者通过扎实系统的文档学习并通过实战的演练,对Flex整个框架有很全面的认识,能够熟练使用IDE进行MXML/AS开发RIA应用,对程序结构、程序运行流程、对于flex应用与传统web应用的区别都有很好的理解,能独立的实现flex为前端技术的web应用。这类程序员注重基础、细节,尤其是flex应用与web应用与桌面应用的差别与联系,而且善于钻研技术,非常具有软件开发的潜力,而且只需加以时日便可进一步上升成为高手。
第三重 高级程序员
Flex高级程序员是指连续从事一年以上企业级Flash/Flex应用开发并在项目中承担主要角色的高手级开发者。这个层次的修炼很不容易,首先需要自己不断的努力,而且最难办到的是能在一个长期使用Flex技术的公司(team)中持续锻炼。处于这个层次的Flex程序员往往对企业级RIA架构比如cairngorm非常熟悉,而且能对各种RIA架构做出自己的评价。对新项目的功能和模块、组件的划分都有清晰的认识,对于Flex应用的方方面面例如幕后的运行过程、显示结构的模式、事件流顺序、组件的制作手法、程序规模和性能的控制都有深刻的理解。对于这个层次的flex程序员来说,自定义一个通用的组件是很容易的事情,因为他对于Flex的组件体系甚至组件的源码他都了如指掌。夸张的来说,他们写flex应用很少看语法参考,写代码甚至可以在记事本里完成。这样的flex开发者在全球都很少,属于高手中的高手,是大公司争强的对象,也是广大flex开发者努力的目标。
第四重 资深程序员
资深Flex程序员是指有着多年的RIA开发经验(超过10年的软件行业从业时间)并有广泛的软件开发相关技术背景的大牛级人物。这样的人物,只要是你接触Flex这一领域就能听到他的大名,他们的博客是众多Flex开发者的圣殿,他们的声音就是整个社区的福音和号角,他们的著作是我们的圣经,这样的人物常常会在大型活动比如360Flex或者adobe MAX大会上经常出现,他们代表着这个领域的前沿和潮流。这样的程序员往往是Flex技术进步和发展的原动力,是我们Flex开发者努力一生的目标,甚至是我们的偶像,比如Ted Patric以及他的博客上的Disruptive Evangelism(突破性的传道者),总共才11个人(都是Adobe公司的)。
10、Flex人才的年薪?
作为一名程序员,年薪10万-30万不等,由于flex是门比较新的技术,所以他的前景是非常广阔的,因此flex人才的年薪不会低于其他的程序人员。

 


发表评论
切换编辑模式