Apache Flex
Adobe Flex | |
---|---|
![]() | |
Developer(s) | Adobe Systems |
Initial release | 1.0 Released March 2004 |
Stable release | 2.0.1
/ January 5, 2007 |
Preview release | Flex 3 Beta 2
/ October 2007 |
Repository | |
Operating system | Mac OS X, Linux and Windows |
Available in | English and Japanese |
Type | Rich Internet application |
License | Mozilla Public License |
Website | http://www.adobe.com/go/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 the Flex 3 SDK. Adobe Flash Player, the runtime on which Flex applications are viewed, and Flex Builder, the IDE used to build Flex applications, remain proprietary and commercial.
Overview
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 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. It 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, XUL, JavaFX and Windows Presentation Foundation technologies such as Silverlight.
Initial Releases (Flex Server 1.0 and 1.5)
Macromedia targeted the enterprise application development market with its initial releases of Flex 1.0 and 1.5. The company offered the technology at a price around US$15000 per CPU. Each server license included 5 licenses for the Flex Builder IDE.
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.
In October 2007, Adobe released the second beta of Flex 3.
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.
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.
An open-source remoting alternative using PHP is possible with AMFPHP.
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
- Adobe announces plans to open source Flex 3 SDK - April 26, 2007
- Flex 3.0 Beta 1[Moxie] - June 11, 2007
- Flex 3.0 Beta 2 - October 1, 2007
Notable sites using Flex
Notable sites using Flex include:
- Pikeo online photo sharing
- Amsterdam-Schiphol Airport [1]
- Sherwin-Williams Color Visualizer [2]
- Sony Ericsson Product Catalogue [3]
- Yahoo! Maps
- Yahoo! Messenger for the Web [4]
There is a showcase of Flex applications at the Flex Showcase.
See also
- Adobe AIR (formerly Adobe Apollo)
- Microsoft Silverlight
- OpenLaszlo
- The ZK Framework
- JavaFX
External links
- Official Adobe Flex site
- Flex.org - Flex community website
- Flexx.fr - French Flex & AIR community website
- Flex Open Source Press Release
- Flex documentation
- Adobe to Open Source Flex
- Adobe to open source Flex at Adobe Labs
- Setup Flex on Apache Tomcat
- Adobe Flex Builder 2 on LINUX! (youecho.com)
- Comparison of Flex with other RIA solutions
- Flexipedia - Russian Flex-wiki
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
- Granite Data Services — an 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 AS Foundry : Flex 2 micro-architecture and toolset
- A Maven 2 Flex 2 plugin
- FlexLib : "Open Source Flex 2 Component Library"
- AS3CoreLib
- Adobe Labs
- PureMVC Framework - MVC pattern implementation for Flex and AIR.
- AIRRunner - an open source test runner based on AIR/Flex.