In the realm of rich internet applications, Adobe has been the leader for quite some time with their Flash platform. However, Flash has seen very little use inside of major corporations for serious business applications, because of it’s weaknesses in architecture (such as a timeline-based approach and it’s reliance on ActionScript).
However, Adobe’s Flex platform is a different story – with Flex, Adobe has built an event-driven architecture that is truly meant for application development, and not based on animation or games like Flash was. Granted, it still uses ActionScript as it’s primary language, but the fact that it is event driven and based in MXML means that it has a structure not unlike Microsoft’s ASP.NET, and has a lot of advantages that ASP.NET does not bring to the table. A short list of these advantages are thick-client performance and power without having to use tons and tons of jQuery and AJAX, and versioning control because Flex will automatically download the newest copy of the application on-demand. Silverlight is an alternative of course, but with the widespread acceptance of the Adobe Flash Player, it’s not clear that Silverlight will be able to catch up.
Because of these advantages, I expect that we will start to see a lot more people creating business apps with adobe flex. In fact, Unstoppable Software recently completed a project which used Flex for such a purpose, which is the Elevated Interiors Cab Designer.
The purpose of the Cab Designer is to allow customers that would like to create a custom elevator interior to view an artist’s rendition of what the cab will look like in their
browser. However, there is also a lot of business functionality built into this application, such as submitting a design to sales for a quote, saving a design so that another user can view the design and alter it, and pricing/weight calculation routines for both sales and code compliance.
When I first chose Adobe Flex as the platform for this application, I knew that Flex would be powerful, but did not know about all the features Flex has for both integration and scalability, and I was very pleased to find that it is truly an application development environment, as even a C#.NET programmer such as myself could understand the ActionScript code and MXML files and the general logic flow of the application. For this application, we also had to merge a lot of “legacy” features that existed in the Flash environment into the Flex environment, and we found the tools that Flex provided perfectly up to the task.
Most importantly, Flex allowed us to deliver a great tool for the customer’s users, in a way that will be very maintainable and understandable for future developers because of Flex’s structure. Since it runs entirely on the Flash player platform, cross-browser compatibility was not an issue – in fact, we had more issues with our HTML site working across browsers than we did with the Flex app. Also, the power of some of the toolkits and controls inside of Flex are really amazing compared with their .NET (or ASP.NET) counterparts, allowing rich applications to be created much faster. Because of all of these aspects, I think Flex will find a growing following inside corporate America, as it starts to be used for more line-of-business applications.