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中。

  • IntelliJ IDEA,这是一款大获成功的Java IDE,它已经从v7开始支持Flex开发了。最新的IntelliJ IDEA 9提供了更加全面的特性以支持Flex。
  • Amethyst是一款构建于Microsoft Visual Studio之上的Flex IDE。它向微软平台的开发者们提供了熟悉的环境进行Flex开发。
  • Ensemble Tofino for Visual Studio同样是一款面向Windows开发者的Flex开发工具。
  • FlashDevelop是一个开源的ActionScript 2/3及Web开发环境。它集成了Adobe Flash IDE、Adobe Flex SDK、MTASC(一个开源的Flash)、haXe(一门开源的编程语言,可以被编译成swf)以及swfmill(一个支持XML到swf双向转换的处理器)。

应用框架

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

  • Ruboss这个Flex框架集成了Ruby on Rails和Merb。它还有一个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的PHPObject和SabreAMF、面向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领域的最新进展。

Flex开发环境,开发工具,开发框架总结相关推荐

  1. 机器学习从理论到工程的第二步-开发环境与工具篇(下)

    好啦~继续昨天的<第二步--开发环境与工具篇(上)>~ 其实有点尴尬啦,本来想一篇讲完的,结果小夕太啰嗦了,还没有开始讲正文,就写了快2000字了...所以说,这一篇是上一篇的正文... ...

  2. 机器学习从理论到工程的第二步-开发环境与工具篇

    在<第一步-编程语言篇>中,小夕为大家较为详细的介绍了做机器学习(及其相关应用方向)的编程语言的选择问题,这一篇便是小夕为大家推荐的各个编程语言的开发环境/工具. 习惯性扫盲开篇.鉴于可能 ...

  3. 开发环境与工具部署服务_开发与部署之间的区别

    开发环境与工具部署服务 多年以来,我是一名Smalltalk程序员,这种经验使我从不同的角度来观察编程世界中的思想. 例如,将源代码存储在文本文件中的想法已经习惯了一些. 作为程序员,我们经常在&qu ...

  4. c++游戏编程(1)开发环境与工具函数

    c++游戏编程(1)开发环境与工具函数 文章目录 c++游戏编程(1)开发环境与工具函数 前言 1.开发工具 2.工具函数 2.1 windows.h 2.1.1 _mkdir() 2.1.2 _rm ...

  5. PHP开发环境搭建工具有哪些?

    对于php开发小白来说搭建一个php运行环境就是一道坎! 因为要做php开发,搭建一个能够运行php网站的服务器环境是第一步,传统的php环境软件非常复杂,好在很多公司开发了一键搭建php安装环境,一 ...

  6. Android连载之:第二章第三节:利用其他的开发环境和工具开发Android应用程序

    2.3 利用其他的开发环境和工具开发Android应用程序 推荐使用带有Android插件的Eclipse来开发Android应用程序,ADT插件提供了编辑.编译.调试功能并集成进了IDE中.然而,S ...

  7. DSP开发环境及工具之CCS

    DSP开发环境及工具之CCS CCS( Code Composer Studio)是美国德州仪器(TI)公司的嵌入式处理器的开发环境,可以用于TI公司的各个系列处理器的软件开发和调试,如DSP,MCU ...

  8. STM32开发环境(工具)之Keil MDK 介绍

    STM32微处理器基于ARM核,所以很多基于ARM嵌入式开发环境都可用于STM32开发平台.开发工具都可用于STM32开发.选择合适的开发环境可以加快开发进度,节省开发成本.本章将先对STM32常用的 ...

  9. ESP32开发(一):搭建windows开发环境--ESP-IDF工具命令提示符操作

    目录 一.概述 二.开发环境搭建 2.1 获取installer 2.2 运行安装程序 方法一 修改virtualenv版本(未解决) 继续降级到16.7.9 方法二 卸载已安装python(未解决) ...

  10. 1.Python简介开发环境配置工具准备

    目录: 0.Python是什么 1.Python开发环境配置 1.1 Windows安装Python解释器 1.2 Windows安装pycharm开发工具 1.3 Linux系统中搭建Python开 ...

最新文章

  1. Cell:肠道菌群促进帕金森发生ParkinsonDisease
  2. LFS 8.3 中文翻译版本发布!
  3. (转)创业需要知道的13句话
  4. C博客作业03--函数
  5. 前端学习(2339):React出现的历史背景
  6. 程序员面试金典 - 面试题 17.06. 2出现的次数(找递推规律)
  7. python自动生成采集规则_【仅供学习参考】Python多线程池采集小说,超简单!
  8. JavaScript中的匿名函数遇上!会怎么样
  9. 第13章 Swing程序组件----常用布局管理器
  10. 哪个说了算?漫谈网吧网络的稳定和安全(转)
  11. SFML/C++二维热传导模拟,热传导方程
  12. 腾讯云如何搭建PHP环境?
  13. 高效办公之高效学习技巧:艾宾浩斯遗忘曲线及学习策略分享
  14. 【HUST】网络攻防实践|5_二进制文件补丁技术|实验二 getshell
  15. java火车票售票系统,火车购票系统,系统实现了用户会员管理、火车车次管理、火车座位管理、系统公告管理、火车票退票、火车票换乘、换乘查询、直达查询、乘车人管理、订单管理、个人中心管理等
  16. 1万的android手机推荐,Vertu推天价Android手机:入门级售价1万美元
  17. OpenCV每日函数 Subdiv2D类平面细分
  18. “开源”SOA正在改写IT规划方程式
  19. Avtiviti进阶
  20. jQuery修改属性值

热门文章

  1. 妥妥的去面试之Android基础(四)
  2. python matplotlib自定义colorbar颜色条-以及matplotlib中的内置色条
  3. 【山外问道】什么是UUID
  4. 计算机主机一闪一闪的无法启动,电脑开机屏幕一闪一闪的开不开在一重启就好了...
  5. 排查not eligible for getting processed by all BeanPostProcessors
  6. 关于微信小程序开发中的显示个人信息以及重置密码功能
  7. 深度学习与神经科学相遇
  8. HDMI接口与HDMI协议
  9. 统计全年12个月数据
  10. CANoe DLL编程(六)—— DLL文件的二次封装