|Release||Flex 2.0.1 / Flex 3 Beta 1|
|OS||Windows, MacOS, Linux|
|Genre||Application Framework / IDE|
|License||Mozilla Public License|
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, RIAs 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 remain proprietary. Also, the Flex Builder IDE still remains 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 RIA. In a Multitier architecture, 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).
 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.
 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 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 AIR application runtime, 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). 
 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:
- Pikeo online photo sharing
- Amsterdam-Schiphol Airport 
- Sherwin-Williams Color Visualizer 
- Sony Ericsson Product Catalogue 
- Yahoo! Maps
- Yahoo! Messenger for the Web 
There is a showcase of Flex applications at the Flex Showcase.
 See also
 External links
- Adobe Labs
- Official Adobe Flex site
- Flex.org - Flex community website
- Flex Open Source Press Release
- Flex documentation
- Adobe to Open Source Flex
- Adobe to open source Flex at Adobe Labs
- Flex portfolio example
- Setup Flex on Apache Tomcat
 Technical mailing lists
- Flexcoders - Flex Developer Mailing List
- Flexcomponents - Flex Component Development Mailing List
- ColdFusion Flex List at House of Fusion.
- Flex Developers India Flex developer Group
 Open-source related projects
- http://www.graniteds.org/ — open-source Flex Data Services
- Red5 — an open-source Flash server (audio/video streams, remoting, etc.)
- Fluorine - an open source .NET Flash Remoting Gateway.
- Cairngorm micro-architecture
- FlexUnit : ActionScript 3 unit tests
- ServeBox ActionScript Foundry The ServeBox ActionScript Foundry (AS Foundry) is an ActionScript 3/ Java framework designed for Flex application development.
- Maven Flex Plugin The Maven Flex Plugin (mvnflexplugin) is a Maven 2 plugin designed to enable continuous integration for Adobe Flex libraries and applications, and to benefit of the power of Apache Maven.
- FlexLib: "Open Source Flex 2 Component Library"