Adobe Flex
Encyclopedia
Adobe Flex is a software development kit
Software development kit
A software development kit is typically a set of software development tools that allows for the creation of applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar platform.It may be something as simple...

 (SDK) released by Adobe Systems
Adobe Systems
Adobe Systems Incorporated is an American computer software company founded in 1982 and headquartered in San Jose, California, United States...

 for the development and deployment of cross-platform rich Internet application
Rich Internet application
A Rich Internet Application is a Web application that has many of the characteristics of desktop application software, typically delivered either by way of a site-specific browser, via a browser plug-in, independent sandboxes, extensive use of JavaScript, or virtual machines...

s based on the Adobe Flash
Adobe Flash
Adobe Flash is a multimedia platform used to add animation, video, and interactivity to web pages. Flash is frequently used for advertisements, games and flash animations for broadcast...

 platform. Flex applications can be written using Adobe Flash Builder or by using the freely available Flex compiler from Adobe.

The release in March 2004 by Macromedia
Macromedia
Macromedia was an American graphics and web development software company headquartered in San Francisco, California that produced such products as Flash and Dreamweaver. Its rival, Adobe Systems, acquired Macromedia on December 3, 2005 and controls the line of Macromedia...

 included an SDK, an Integrated development environment
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

 (IDE), and a Java EE integration application known as Flex Data Services
Adobe LiveCycle
Adobe LiveCycle Enterprise Suite is a SOA Java EE-based server software product from Adobe Systems Incorporated used to build applications that automate a broad range of business processes for enterprises and government agencies...

. Since Adobe purchased Macromedia in 2005, subsequent releases of Flex no longer require a license for Flex Data Services, which has become a separate product rebranded as LiveCycle Data Services
Adobe LiveCycle
Adobe LiveCycle Enterprise Suite is a SOA Java EE-based server software product from Adobe Systems Incorporated used to build applications that automate a broad range of business processes for enterprises and government agencies...

. An alternative to Adobe LiveCycle Data Services is BlazeDS
BlazeDS
BlazeDS is a server-based Java remoting and web messaging technology that allows you to connect to back-end distributed data and push data to Adobe Flex and Adobe Integrated Runtime Rich Internet applications...

, an open-source project that started with code contributed in 2007 by Adobe.

In February 2008, Adobe released the Flex 3 SDK under the open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 Mozilla Public License
Mozilla Public License
The Mozilla Public License is a free and open source software license. Version 1.0 was developed by Mitchell Baker when she worked as a lawyer at Netscape Communications Corporation and version 1.1 at the Mozilla Foundation...

 and so Flex applications can be developed using any standard IDE, for example Eclipse
Eclipse (software)
Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...

.

On November 17th, 2011, Adobe officially open-sourced Flex and donated it to the Apache Software Foundation
Apache Software Foundation
The Apache Software Foundation is a non-profit corporation to support Apache software projects, including the Apache HTTP Server. The ASF was formed from the Apache Group and incorporated in Delaware, U.S., in June 1999.The Apache Software Foundation is a decentralized community of developers...

.

Overview

Technologies that are commonly compared to Flex include Curl, OpenLaszlo
OpenLaszlo
OpenLaszlo is an open source platform for the development and delivery of rich Internet applications. It is released under the Open Source Initiative-certified Common Public License ....

, Ajax
Ajax (programming)
Ajax is a group of interrelated web development methods used on the client-side to create asynchronous web applications...

, XUL
XUL
In computer programming, XUL , the XML User Interface Language, is an XML user interface markup language developed by the Mozilla project. XUL operates in Mozilla cross-platform applications such as Firefox...

, JavaFX
JavaFX
JavaFX is a software platform for creating and delivering rich Internet applications that can run across a wide variety of connected devices....

, Windows Presentation Foundation
Windows Presentation Foundation
Developed by Microsoft, the Windows Presentation Foundation is a computer-software graphical subsystem for rendering user interfaces in Windows-based applications. WPF, previously known as "Avalon", was initially released as part of .NET Framework 3.0. Rather than relying on the older GDI...

 and Silverlight.

Application Development Process

  • 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

Macromedia 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
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...

. Required for deployment, the Java EE
Java Platform, Enterprise Edition
Java Platform, Enterprise Edition or Java EE is widely used platform for server programming in the Java programming language. The Java platform differs from the Java Standard Edition Platform in that it adds libraries which provide functionality to deploy fault-tolerant, distributed, multi-tier...

 application server compiled MXML
MXML
MXML is an XML-based user interface markup language first introduced by Macromedia in March 2004. Application developers use MXML in combination with ActionScript to develop rich Internet applications, with products such as Adobe Flex....

 and ActionScript
ActionScript
ActionScript is an object-oriented language originally developed by Macromedia Inc. . It is a dialect of ECMAScript , and is used primarily for the development of websites and software targeting the Adobe Flash Player platform, used on Web pages in the form of...

 on-the-fly into Flash applications (binary SWF
SWF
SWF is an Adobe Flash file format used for multimedia, vector graphics and ActionScript. Originating with FutureWave Software, then transferred to Macromedia, and then coming under the control of Adobe, SWF files can contain animations or applets of varying degrees of interactivity and function.,...

 files). Each server license included 5 licenses for the Flex Builder IDE.

Adobe Flex 2

Adobe significantly changed the licensing model for the Flex product line with the release of Flex 2. The core Flex 2 SDK, consisting of the command-line compilers and the complete class library of user interface components and utilities, was made available as a free download. Complete Flex applications can be built and deployed with only the Flex 2 SDK, which contains no limitations or restrictions compared to the same SDK included with the Flex Builder IDE.

Adobe based the new version of Flex Builder on the open source Eclipse
Eclipse (software)
Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...

 platform. The company released two versions of Flex Builder 2, Standard and Professional. The Professional version includes the Flex Charting Components library.

Enterprise-oriented services remain available through Flex Data Services 2. This server component provides data synchronization, data push, publish-subscribe and automated testing. Unlike Flex 1.0 and 1.5, Flex Data Services is not required for the deployment of Flex applications.

Coinciding with the release of Flex 2, Adobe introduced a new version of the ActionScript
ActionScript
ActionScript is an object-oriented language originally developed by Macromedia Inc. . It is a dialect of ECMAScript , and is used primarily for the development of websites and software targeting the Adobe Flash Player platform, used on Web pages in the form of...

 programming language, known as Actionscript 3, reflecting the latest ECMAScript
ECMAScript
ECMAScript is the scripting language standardized by Ecma International in the ECMA-262 specification and ISO/IEC 16262. The language is widely used for client-side scripting on the web, in the form of several well-known dialects such as JavaScript, JScript, and ActionScript.- History :JavaScript...

 specification. The use of ActionScript 3 and Flex 2 requires version 9 or later of the Flash Player runtime. Flash Player 9 incorporated a new and more robust virtual machine for running the new ActionScript 3.

Flex was the first Macromedia product to be re-branded under the Adobe
Adobe Systems
Adobe Systems Incorporated is an American computer software company founded in 1982 and headquartered in San Jose, California, United States...

 name.

Adobe Flex 3

On April 26, 2007 Adobe announced their intent to release the Flex 3 SDK (which excludes the Flex Builder IDE and the LiveCycle Data Services) under the terms of the Mozilla Public License
Mozilla Public License
The Mozilla Public License is a free and open source software license. Version 1.0 was developed by Mitchell Baker when she worked as a lawyer at Netscape Communications Corporation and version 1.1 at the Mozilla Foundation...

.
Adobe released the first beta of Flex 3, codenamed Moxie, in June 2007. Major enhancements include integration with the new versions of Adobe's Creative Suite products, support for AIR (Adobe's new desktop application runtime), and the addition of profiling and refactoring tools to the Flex Builder IDE.

Adobe Flash Builder and Flex 4

Adobe released Flex 4.0 (code named Gumbo) on March 22, 2010. The Flex 4 development environment is called Adobe Flash Builder, formerly known as Adobe Flex Builder.

Some themes that have been mentioned by Adobe and have been incorporated into Flex 4 are as follows:
  • Design in Mind: The framework has been designed for continuous collaboration between designers and developers.
  • Accelerated Development: Be able to take application development from conception to reality quickly.
  • Horizontal Platform Improvements: Compiler performance, language enhancements, BiDirectional components, enhanced text (Flex 4 includes the new Text Layout Framework ).
  • Full Support for Adobe Flash Player 10 and above.
  • Broadening Horizons: Finding ways to make a framework lighter, supporting more deployment runtimes, runtime MXML.
  • Simpler skinning than the previous versions.
  • Integration with Adobe Flash Catalyst.
  • Custom templates


Flash Builder is available in two versions: Standard and Premium, the premium adds the following features;
  • Testing tools
  • Memory and performance profilers
  • An automated testing harness to connect to all the leading testing tools
  • FlexUnit support
  • command-line build capability
  • The new Network Monitor

Adobe Flash Builder 4.5

May 3rd, 2011, Adobe shipped Flash Builder 4.5 formerly called Flex 4.5 which delivers full support for building Flex and ActionScript applications for Google Android, as well as support for building ActionScript applications for BlackBerry Tablet OS and Apple iOS. An update to Flash Builder 4.5 and Flex 4.5 adds support for building Flex applications for BlackBerry Tablet OS and Apple iOS.

Flex 4.5 SDK delivers many new components and capabilities, along with integrated support in Flash Builder 4.5 and Flash Catalyst CS 5.5. With the Adobe Flex 4.5 SDK which is governed by three main goals:
  • Allow developers to use Flex for multiscreen application development
  • Further mature the Spark architecture and component set which was introduced in Flex 4
  • Make incremental improvements to core Flex infrastructure to ease large application development

Adobe Flash Catalyst

On October 2, 2007, Adobe announced a new design tool related to Flex codenamed Adobe Thermo. On November 17, 2008 Adobe announced the official name of the product would be Adobe Flash Catalyst.

LiveCycle Data Services

LiveCycle Data Services (previously called Flex Data Services) is a server-side complement to the main Flex SDK and Flash 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.

BlazeDS

Previously available only as part of Adobe LiveCycle Data Services ES, Adobe plans to contribute the BlazeDS
BlazeDS
BlazeDS is a server-based Java remoting and web messaging technology that allows you to connect to back-end distributed data and push data to Adobe Flex and Adobe Integrated Runtime Rich Internet applications...

 technologies to the community under the LGPL v3
GNU Lesser General Public License
The GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License...

. BlazeDS gives Adobe developers free access to the remoting and messaging technologies developed by Adobe.

Concurrent with pre-release of BlazeDS, Adobe is publishing the AMF
Action Message Format
Action Message Format is a binary format used to serialize objects graphs such ActionScript objects and XML, or send messages between an Adobe Flash client and a remote service, usually a Flash Media Server or third party alternatives....

 binary data protocol specification, on which the BlazeDS remoting implementation is based, and is attempting to partner with the community to make this protocol available for major server platforms.

Granite Data Services

Granite Data Services (GraniteDS) is the main open source alternative to Adobe JavaEE server solutions (LCDS and BlazeDS). It is released under the LGPL v2.1
GNU Lesser General Public License
The GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License...

 and provides:
  • AMF
    Action Message Format
    Action Message Format is a binary format used to serialize objects graphs such ActionScript objects and XML, or send messages between an Adobe Flash client and a remote service, usually a Flash Media Server or third party alternatives....

     remoting.
  • Comet
    Comet (programming)
    Comet is a web application model in which a long-held HTTP request allows a web server to push data to a browser, without the browser explicitly requesting it. Comet is an umbrella term, encompassing multiple techniques for achieving this interaction. All these methods rely on features included by...

    -based real time messaging (Data Push
    Push technology
    Push technology, or server push, describes a style of Internet-based communication where the request for a given transaction is initiated by the publisher or central server...

    ).
  • Integration with major application servers
    Application server
    An application server is a software framework that provides an environment in which applications can run, no matter what the applications are or what they do...

    : JBoss
    JBoss
    JBoss Application Server is an open-source Java EE-based application server. An important distinction for this class of software is that it not only implements a server that runs on Java, but it actually implements the Java EE part of Java...

    , GlassFish
    GlassFish
    GlassFish is an open source application server project started by Sun Microsystems for the Java EE platform and now sponsored by Oracle Corporation. The supported version is called Oracle GlassFish Server...

    , WebLogic, WebSphere
    WebSphere
    IBM WebSphere refers to a brand of computer software products in the genre of enterprise software known as "application and integration middleware". These software products are used by end-users to create applications and integrate applications with other applications...

    , Tomcat
    Apache Tomcat
    Apache Tomcat is an open source web server and servlet container developed by the Apache Software Foundation...

    , Jetty
    Jetty (web server)
    Jetty is a pure Java-based HTTP client/server, WebSocket client/server and servlet container developed as a free and open source project as part of the Eclipse Foundation...

    .
  • Integration with major JavaEE frameworks: EJB3
    Enterprise JavaBean
    Enterprise JavaBeans is a managed, server-side component architecture for modular construction of enterprise applications.The EJB specification is one of several Java APIs in the Java EE specification. EJB is a server-side model that encapsulates the business logic of an application...

    , Spring, Seam
    JBoss Seam
    Seam is a web application framework developed by JBoss, a division of Red Hat.- Seam 3 :Seam 3 is very active project consisting of over 50 developers and engineers, which provides a modular set of extensions to the CDI programming model...

    .
  • Integration with major JPA
    Java Persistence API
    The Java Persistence API, sometimes referred to as JPA, is a Java programming language framework managing relational data in applications using Java Platform, Standard Edition and Java Platform, Enterprise Edition....

     engines: Hibernate
    Hibernate (Java)
    Hibernate is an object-relational mapping library for the Java language, providing a framework for mapping an object-oriented domain model to a traditional relational database...

    , EclipseLink
    EclipseLink
    EclipseLink is the open source Eclipse Persistence Services Project from the Eclipse Foundation. The software provides an extensible framework that allows Java developers to interact with various data services, including databases, web services, Object XML mapping , and Enterprise Information Systems...

    , OpenJPA
    Apache OpenJPA
    OpenJPA is an open source implementation of the Java Persistence API specification. It is an object-relational mapping solution for the Java language, which simplifies storing objects in databases. It is open source software distributed under the Apache 2.0 Licence.- History :Kodo, a Java Data...

    , DataNucleus
    DataNucleus
    DataNucleus is an open source project which provides a series of software products around data management in Java....

    , all with full lazy-loading
    Lazy loading
    Lazy loading is a design pattern commonly used in computer programming to defer initialization of an object until the point at which it is needed. It can contribute to efficiency in the program's operation if properly and appropriately used...

     support.
  • Code generation
    Automatic programming
    In computer science, the term automatic programming identifies a type of computer programming in which some mechanism generates a computer program to allow human programmers to write the code at a higher abstraction level....

     tools (called "Gas3") that replicate Java entities and services in ActionScript3.
  • A Flex development frame work with weborb use is very common nowadays.

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.

Flash Builder for Education

Since 2008, Adobe has made Flash Builder and ColdFusion
ColdFusion
In computing, ColdFusion is the name of a commercial rapid application development platform invented by Jeremy and JJ Allaire in 1995. ColdFusion was originally designed to make it easier to connect simple HTML pages to a database, by version 2 it had...

 available to all educational customers for free on their website.

Application Frameworks

There are a number of application frameworks available which help the developer solve some common tasks and set up the application structure according to best practices.
  • Tide, part of the Granite Data Services
    Granite data services
    Granite Data Services is a comprehensive development and integration solution for building Flex / JavaEE RIA applications. The entire framework is open-source and released under the LGPL v2 license.It features:...

     platform.
  • Swiz
  • Parsley
  • Cairngorm
    Cairngorm (Flex framework)
    Cairngorm was one of the primary open source frameworks for application architecture in Adobe Flex. It was developed by iteration::two, who was acquired by Macromedia in 2005. It is part of the Adobe Engagement Platform....

  • PureMVC
    PureMVC
    PureMVC is a framework for creating applications based upon the well-established Model, View and Controller design pattern. The free, open source framework was originally implemented in the ActionScript 3 language for use with Adobe Flex, Flash and AIR, and it has since been ported to nearly all...

  • Mate
  • RobotLegs

Notable sites using Flex

  • YouTube
    YouTube
    YouTube is a video-sharing website, created by three former PayPal employees in February 2005, on which users can upload, view and share videos....

  • Pikeo
    Pikeo
    Pikeo was a photo sharing website and an online community platform. Registered users could share their photos with either the community of users or only their friends and family, and they could also add comments...

     online photo sharing
  • Sherwin-Williams color visualizer[]
  • Sony Ericsson
    Sony Ericsson
    Sony Ericsson Mobile Communications AB is a joint venture established on October 1, 2001 by the Japanese consumer electronics company Sony Corporation and the Swedish telecommunications company Ericsson to manufacture mobile phones....

     product catalog
  • Yahoo! Messenger for the Web
    Yahoo! Messenger release history
    The following is a history of all versions of Yahoo! Messenger on all platforms by Yahoo!, Inc.but only available for windows unix linux and mac and other mobile platform-Windows:...

  • BBC iPlayer
    BBC iPlayer
    BBC iPlayer, commonly shortened to iPlayer, is an internet television and radio service, developed by the BBC to extend its former RealPlayer-based and other streamed video clip content to include whole TV shows....

     desktop downloader
  • mint.com
    Mint.com
    Mint.com is a free web-based personal financial management service for the US and Canada created by entrepreneur Aaron Patzer. Mint originally provided account aggregation through a deal with Yodlee, but has since moved to using Intuit for connecting to accounts...

  • Obligo
    Obligo
    Obligo.co.uk is a uk property and mortgage information website which provides information and tools to help users make better and more informed decisions with regard to mortgage and consumer finance...

  • Major League Baseball TV
  • ChessCube
    ChessCube
    ChessCube.com is an online chess community with over 1,400,000 registered members as of early March 2011. ChessCube.com was founded in 2007 by Mark Levitt, and offers live play, chat, and ChessCube Cinema...

  • BigBlueButton
    BigBlueButton
    BigBlueButton is an open source web conferencing system developed primarily for distance education.- Features :As of version 0.71a, BigBlueButton supports multiple audio and video sharing, presentations with extended whiteboard capabilities - such as a pointer, zooming and drawing - public and...


File Formats

Adobe has been developing a new file format for cross application use. It has been specifically stated that the first aim was for use with Flex.

See also

  • List of rich internet application frameworks
  • Adobe Flash Catalyst
  • Adobe AIR
  • Curl RIA
  • Microsoft Silverlight
    Microsoft Silverlight
    Microsoft Silverlight is an application framework for writing and running rich Internet applications, with features and purposes similar to those of Adobe Flash. The run-time environment for Silverlight is available as a plug-in for web browsers running under Microsoft Windows and Mac OS X...

  • OpenLaszlo
    OpenLaszlo
    OpenLaszlo is an open source platform for the development and delivery of rich Internet applications. It is released under the Open Source Initiative-certified Common Public License ....

  • ZK Framework
  • JavaFX
    JavaFX
    JavaFX is a software platform for creating and delivering rich Internet applications that can run across a wide variety of connected devices....

  • Qt Quick
    Qt Quick
    Qt Quick is a framework that provides a declarative way of building custom, highly dynamic user interfaces with fluid transitions and effects, which are becoming more and more common especially in mobile devices....

  • Illumination Software Creator
    Illumination Software Creator
    Illumination Software Creator is a tool for visually designing and developing software, and a corresponding Visual programming language that is available for Microsoft Windows, Linux and Mac OS X...

  • FXG
    FXG
    Flash XML Graphics is a specification for an XML-based graphics file format for describing two-dimensional vector graphics being developed by Adobe Systems...

  • Comparison of Adobe Flex charts
    Comparison of Adobe Flex charts
    The following comparison of Adobe Flex charts provides charts classification, compares Flex chart products for different chart type availability and for different visual features like 3D versions of charts....


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK