Web Design & Development Guide
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
source Flex, specifically the Flex SDK, although the
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
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
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
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
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
- 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).
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
- 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
- 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.
Open-source related projects
Action Message Format