Summary
Today Adobe released the latest versions of its Flex SDK, now under an open-source license, and the Eclipse-based FlexBuilder IDE. In an interview with Artima, Adobe's James Ward discusses new features in these products.
Advertisement
Adobe released today Flex SDK 3 as well as FlexBuilder 3, an Eclipse IDE for building Flex applications. In an interview with Artima, Adobe Flex evangelist James Ward discusses new features in both the SDK and FlexBuilder.
Ward started out by highlighting the relationship between the Flex SDK and FlexBuilder:
The Flex SDK is the foundation for building Flex applications. It's the core toolset: the compiler, the debugger, the core components, the Flex-Ajax bridge. That's now officially open-sourced: The source-code for the Flex SDK is now available under an open-source license.
In addition to open-sourcing the Flex SDK, Flex 3 has a many new features. Those include framework caching that allows Flash applications to start up much faster because they don't have to download a large chunk of Flex code for every single Flex application. We also have a new deep-linking API for linking via URLs within Flex applications. That allows you to use the back and forward buttons inside the browser.
We're also launching today FlexBuilder 3, which comes in two flavors now: FlexBuilder Standard and Professional. These form the Eclipse-based tooling around the SDK.
There are a lot of new features in both of these tools, too. Added AIR support is one, there are some new tools to aid in designing workflow and, in FlexBuilder Professional, there are now the advanced data visualization components, including the charting components, an advanced data grid, and an OLAP data grid for doing more complex data visualization. There is also in FlexBuilder Professional a memory and performance profiler.
Among the most visible new features in FlexBuilder 3 Professional are the advanced data visualization components, including an enhanced version of Flex Charting:
The charting components, which were already there in Flex 2, had a number of enhancements. These charting tools are now in a package called the Advanced Data Visualization components.
There is also a new datagrid that supports hierarchical within a grid, sub-totaling rows, grouped columns, multi-column sorting, and a number of things that were not in the basic datagrid component. We also have an OLAP data grid that allows you to retrieve data from OLAP queries and do the typical OLAP visualization in a datagrid, such as flipping the data, rolling data up or drilling down.
Ward also mentioned several productivity-related enhancements to FlexBuilder 3:
There several enhancements in FlexBuilder 3 that make it easier to work with back-end data. One of those is WSDL import: you can point to a WSDL, and this tool will stub out all your ActionScript classes, very similar to how WSDL-to-Java works.
There is also a data import wizard that allows you to connect to a database schema and generate the back-end code for different languages. There is currently support for PHP, ColdFusion, Java. This tool also generates the front-end data management classes connecting to those back-end services.
We also open-sourced BlazeDS, which is a set of libraries you can add into any Web application and it allows you to communicate very easily and efficiently to your Java back-end. Whether your Java back-end is Spring services, EJBs, POJOs, Hibernate, or something else, BlazeDS will help you to easily connect to that back-end. The communication is done using the AMF binary protocol, which is very efficient in moving data across the wire between a Flex client and an enterprise back-end. It's a much more efficient protocol than, say, text-based ones using XML.
There are no special wizards yet in FlexBuilder 3 to work with BlazeDS, but you can easily use BlazeDS from FlexBuilder: When you create a new project, you specify a few parameters, and that sets up the compiler parameters needed to compile an application that uses BlazeDS. That's because there are a few additional compiler parameters needed when using BlazeDS, and the project wizard in FlexBuilder 3 automate setting up those parameters.
There are several new features in Flex 3 that make Flex applications more easily integrate with traditional HTML-based Web applications. Ward mentioned deep-linking that allows a Flex-application to provide REST-like URLs, and framework caching that speeds up the loading of a Flex application:
Deep-linking allows you to have bookmarkable URLs as a user navigates through a Flex application. In Flex, state is stored on the client side, unlike in a traditional Web application where state is stored on the server and a URL is created for every state change. In Flex 2, there were some ways to support forward and back browser button support. That didn't actually change the URL, so these were not bookmarkable URLs that could tell the application how to recreate the state on the client.
In Flex 3, we added that capability into the framework itself. This originated in an open-source project that is now just part of Flex 3. You can bookmark URLs that point to state inside a Flex application, and even email those URLs around. When people access the application through those URLs, they get the right application state.
Another new feature is framework caching. The Flash Player now has a cache that's independent of the browser cache. The browser cache will still cache SWF files and those sorts of things, but putting something into the Flash Player cache means that those artifacts can be used cross-domain, whereas things inside the browser cache can't be used that way.
In order for something to go into the Flash Player cache, it has to be signed by Adobe. Adobe is now providing developers with what we call runtime shared libraries that are signed by Adobe and, therefore, can go into that cache.
As soon as a Flex Web application starts using that cache, the signed shared library code will go into that cache. If the user then visits another Flex application on another domain, and if there are some shared Flex libraries between those applications, the second application will use the libraries already downloaded by the first application and present in the framework cache. This feature can dramatically reduce the size of Flex applications.
What do you think of new features in FlexBuilder 3 and the Flex SDK?