By Jeff Stonebrook, Senior Technical Consultant, Summa
It wasn't all that long ago Web pages were static representations of information with very limited content that wasn’t very engaging. Since then, the Web evolved into dynamic Web pages with changing content; however the user experience was still lacking. Recently in came the Ajax wave, where your dynamic pages became even more responsive and it was quite impressive where Web developers could take this technology. However, we are now in the early stages of the Web 2.0 revolution and with this technology wave comes higher user expectations.
Users want rich Internet applications that can provide a significantly improved user experience by bringing together audio, video and flashy user interfaces. Gone are the days of page-to-page navigation, but rather seamless, integrated applications. Sound impossible? Sound daunting? I would like to introduce you to the world of Flex Web development.
What is Flex? Flex is an Adobe language/platform creation that is a combination of MXML (XML) used to describe the graphical elements/structure of an application paired with scripting (ActionScript) capability to tie together the graphical elements/events into a seamless application. Flex runs within the Adobe Flash plug-in for all major browsers. Therefore, Flex is able to leverage all of the audio, video and graphic capabilities of the Flash player. If you are concerned about availability of a Flash player on client machines – don’t worry. According to Adobe, 97.7 percent of Internet-enabled client machines have the latest Flash 9 version player already installed. But if you run into a client machine without Flash already installed, this can be detected and a Flash player installed for the machine.
And perhaps the best of all, the Flex SDK is licensed under Mozilla Public License (MPL), so it is free to use. However, to be fair, usage of the Flex Builder IDE or Flex Builder Eclipse plug-in is paramount to leverage the debugger.
But what really makes Flex great to work with? Flex has a great GUI development kit, from layout containers to components to validators and formatters to transitions and effects. Sure – other Web 2.0 frameworks offer many or all of these, but not quite to the polished level that Flex can produce. Flex can be easily customized as needed. The GUI layout managers, components, validators, and formatters can all be extended and/or aggregated to create customized components. Flex has provided an excellent data binding capability where GUI components are bound to data in the model and when the model is updated, the GUI components are automatically updated. Try that with some of the other Web 2.0 technologies. Finally, Flex has made it easy to integrate with backend servers. Support for HTTP, WebService and Adobe proprietary formats give the developers complete control over backend server integration options.
Flex is a technology that is here to stay. Developer communities have already begun to embrace Flex. Third party projects in support of Flex are in existence. FlexSpy is a library that allows you to interrogate the composition of a Flex application and be able to see all of the attributes of the components. Antennae is an open source project that enhances the build capabilities of Flex and makes integration with FlexUnit much easier. FlexUnit - in the same vein as JUnit - enables developers to use test driven development to construct Flex applications. Adobe consultants recommend the usage of Cairngorm
micro-architecture to create properly abstracted, well-structured applications. Perhaps most important of all, Adobe supports a very active forums area where Flex developers discuss issues/problems with the Adobe development staff and other developers. This is an excellent resource for Flex developers. These projects coupled with the Flex Builder IDE or Eclipse plug-in and an active developer community, allow Flex to be easily accepted into mainstream development projects.
I have found working with Flex can break the model for what a Web application has to be and opened up the possibilities of what a Web application can be. Take a look at Flex – I assure you will not be disappointed. ■
Jeff Stonebrook is a Senior Technical Consultant with Summa, a Pittsburgh-based IT consulting firm. Jeff has a BS in Computer Engineering and an MBA with a Technical Management Concentration. With more than 15 years of experience, Jeff blends and applies strong technical and project leadership to lead Summa’s clients across all aspects of the software development life-cycle. Summa specializes in helping companies evaluate and implement IT modernization strategies to better meet their business objectives and is an industry-leading provider of Service Oriented Architecture (SOA), Portal and BPM solutions. For more information, visit www.summa-tech.com.