Flex开发环境,开发工具,开发框架总结

       2004年3月,Macromedia(2005年被Adobe收购)发布了Flex 1.0。从那时起,基于Flex的RIA开发获得了越来越多的动力,RIA也已经成为广泛接受的Web应用开发方式。今年,Adobe将发布Flex 4,随之而来的是Flash Builder 4以及Flash Catalyst,他们都将成为Adobe Flash Platform技术的组成部分。最近InfoQ回顾了当前的Flex RIA生态圈以明晰Adobe Flex的现状。

Flex开发环境

       Adobe Flex Builder仍然是使用最为广泛的商业Flex IDE。它构建在开源的Eclipse IDE平台之上。在Flex 4发布后,Flex Builder即将更名为Flash Builder。除此以外,Adobe Flash Catalyst目前还处在beta版,这是一款设计工具,旨在通过集成设计与编程以将Flash设计人员与Flex开发人员联系起来。

除了Adobe的工具外,Flex开发也已经深入到了现有的各种IDE中。

应用框架

        开发软件框架的目的在于实现常见的软件开发模式以提高编程生产率及改善质量。InfoQ注意到2008年推出的一些Flex/ActionScript框架对于Flex使用率的提升功不可没。他们是CairngormPureMVCModel-Glue:FlexFoundryGuasax Flex Framework、ARPFlest FrameworkEasyMVC以及Adobe FAST。从那以后涌现出了越来越多的框架,这些框架丰富了Flex开发生态圈:

  • Ruboss这个Flex框架集成了Ruby on RailsMerb。它还有一个RESTful接口以与Adobe AIR的嵌入式SQLite数据库进行通信。Ruboss框架与Rails和Merb应用的关系就好像是Adobe LiveCycle Data Services ES与J2EE应用的关系一样。
  • Mate Flex框架发布于2008年,其目的是简化事件驱动的Flex应用开发。
  • Swiz是个面向Flex的IoC框架。它并没有太多的强制要求,比如目录结构或是样板代码等,这一点与其他框架如JEE大不相同。
  • Prana是又一个面向ActionScript的IoC框架。它基于Spring框架的XML方式进行开发。
  • JumpShip是个ActionScript MVC框架,包含了标准的数据模型以进行自动化的数据分类、枚举以及搜索。它反对在框架中使用单例模式,而单例模式在现代的软件框架中得到了广泛的应用。
  • GAIA是个面向Adobe Flash的前端ActionScript框架,支持Flex Builder。
  • Razor是个ActionScript组件框架,对常用的Flex组件提供了另一种选择。
  • Flight Framework是又一个ActionScript框架,支持MVC及其他设计模式。

Flex与AIR开发工具支持

       如果没有调试、测试、日志以及文档,软件开发怎能进行下去。在过去几年中,Flex/ActionScript社区创建了大量的开发支持工具。

  • RIATest是个面向Flex的GUI自动化测试工具。它支持Windows以及Max OS X。
  • Flexcover是个面向Flex、AIR以及ActionScript 3的开源代码覆盖率检测工具。
  • Alcon是个轻量级的调试工具,支持ActionScript3、Flex及AIR开发。
  • Fluint(Flex unit and integration的简称)是个面向Flex 2/3应用的测试框架,无论应用是通过Adobe Flash Player部署在Web浏览器中还是通过Adobe AIR部署在桌面上。
  • Arthropod是个面向Flex和AIR开发的调试工具。凭借Arthropod,开发者可以在运行期轻松调试应用。
  • De MonsterDebugger是个面向Adobe Flash、Flex及AIR项目的开源、轻量级,但功能完善的调试器。它完全使用Adobe AIR开发
  • ASTUce是个衰退测试框架,其灵感来源于xUnit架构,如JUnit。它支持对ActionScript 3的单元测试。
  • AsUnit是个面向ActionScript 3的开源的单元测试框架。AsUnit 2.x已经完全集成了Flash IDE。
  • FlexMonkey是个面向Flex应用的测试框架,它可以对Flex UI功能进行捕获、重放以及确认。FlexMonkey可以记录并回放Flex UI的交互并生成ActionScript测试脚本,这些脚本可以轻松集成到持续集成过程中。
  • Xray是个Flash应用检测工具,用于在运行期调试应用而不会增加应用负载。
  • FlexPMD是由Adobe创建的,旨在通过审查AS3/Flex源代码目录来改进代码质量和检测常见的最差实践。
  • Natural Docs是个文档生成工具,支持多种语言,包括ActionScript 3。

Flex企业级开发

       Adobe在企业应用系统开发上投入了大量的人力物力。大多数企业系统都需要服务端开发和集成,Adobe的开源产品BlazeDS及商业产品Livecycle DS在这其中扮演着重要的角色。此外,Flex/ActionScript社区也开发出了各种服务端集成工具以支持Flex企业级RIA开发。

  • Potomac framework for Flex用来开发大规模的Flex应用,它利用了模块化方法而没有使用Flex模块框架。其灵感来源于OSGi,后者则被众多的应用服务器厂商使用以支持服务端的模块化功能。
  • FluorineFx提供了一个Flex/Flash Remoting、Flex Data Service以及实时消息功能的.NET框架实现
  • FxStruts则是一个开源的程序库,提供了与Struts中的bean:write相同的功能,但其输出格式为AMF或是XML。
  • X2O是面向Adobe Flex应用的基于Web的数据建模平台。它会生成一个远程托管框架,这样开发者只需编写客户端即可。
  • Spring BlazeDS integration是个Spring组件,用于简化以Adobe Flex作为前端的基于Spring的RIA开发。
  • Spring ActionScript以前叫做Prana framework(上面提到过)。
  • Granite Data Services是个免费(基于LGPL)的组件,作用与Adobe LiveCycle Data Services一样。
  • Red5是个开源的Flash服务器,使用Java编写。
  • AmFast是个面向Python的Flash Remoting框架,支持NetConnection与RemoteObject RPC。
  • Exadel Flamingo可以将Flex、JavaFX、Swing、J2ME以及Android SDK粘合到Seam、Spring及JEE中。
  • 还有面向各种脚本语言的Flash Remoting支持:面向PHP5的PHPObjectSabreAMF、面向JEE的OpenAMF、面向Perl的AMF::Perl以及面向Python的AmFast

       展望未来,Flex RIA开发的下一领域将是移动平台。一系列事实表明即将发布的Adobe Flash 10.1将能够运行在大量的智能设备上,比如将要发布的Google Nexus One phone将安会安装Flash 10.1。一旦Flash移动技术横空出世,Flex社区将会大举进军移动平台。

InfoQ将会持续关注并报道Flex RIA领域的最新进展。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flex企业应用开发实战源代码 本书由业界4位拥有近10年企业级应用开发经验的资深专家撰写,权威性毋庸置疑。 全书共分为4大部分,涵盖企业级应用开发的整个生命周期。首先介绍了Flex/Flash的工作机理和利用Flex开发企业级应用必须掌握的基础知识和核心元素;接着剖析了Flex与Java的通信机制,以及Flex企业应用的客户端架构和服务器端架构;再接着详细讲解了BlazeDS框架的使用方法和工作原理,并通过迭代的方式完整地演示一个真实的Flex企业级应用的开发全过程,实战性极强;最后重点探讨Flex应用性能优化等方面的高级知识。值得一提的是,本书公开了作者努力开发出来的、经实际项目检验过的Flex企业应用框架的源代码,具有非常高的参考价值。 本书对Flex的基础知识着墨不多,所有内容都围绕Flex+Java这一企业级应用开发技术展开,侧重于对Flex技术原理、企业级应用的架构思想和实现方法的讲解,所以书中的内容不会随着Flex版本的升级而过时。 第1章 Flex企业应用开发入门 1 1.1 B/S企业应用开发者的噩梦 1 1.2 噩梦结束,新时代来临 2 1.3 Flex概述 6 1.4 Flash Player的工作模型 7 1.4.1 Flash Player的帧执行模型 7 1.4.2 Flash Player渲染模型 9 1.4.3 Flash中的事件机制 12 1.5 小结 20 第2章 Flex企业应用开发基础 21 2.1 MXML语言 21 2.1.1 用MXML表示ActionScript对象 22 2.1.2 查看由MXML文件所翻译的ActionScript代码 24 2.1.3 IMXMLObject接口 25 2.2 客户端保持状态 28 2.3 客户端MVC 30 .2.4 数据绑定 34 2.4.1 实现数据绑定的方法 35 2.4.2 数据绑定发生的时机 37 2.4.3 可以用于数据绑定的属性 39 2.4.4 数据绑定的用途 40 2.4.5 使用Bindable元数据标记 40 2.4.6 绑定到函数、对象和数组 43 2.4.7 使用可绑定属性链进行工作 46 2.5 Flex中的组件化编程 46 2.5.1 认识Flex组件和组件容器 47 2.5.2 组件生命周期与布局 51 2.5.3 组件的失效机制 59 2.5.4 使用ActionScript创建自定义组件 62 2.6 异步调用 85 2.6.1 异步调用导致模型数据不一致 85 2.6.2 异步调用导致用户反复(误)操作 86 2.7 小结 87 第3章 Flex企业应用开发中的主要元素 88 3.1 企业应用的特点 88 3.2 Flex Application 89 3.2.1 SystemManager 89 3.2.2 Preloader 90 3.2.3 Application的作用和主要属性 95 3.2.4 通过SWFLoader加载Application 97 3.2.5 域及跨域访问 99 3.3 Flex Module 101 3.3.1 创建模块 102 3.3.2 模块的编辑与编译 104 3.3.3 模块文件的加载 104 3.3.4 主应用和模块的交互 107 3.4 Flex库文件SWC 107 3.5 Flex编译模式、链接模式与RSL 109 3.5.1 使用系统RSL—Framework 110 3.5.2 其他的系统RSL 111 3.5.3 RSL的摘要 112 3.5.4 使用私有RSL 113 3.6 小结 114 第4章 Flex on Java企业应用架构 115 4.1 分布式的异构系统所带来的挑战与解决方案 116 4.1.1 确定Flex客户端系统和Java服务器端通信框架 117 4.1.2 保持客户端系统与服务器端系统的数据一致性 122 4.2 大规模企业应用面临的挑战和应采取的解决方案 133 4.2.1 问题和需求 133 4.2.2 解决方案 134 4.3 Flex客户端工程路径规划 137 4.4 小结 138 第5章 BlazeDS框架详解 139 5.1 BlazeDS介绍 139 5.1.1 什么是BlazeDS 139 5.1.2 使用BlazeDS的原因 140 5.1.3 BlazeDS功能特色 140 5.2 BlazeDS体系结构 141 5.2.1 BlazeDS的组件 143 5.2.2 构建一个简单的BlazeDS应用 148 5.2.3 消息的传输过程 150 5.2.4 BlazeDS的序列化机制 156 5.2.5 FlexClient和FlexSession 161 5.3 BlazeDS的配置 162 5.3.1 配置MessageBrokerServlet 162 5.3.2 services-config.xml 163 5.3.3 Channel和Endpoint 165 5.3.4 Service、Adapter和Destination 166 5.3.5 Logging 167 5.3.6 Security 169 5.3.7 运行期配置 170 5.4 BlazeDS的整合 175 5.5 小结 177 第6章 Flex+BlazeDS应用开发实例 178 6.1 需求分析 178 6.2 数据库设计 179 6.3 用Flash Builder配置企业应用开发环境 180 6.3.1 创建一个Flash Builder工程 180 6.3.2 修改Flex SDK包文件链接类型 184 6.3.3 创建一个Flex Library工程 185 6.4 客户端人机界面设计 186 6.5 服务器端配置 187 6.6 服务器端实现 191 6.7 客户端实现 198 6.7.1 客户端数据模型 199 6.7.2 客户端Proxy及工具类 201 6.7.3 客户端界面及界面逻辑 204 6.7.4 复杂查询实现 220 6.8 小结 227 第7章 将范例应用改进为真正的企业应用 228 7.1 简化Flex RemoteObject的异步调用 228 7.2 如何使用户等待远程调用的结束 243 7.3 加入简单的身份认证功能 251 7.4 使Flex应用脱离开发环境部署到运行环境 260 7.4.1 存在的问题 260 7.4.2 封装BlazeDS及封装后的系统调用方式 260 7.4.3 封装RemoteObject及封装后的调用方式 263 7.5 小结 264 第8章 Flex打印 265 8.1 Web打印方案 265 8.1.1 原生打印 265 8.1.2 宿主打印 265 8.1.3 外部打印 266 8.2 为什么使用Flex来打印 267 8.3 使用PrintJob打印 267 8.4 深入了解PrintJob 268 8.5 实战PrintJob—实现一个票据打印组件 270 8.5.1 组件结构 270 8.5.2 IReceiptPrinter和 DefaultReceiptPrinter 271 8.5.3 ReceiptTemplate 273 8.5.4 TemplateDescriptor 274 8.5.5 TemplateLoader 276 8.5.6 为组件编写示例 281 8.6 小结 282 第9章 Flex企业应用性能优化 283 9.1 Flex的内存垃圾回收机理 283 9.1.1 引用计数法 284 9.1.2 标记清除法 285 9.1.3 垃圾回收的时机 286 9.1.4 强制执行垃圾回收的技巧 286 9.2 导致内存泄漏的常见情况 287 9.3 Flash Builder的内存泄漏分析工具 291 9.4 用于性能查看的Flash的系统API 293 9.5 其他有关内存泄漏的问题 293 9.6 有关提高Flex应用性能的技巧 294 9.7 小结 299 第10章 Flex企业应用开发的其他技术 300 10.1 与网页进行交互 300 10.1.1 通过参数接受外部信息 300 10.1.2 使用navigateToURL方法调用JavaScript 302 10.1.3 ExternalInterface API 303 10.2 在Flex中使用Flash CS所开发的控件 306 10.3 Flex访问.Net 308 10.3.1 Fluorine的安装和配置 309 10.3.2 Flex通过Fluorine访问.NET 311 10.4 小结 314 附录 Flex Builder 3中的项目如何迁移至Flash Builder 4 315

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值