Welcome!

Adobe Flex Authors: Liz McMillan, RealWire News Distribution, Maureen O'Gara, Yakov Fain, Keith Swenson

Related Topics: Adobe Flex

Adobe Flex: Article

Flex 2 Unleashed: RIAs on the Macromedia Flash Platform

Ushering in a New Generation of RIAs

Macromedia, led by Kevin Lynch (pictured) as chief software architect, coined the phrase "Rich Internet Application" (RIA) a few years ago after seeing what developers and designers were building in Macromedia Flash.

It was clear that these applications extended the design limitations and interaction constraints of traditional HTML applications. They didn't require a full-page refresh when users interacted with them. They efficiently utilized network bandwidth, transmitting only the portion of the data that changed and transmitting layout information sparingly. They contained a rich array of interactions that allowed end users to directly manipulate the data with which they were interacting. They seamlessly layered audio and video into the application's user interface. They clearly maintained their context as the user navigated through the application. And, of course, they supported high-fidelity printing.

The impact of RIAs has been incredible, both in breadth and depth. We're seeing everyone from Internet hobbyists to large enterprises building RIAs - and seeing their business improve dramatically as a result. Large financial services institutions use RIAs to solidify their brand with customers and speed up internal business decision-making through better interaction with mission-critical data. Online retailers have reduced shopping cart abandonment by 50% during the checkout process. Individual developers have integrated slick online mapping services with webcams posted on New York City's traffic lights to give commuters the most up-to-date and useful traffic information.

As customers began to broaden their use of RIAs, developers quickly recognized some special needs. Some RIAs need to consume real-time data feeds. Others need to run in occasionally connected environments, intelligently synchronizing data when a connection is established. Others need to consume proprietary binary protocols. Still others require that multiple clients share a single instance of data.

Pushing the Envelope on RIA Development
Based on these observations, and our experience building Flex 1.0, we set out to deliver an RIA platform that addressed these needs and could be extended easily to meet the specific needs of a given application. We wanted to give application developers a client runtime, development environment, class libraries, and data services that help developers do the following:

  • Be extremely productive in RIA application development
  • Create expressive applications with effective interface patterns
  • Deploy applications through a well-distributed, high-performance, cross-platform, cross-browser runtime environment
  • Use tools and technologies that scale with the size of the project and complexity of the task
We are thrilled to introduce the Flex 2 product line as the best way to build a wide range of immersive applications, from simple restaurant menus to complex workflow systems and synchronized trader desktops.

If you're familiar with Flex 1.0, it's very important to recognize that Flex 2 is far more than just a new release. It represents a major milestone in the evolution of the Flex technology and a continued evolution in Macromedia development processes. From a technical standpoint, Flex 2 introduces capabilities that enable developers to build an entirely new class of Rich Internet Applications, ushering in a new generation of RIAs. At the same time, we're opening up Flex development to a much broader group of developers by re-introducing Flex Builder, which has been built from the ground up on the Eclipse open-source IDE framework and now includes Flex Framework and the compiler. That means that Flex applications can be deployed as a stand-alone option by placing a compiled SWF file on any web server or in conjunction with Flex Enterprise Services 2.

A New Foundation for Rich Internet Applications: Flash Player 8.5
Flash Player, the backbone of the Flash Platform, will also be evolving to provide the foundation for the Flex 2 product line and next-generation RIAs. Over the years the player, which began primarily as a client for playing animation, incrementally extended its scripting language (ActionScript) by adding support for portions of the ECMAScript standard (the same standard that drives the development of JavaScript). By the release of Flash Player 7, ActionScript implemented the vast majority of the ECMA standard. With Flash Player 8.5 (scheduled to ship with the Flex 2 product line), we will be introducing ActionScript 3.0, a powerful object-oriented programming language designed for productivity and performance and based on the next generation of the ECMAScript standard.

Flash Player 8, released in September of 2005, makes great advances in the rendering engine, introducing a set of extended expressiveness capabilities (filters, advanced gradient controls, rendering performance, and so forth), and video support enhancements (higher quality codec, alpha channel support, and so forth) that are unparalleled on the web today. Flash Player 8 also greatly improves the APIs that allow a developer to communicate between applications running in the player, the browser's HTML document object model, and associated JavaScript functions, making it easier for developers to add Flash components to their existing web applications.

Flash Player 8.5 builds on the advances in Flash Player 8 by focusing on improving script execution on the virtual machine. In fact, it includes a brand new, highly-optimized ActionScript Virtual Machine (AVM) known as AVM2. AVM2 is built from the ground up to work with the next generation of ActionScript 3.0 to support the needs of RIA developers. The new virtual machine is significantly faster, supports full runtime error reporting and industry-standard debugging. It includes binary socket support, allowing developers to extend the player to work with any binary protocol. Flash player 8.5 will also contain AVM1, which executes ActionScript 1.0 and 2.0 code, for backward-compatibility with existing and legacy content.

With ActionScript 3.0, we have achieved more than simple compliance with the ECMAScript standard; Macromedia now chairs the ECMAScript committee and helps drive its evolution. ActionScript 3.0 features a compilation mode for stronger compile-time type checking that provides the benefits of languages such as Java or C#. It supports new features to streamline data manipulation, including the E4X (ECMAScript for XML) standard, which extends the language and adds XML as a native data type allowing developers to more naturally interact with and manipulate XML. It adds regular expressions support for better text parsing and processing. It sheds some of the ad hoc event handling schemes in the old virtual machine in favor of a unified model based on the W3C DOM Events standard. And it has significantly updated APIs aimed at the application developer audience.

The Macromedia Flex 2 Product Line
The Flex product line gives application developers a powerful client runtime, programming model, development environment, and data services. It supports common design patterns, works with existing development and deployment technologies, and provides the benefits of a modern, standards-based language. The product line is comprised of the following distinct technologies:

  • Macromedia Flex Framework 2
  • Macromedia Flex Charting Components 2
  • Macromedia Flex Builder 2
  • Macromedia Flex Enterprise Services 2
Flex Framework 2
Flex Framework 2 builds on the foundation provided by Flash Player 8.5 and ActionScript 3.0. It adds a rich class library based on ActionScript 3.0 that embodies best practices for building successful RIAs. It also extends the programming paradigm by adding an XML-based language called MXML that provides a declarative way to manage the visual elements of your application. Flex is packaged with a set of developer utilities such as a command-line compiler and debugger that enable developers to code in their favorite editors and invoke the compiler or debugger directly.

Essentially, Flex Framework provides the skeleton of the application. Developers can describe an application's user interface from prebuilt components by either extending them or creating new ones from scratch. They can enable predefined interactions, such as draggable columns on a data grid, or hook into some well-defined events to define specialized behaviors. They can choreograph complex user interface transitions using a flexible effects infrastructure. They can describe the flow of data through the application's user interface. And they can define the look and feel of the application through a powerful skinning and styling infrastructure.

More Stories By David Wadhwani

David Wadhwani is the vice president of product development for Macromedia Flex. Prior to joining Macromedia in 2002 he was the founder and vice president of product development at iHarvest Corporation, where he led the development and deployment of a web-based knowledge management and collaboration system before selling it to Interwoven, Inc. He also spent approximately four years at Oracle in the early 1990s where he was part of the core team that conceived, designed, and implemented Oracle's first business analytics software package.

Comments (1) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
Alberto moray 10/31/05 08:01:22 AM EST

I've only just started looking at Flex but already I am moving my own goalposts: this is where the game is going to be from now on. Great work, Macromedia!