Adobe Flex

Web Design & Development Guide

Adobe Flex

Comparison between AJAX and Flex

Adobe Flex is a software development kit and an IDE for a group of technologies initially released in March of 2004 by Macromedia to support the development and deployment of cross platform, rich Internet applications based on their proprietary Macromedia Flash platform.

In April 2007, Adobe announced plans to open source Flex, specifically the Flex SDK, although the Flash underpinnings and the Flex Builder IDE still remain proprietary and commercial.


Traditional application programmers found it challenging to adapt to the animation metaphor upon which the Flash Platform was originally built. Flex seeks to minimize this problem by providing a workflow and programming model that is familiar to application developers.

Flex was initially released as a J2EE application or JSP tag library that compiles MXML and ActionScript on-the-fly into Flash applications (binary SWF files). Later versions of Flex support the creation of static files that are compiled at authoring time and can be deployed online without the need for a server license.

The goal of Flex is to allow Web application developers to quickly and easily build rich Internet applications. In a multi-tiered model, Flex applications serve as the presentation tier.

Flex features development of graphic user interfaces using an XML-based language called MXML. Flex comes with various components and features that make capabilities such as web services, remote objects, drag and drop, sortable columns, charting/graphing, built in animation effects, and other interface interactions simple. Since the client only loads once, application workflow is significantly improved versus HTML based applications (eg. PHP, ASP, JSP, CFMX) which require executing templates on the server with every action. Flex's language and file structure are seeking to decouple application logic from design.

The Flex server also acts as a gateway to allow the client to communicate with XML Web Services and Remote Objects (such as Coldfusion CFCs, Java Classes, and anything else that supports the Action Message Format).

Commonly mentioned as alternatives to Flex are OpenLaszlo, Ajax and Windows Presentation Foundation technologies.

Initial Releases (Flex Server 1.0 and 1.5)

Initial releases of Flex were targeted towards the enterprise application development market, and were priced around US$15000 per CPU. Each license included 5 Flex Builder licenses. As for using this vs ActionScripting, it's better if you're a pure developer.

Adobe Flex 2

Flex 2 changes the licensing model to open room to a free version of the technology, called "Flex 2 SDK".

The new Flex Builder 2 is based on the Eclipse IDE. Enterprise-oriented services are available through Flex Data Services 2 providing data synchronization, data push, publish-subscribe and automated testing.

Flex 2 introduces the use of a new version of the ActionScript scripting language, Actionscript 3, reflecting the latest ECMAScript specification and requires Flash Player 9 or later for the runtime.

Flex was the first Macromedia product to be rebranded as Adobe.

Adobe Flex 3 (beta)

Adobe released the first beta of Flex 3 in June 2007. Major enhancements include integration with the new versions of its Creative Suite products, support for the new Adobe application runtime, AIR, and the addition of profiling and refactoring tools to the Flex Builder IDE. A more complete description and free downloads are available on the Adobe Labs site.

LiveCycle Data Services

LiveCycle Data Services (previously called Flex Data Services) is a server-side complement to the main Flex SDK and Flex Builder IDE and is part of a family of server-based products available from Adobe. Deployed as a Java EE application, LiveCycle Data Services adds the following capabilities to Flex applications:

  • Remoting, which allows Flex client applications to invoke methods on Java server objects directly. Similar to Java remote method invocation (RMI), remoting handles data marshalling automatically and uses a binary data transfer format.
  • Messaging, which provides the "publish" end of the "publish/subscribe" design pattern. The Flash client can publish events to a topic defined on the server, subscribe to events broadcast from the message service. One of the common use cases for this is real-time streaming of data, such as financial data or system status information.
  • Data management services, which provides a programming model for automatically managing data sets that have been downloaded to the Flex client. Once data is loaded from the server, changes are automatically tracked and can be synchronized with the server at the request of the application. Clients are also notified if changes to the data set are made on the server.
  • PDF document generation, providing APIs for generating PDF documents by merging client data or graphics with templates stored on the server.

Adobe provides a free version of LiveCycle Data Services which is limited to a single CPU, and doesn't support clustering. The full version costs $6,000 USD per CPU (limited to 100 concurrent users) or $20,000 USD per CPU (no limit). [1]

Flex and ColdFusion

Flex 2 offers special integration with ColdFusion MX 7. The ColdFusion MX 7.0.2 release adds updated Flash Remoting to support ActionScript 3, a Flex Data Services event gateway, and the Flex Data Services assembler. Flex Builder 2 also adds extensions for ColdFusion providing a set of wizards for RAD Flex development. A subset of Flex 1.5 is also embedded into ColdFusion MX 7 middleware platform, for use in the ColdFusion Flash forms feature. It is possible to use this framework to write rich internet applications, although its intended purpose is for rich forms only.

Flex Application Development Process

Everything below is directly sourced from the help file in version 2.0 Beta 3:

  • Define an application interface using a set of pre-defined components (forms, buttons, and so on)
  • Arrange components into a user interface design
  • Use styles and themes to define the visual design
  • Add dynamic behavior (one part of the application interacting with another, for example)
  • Define and connect to data services as needed
  • Build the source code into a SWF file that runs in the Flash Player

Release history

  • Flex 1.0 - March 2004
  • Flex 1.5 - October 2004
  • Flex 2.0 (Alpha) - October 2005
  • Flex 2.0 Beta 1 - February 2006
  • Flex 2.0 Beta 2 - March 2006
  • Flex 2.0 Beta 3 - May 2006
  • Flex 2.0 FINAL - June 28, 2006
  • Flex 2.0.1 - January 5, 2007
  • Flex 2.0.1 available as open source - April 26, 2007
  • Flex 3.0 Beta 1[Moxie] - June 11, 2007

Notable sites using Flex

Notable websites using Flex include:

There is a showcase of Flex applications at the Flex Showcase.

External links

Technical mailing lists

Open-source related projects

Adobe Flex
Flash cartoons
Action Message Format
Adobe Shockwave
Animation portal

Page created in 0.025429 Seconds