- 浏览: 52708 次
- 性别:
- 来自: 天津
最近访客 更多访客>>
最新评论
-
shuiyunbing:
单元格样式怎么处理?
将flex页面数据导出到excel -
gaoyide:
啥破玩意!!
FLEX alive pdf 打印pdf -
zhong_pro:
关于博主的问题点,做如下修改就可以达到不需要属性isSelec ...
Flex 4通过重写DataGridColumn和CheckBox类给DataGrid添加选择列-CheckBoxColumn -
zhenxingzzx:
看不到附件的 !!
Adobe AIR右键菜单和系统托盘(Tray)功能以及实现方法 -
pangxin12345:
dingdingdingdingding
Adobe AIR右键菜单和系统托盘(Tray)功能以及实现方法
原文地址:http://www.infoq.com/cn/news/2008/04/top-10-flex-mistakes
英文原文:Top 10 Mistakes when building Flex Application
在这篇新闻中,Adobe的James Ward与InfoQ.com一起为你带来了Flex的另一种10大(Flex最新的10大)。Flex是一个开源的应用开发框架,用来构建运行在web(使用 Flash Player)或者桌面上(使用Adobe AIR)的富Internet应用。总之,Flex是一个强大易用的框架,但是今天让我们瞧瞧构建Flex应用时经常犯的错误。
对于Flex新手,请阅读InfoQ最近的Adobe Flex Basics以对该框架有一个快速的了解。下面是易犯的错误列表:
1. 使用RIA框架去构建Web1.0应用(新技术换汤不换药)。
从Web 1.0到RIA的过渡中最大的挑战之一来自思考方式的转变。Flex给予开发者一个高级的组件库,使其可以完成很多以前不可能完成的任务。但是很多时候,Flex的这种能力被忽略了,它仅仅被用来实现更加传统的Web 1.0应用。
构建Web 2.0应用不仅仅意味着页面的局部刷新和旋转的圆角图标。例如,Flex开发者应使用矢量图向用户提供数据的可视化表示,以及对于富应用流的高级控制。最近Stephan Janssen与InfoQ.com一起讨论了该议题:
作为一个Java开发者,对于面向对象的ActionScript和UI标记语言的学习简直就是小菜一碟。但是对于(Java)开发者来说真正的挑战在于我们不是设计师,并且这两个技术对于RIA来说是必不可少的。
2. 破坏标准的浏览器体验
尽管Flex确实提供了一个优秀的平台以改善用户体验,但是保持用户习惯,如后退按钮、书签和自动完成也是相当重要的。
Flex 3包含了新的深层链接特性以支持后退按钮和书签。你可以访问labs.adobe.com来了解更多。那有很多组件能够实现自动完成。你可以使用来自于Adobe Exchange的AutoComplete Input组件。
3. 使用过多的容器导致应用变慢
Flash Player使用了一个按层次显示的对象图,这一点与HTML的文档对象模型(DOM)很相似。容器嵌套的层次越深,渲染所花费的时间就越长。Adobe的Flex开发者中心有一篇文章讨论了关于Flex性能的最佳实践,包括了容器的使用细节:
Flex最大的性能风险来自于对容器的滥用。嵌套太多的容器会影响应用的性能。这是Flex开发者面临的最严重的性能风险——不过还好,它完全能被避免。
4. 使用XML而不是其他更优化的协议导致应用变慢
Flex向开发者提供了多种选择以在Flex客户端和服务器之间进行数据传输,包括AMF3、XML、SOAP及直接的HTTP请求。Ward在他的人口普查应用中阐述了这些技术的使用及性能。
对于后端使用Java的新项目来说,应该考虑一下BlazeDS。BlazeDS是Adobe最近的一个开源数据服务产品,它使用了AMF3协议。AMF是一个二进制传输协议,很容易与Java集成,其性能要优于XML。对于所有主要的后端技术都有相应的AMF开源实现。
如果你不选择BlazeDS,那么你还可以选择Hessian。Hessian对二进制的web services协议提供了ActionScript/Flex支持。
5. 试图雇佣Flex开发者
现在很难找到有经验的Flex开发者。Flex现在正处在上世纪90年代Java所处的位置。Flex开发者已经供不应求了。这就造成了难以寻觅 到有经验的Flex开发者的后果。然而,这给Java开发者创造了一个很好的机会以扩充技能,并且从事一种新兴且有趣的技术。很多寻找Flex开发者的公 司直接对Java或者其他web开发者进行几周的Flex培训,并且大获成功。对于熟悉Web和GUI编程的开发者来说,学习Flex语言和APIs易如 反掌。
6. 特效的过度使用
开发者可以很容易地通过Flash增加特效。但是要确保特效有意义并且与上下文是匹配的。否则他们只会让用户反感。特效的时间选择也很重要。交互设计器可以帮助我们决定何时应使用特效,何时不应该使用。交互设计器还能为我们推荐最佳的特效类型、间隔和最简化的功能。
关于特效的使用在laair.org上有一篇好文:
大多数的特效简直太长了。它们不但长,而且还慢,甚至让人反感。关掉它。如果我遇到这种事情的话,我就会转身离去,因为我实在讨厌这种等待。
千万不要误会我,我并不是反对特效。我只是反对为了目的而做的太长或者太过分的特效。每个特效都可以依照其目的进行分解。找到你要特效的目的,然后再使用它。
7. 没有搭建企业生态系统
就像其他的软件项目一样,为于你的Flex应用建立企业生态系统是非常重要的。
测试驱动开发(TDD)在当前是大多数企业项目的首选方案。对于Flex来说,FlexUnit框架可用来编写单元测试。在Adobe的开发者网络上,Neil Webb讨论了面向Flex开发者的TDD及FlexUnit的使用。此外,Flexcover可用来度量代码覆盖率。
当多个开发者协同工作时,持续集成(Continuous Integration)被证明是良好的实践。与Java应用类似,也有相应的Ant和Maven插件对你的Flex应用进行持续集成。
8. 没有使用整个框架
在Adobe Flex中有大量可选的特性,你应该考虑在你的应用中使用它们。例如,运行时共享库(Runtime Shared Libraries,即RSL)可用来减少应用的大小。
你可以将共享资源集成到单独的文件中,这样就可以在客户端单独下载和缓存了,通过这种手段可以减少应用产生 的SWF文件的大小。很多Flex应用可以在运行时加载这些共享资源,而每个客户端只需下载一次即可。这些共享资源叫做运行时共享库(Runtime Shared Libraries)。
框架的另一个特性是内建的辅助功能。你可以通过Adobe在线文档了解更多的关于Flex的辅助功能的信息。除了内建的辅助功能外,框架还提供了对于本地化的内在支持。请访问Adobe新手上路来了解最新的Flex3框架特性。
9. 使用复杂的渲染器降低了DateGrid的速度
针对DataGrid开箱即用的itemRenderer已经有过很好的优化了。误解#3讨论了嵌套过深的容器的性能问题。在Flex中有一个地 方很容易造成容器的深层次嵌套,那就是DataGrid的item渲染器。由DataGrid所渲染的item渲染器数量等于可见的行数乘以可见的列数。 定制的DataGrid和List item渲染器应该经过非常好的优化才行。当需要在item渲染器中使用复杂的布局逻辑时,最好使用UIComponent(或者其他底层类)并且手工完 成该单元格内容的定位。
10. 没有准备离线应用。
RIAs的传统模型在于浏览器。然而像Adobe AIR和Google Gears这 样的技术使得应用可以离线运行。如果用户需要可以离线对应用时而你尚未准备好的话,那将你的应用改为支持离线特性将变得异常困难。典型地,在web应用 中,业务逻辑存在于服务器端。在离线RIAs中,业务逻辑必须转到客户端。为了使应用既支持离线,也支持在线,那就很有必要提前决定某些业务逻辑的位置。
标签集:Flex AS3 RIA
英文原文:Top 10 Mistakes when building Flex Application
在这篇新闻中,Adobe的James Ward与InfoQ.com一起为你带来了Flex的另一种10大(Flex最新的10大)。Flex是一个开源的应用开发框架,用来构建运行在web(使用 Flash Player)或者桌面上(使用Adobe AIR)的富Internet应用。总之,Flex是一个强大易用的框架,但是今天让我们瞧瞧构建Flex应用时经常犯的错误。
对于Flex新手,请阅读InfoQ最近的Adobe Flex Basics以对该框架有一个快速的了解。下面是易犯的错误列表:
1. 使用RIA框架去构建Web1.0应用(新技术换汤不换药)。
从Web 1.0到RIA的过渡中最大的挑战之一来自思考方式的转变。Flex给予开发者一个高级的组件库,使其可以完成很多以前不可能完成的任务。但是很多时候,Flex的这种能力被忽略了,它仅仅被用来实现更加传统的Web 1.0应用。
构建Web 2.0应用不仅仅意味着页面的局部刷新和旋转的圆角图标。例如,Flex开发者应使用矢量图向用户提供数据的可视化表示,以及对于富应用流的高级控制。最近Stephan Janssen与InfoQ.com一起讨论了该议题:
作为一个Java开发者,对于面向对象的ActionScript和UI标记语言的学习简直就是小菜一碟。但是对于(Java)开发者来说真正的挑战在于我们不是设计师,并且这两个技术对于RIA来说是必不可少的。
2. 破坏标准的浏览器体验
尽管Flex确实提供了一个优秀的平台以改善用户体验,但是保持用户习惯,如后退按钮、书签和自动完成也是相当重要的。
Flex 3包含了新的深层链接特性以支持后退按钮和书签。你可以访问labs.adobe.com来了解更多。那有很多组件能够实现自动完成。你可以使用来自于Adobe Exchange的AutoComplete Input组件。
3. 使用过多的容器导致应用变慢
Flash Player使用了一个按层次显示的对象图,这一点与HTML的文档对象模型(DOM)很相似。容器嵌套的层次越深,渲染所花费的时间就越长。Adobe的Flex开发者中心有一篇文章讨论了关于Flex性能的最佳实践,包括了容器的使用细节:
Flex最大的性能风险来自于对容器的滥用。嵌套太多的容器会影响应用的性能。这是Flex开发者面临的最严重的性能风险——不过还好,它完全能被避免。
4. 使用XML而不是其他更优化的协议导致应用变慢
Flex向开发者提供了多种选择以在Flex客户端和服务器之间进行数据传输,包括AMF3、XML、SOAP及直接的HTTP请求。Ward在他的人口普查应用中阐述了这些技术的使用及性能。
对于后端使用Java的新项目来说,应该考虑一下BlazeDS。BlazeDS是Adobe最近的一个开源数据服务产品,它使用了AMF3协议。AMF是一个二进制传输协议,很容易与Java集成,其性能要优于XML。对于所有主要的后端技术都有相应的AMF开源实现。
如果你不选择BlazeDS,那么你还可以选择Hessian。Hessian对二进制的web services协议提供了ActionScript/Flex支持。
5. 试图雇佣Flex开发者
现在很难找到有经验的Flex开发者。Flex现在正处在上世纪90年代Java所处的位置。Flex开发者已经供不应求了。这就造成了难以寻觅 到有经验的Flex开发者的后果。然而,这给Java开发者创造了一个很好的机会以扩充技能,并且从事一种新兴且有趣的技术。很多寻找Flex开发者的公 司直接对Java或者其他web开发者进行几周的Flex培训,并且大获成功。对于熟悉Web和GUI编程的开发者来说,学习Flex语言和APIs易如 反掌。
6. 特效的过度使用
开发者可以很容易地通过Flash增加特效。但是要确保特效有意义并且与上下文是匹配的。否则他们只会让用户反感。特效的时间选择也很重要。交互设计器可以帮助我们决定何时应使用特效,何时不应该使用。交互设计器还能为我们推荐最佳的特效类型、间隔和最简化的功能。
关于特效的使用在laair.org上有一篇好文:
大多数的特效简直太长了。它们不但长,而且还慢,甚至让人反感。关掉它。如果我遇到这种事情的话,我就会转身离去,因为我实在讨厌这种等待。
千万不要误会我,我并不是反对特效。我只是反对为了目的而做的太长或者太过分的特效。每个特效都可以依照其目的进行分解。找到你要特效的目的,然后再使用它。
7. 没有搭建企业生态系统
就像其他的软件项目一样,为于你的Flex应用建立企业生态系统是非常重要的。
测试驱动开发(TDD)在当前是大多数企业项目的首选方案。对于Flex来说,FlexUnit框架可用来编写单元测试。在Adobe的开发者网络上,Neil Webb讨论了面向Flex开发者的TDD及FlexUnit的使用。此外,Flexcover可用来度量代码覆盖率。
当多个开发者协同工作时,持续集成(Continuous Integration)被证明是良好的实践。与Java应用类似,也有相应的Ant和Maven插件对你的Flex应用进行持续集成。
8. 没有使用整个框架
在Adobe Flex中有大量可选的特性,你应该考虑在你的应用中使用它们。例如,运行时共享库(Runtime Shared Libraries,即RSL)可用来减少应用的大小。
你可以将共享资源集成到单独的文件中,这样就可以在客户端单独下载和缓存了,通过这种手段可以减少应用产生 的SWF文件的大小。很多Flex应用可以在运行时加载这些共享资源,而每个客户端只需下载一次即可。这些共享资源叫做运行时共享库(Runtime Shared Libraries)。
框架的另一个特性是内建的辅助功能。你可以通过Adobe在线文档了解更多的关于Flex的辅助功能的信息。除了内建的辅助功能外,框架还提供了对于本地化的内在支持。请访问Adobe新手上路来了解最新的Flex3框架特性。
9. 使用复杂的渲染器降低了DateGrid的速度
针对DataGrid开箱即用的itemRenderer已经有过很好的优化了。误解#3讨论了嵌套过深的容器的性能问题。在Flex中有一个地 方很容易造成容器的深层次嵌套,那就是DataGrid的item渲染器。由DataGrid所渲染的item渲染器数量等于可见的行数乘以可见的列数。 定制的DataGrid和List item渲染器应该经过非常好的优化才行。当需要在item渲染器中使用复杂的布局逻辑时,最好使用UIComponent(或者其他底层类)并且手工完 成该单元格内容的定位。
10. 没有准备离线应用。
RIAs的传统模型在于浏览器。然而像Adobe AIR和Google Gears这 样的技术使得应用可以离线运行。如果用户需要可以离线对应用时而你尚未准备好的话,那将你的应用改为支持离线特性将变得异常困难。典型地,在web应用 中,业务逻辑存在于服务器端。在离线RIAs中,业务逻辑必须转到客户端。为了使应用既支持离线,也支持在线,那就很有必要提前决定某些业务逻辑的位置。
标签集:Flex AS3 RIA
发表评论
-
转:flex滤镜:聚光灯效果、放大镜效果、缩放模糊效果、浮雕效果和水波效果
2011-05-30 21:30 1711可惜提供的源代码没有相应的libs包 1:聚光灯效果: 实 ... -
Air File类使用方法
2010-09-06 10:24 2143air file 系统中文件或目 ... -
Flex air修改外部xml文件
2010-09-06 09:35 2046AIR的文件操作不难,看完教程应该可以满足你对文件的所有基本操 ... -
air 读取服务器端文件
2010-09-03 13:44 991import flash.events.Event; ... -
air下载文件
2010-09-02 10:43 797http://www.code-design.cn/blogd ... -
三维程序/游戏制作基本常识
2010-08-25 13:19 853Furry/DDM君: 很多flash3d初 ... -
FLEX的RIA应用程序中配置文件(*-app.xml)的说明
2010-06-22 16:53 842<?xml version="1.0" ... -
Adobe AIR右键菜单和系统托盘(Tray)功能以及实现方法
2010-05-31 17:21 2027AIR教程 Adobe AIR右键菜单和系统托盘(Tray ... -
Flash Bulider4注册码生成器
2010-05-18 11:03 1784Flash Builder 4正式版发布,很高兴还有简体中文 ... -
FLex视图模式与视图转换
2010-05-10 14:13 17923.2 视图模式与视图转换 3.2.1 视图模式 Fle ... -
FusionCharts中文乱码问题
2010-05-06 11:17 2858从 http://www.infosoftglobal.com ... -
Flex ShareObject简单应用
2010-04-26 17:47 1030[size=medium]Share object一般用来保存 ... -
FLEX问题总汇(1)
2010-04-23 15:17 834论坛一直有些问题有人重复的发帖,今天有空就做了点总结,希望和大 ... -
Flex 开发: 类的反射
2010-04-23 10:34 1014Flex 反射简介 在很多时候反射为程序的动态性提供了一种可 ... -
Flex 3 体验:AdvancedDataGrid的使用(第一部分)
2010-04-22 17:14 1382今天我们要说的是官方文档中用了整章介绍的AdvancedDat ... -
FLEX alive pdf 打印pdf
2010-04-22 10:33 1914FLEX alive pdf 打印pdf ,废话不多说了,代码 ... -
FLEX AIR 连接local SQL database
2010-04-22 10:19 1281FLEX AIR 连接本地LocalSQL实现增删改查,废话不 ... -
将flex页面数据导出到excel
2010-04-20 10:07 1559本例实现将flex中的数据 ... -
FLEX TEXTINPUT restrict(正则表达式,约束,限定)
2010-04-19 16:28 2046通常要对输入TextInput中 ... -
actionscript 中 如何控制数字精度(小数位数)
2010-04-16 16:58 1619很简单的一件事,但是如果不知道的话一样很麻烦。Number包里 ...
相关推荐
构建Flex应用的10大误区
创 建过Java多语言本地化应用的朋友应该都很熟悉Java的本地化资源访问的功能,现在好了,Flex2诸多激动人心更新中的一个就是本地化特性 (localization feature),这倒是Adobe加强推广Flex2的一个强助力了(这一...
flex flex flex flex flex
五分钟用Flex构建WebService应用,我以前看过的Flex连接.net的WebService比较好的保存下来的网页 2分下完别说我骗你~
《Flex企业应用开发实战》共分为4大部分,涵盖企业级应用开发的整个生命周期。首先介绍了Flex/Flash的工作机理和利用Flex开发企业级应用必须掌握的基础知识和核心元素;接着剖析了Flex与Java的通信机制,以及Flex...
Flex、案例、Flex应用案例
ArcGIS API for Flex应用开发
这是一本入门级的Flex电子书,适合入门的朋友看!
《Flex企业应用开发实战》全书共分为4大部分,涵盖企业级应用开发的整个生命周期。首先介绍了Flex/Flash的工作机理和利用Flex开发企业级应用必须掌握的基础知识和核心元素;接着剖析了Flex与Java的通信机制,以及...
Flex4系列教程之五 – 构建Flex4为前端的Java EE项目
资源名称:Flex构建Android和iOS应用程序视频教程资源目录:【】00Introduction【】01GettingStartedwithFlexandAndroid【】03UnderstandingtheArchitectureofaFlexMobileApp【】04UtilizingMobileComponents【】05...
ESRI解决方案 构建基于Flex API和JavaScript API的地图应用
集成 Flex, Spring, Hibernate 构建应用程序.pdf集成 Flex, Spring, Hibernate 构建应用程序.pdf集成 Flex, Spring, Hibernate 构建应用程序.pdf集成 Flex, Spring, Hibernate 构建应用程序.pdf
基于FLEX构建RIA应用的研究与实现.pdf
sfapi 可以expose flex应用程序的控件,以便测试程序通过执行js方法调用而操作flex界面控件
具有代表性的17个Flex开发的应用介绍,具有一定参考价值
代源码的企业应用FLEX开发实战,包括电子书及源码,分为10个章节
精通Flex 3.0――14.3.2 创建通过Remoting访问服务端的Flex应用 精通Flex 3.0――14.4 DataManagement的Flex应用 精通Flex 3.0――14.4.1 DataManagement服务介绍 精通Flex 3.0――14.4.2 创建基于DataManagement的...
FLEX企业应用开发实战_part2