NOTE: This post in no way attempts to provide an exact science for selecting Flex or Ajax as your presentation layer and is by no means the end all — it simply provides a couple quick points I often use as a litmus test. For a more detailed discussion, read my earlier post “
Dear AJAX…with love, Flex“
So without further adieu, let me start with this blanket statement — I’ve come to think that each RIA technology really does have a niche.
If you’re looking to spruce up a relatively static (HTML based) site with a small bit of “richness” without introducing another layer, plugin, etc, then AJAX is a good way to go; eg, you wanna add the ability to rollOver a shopping cart in the header of an app and show it’s contents — this doesn’t sound like a job for Flex — not that you couldn’t, but is it really necessary to require users to download 180k just for a small piece of functionality; AJAX’s relatively unobtrusive nature makes it a good choice for small upgrades or small new features in the
UX.
On the other hand, you wanna build a large, complex enterprise level app with multiple business processes over several states, requiring data entry that leverages a myriad of business logic on the back-end, like an entire shopping experience, then hell yes Flex is the way to go!
Finally, if your application needs to support a long laundry list of nonfunctional requirements (ie, you need to support Firefox, IE, Netscape, Opera, Mozilla, Safari, etc on Win, Mac, and Linux), then wisely choose the independent Flash Platform as your runtime — employing the non-standards compliant browser as your application’s runtime / vm just doesn’t cut it.
My bottom line — use each technology for the right problem domain:
Ajax
- An unobtrusive solution for adding minor rich features and functions and / or updating small bits of text-based data in a static, HTML site.
- Examples:
- Adding a roll over effect to a shopping cart and showing the user’s current items in a floating DIV tag by making an Ajax call.
- Updating the description for a photo in an online album without forcing a page refresh.
Flex
- Ideal for large, complex enterprise level applications that include multiple states and performs data manipulation on non-trivial / complex data objects on the client side via a rich and robust user interface.
- Examples:
- Taking a multi-page / step shopping experience and redesigning it into an accordion interface with a CSR collaboration component that offers audio and video chat all contained within one seamless application without page refreshes.
- Creating an online email application with all the functionality of it’s desktop brother.
…and for everything that falls in between, use your functional and non-functional requirements to lead you to the right solution.
Again, this is just a couple quick points. If you’re looking for some additional bullets, check out my aforementioned post “
Dear AJAX…with love, Flex“
Recent Comments