Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Enterprise RIA Development: Comparing Flex/Flash, Silverlight, HTML5/CSS3, jQuery/JavaScript

0.00/5 (No votes)
19 May 2011 6  
An article that compares Flex/Flash, Silverlight, HTML5/CSS3, jQuery/JavaScript for enterprise RIA development

Abstract

The Rich Internet Application (RIA) landscape is richer than ever before.  The technologies that are available today have reached maturity, and there are many examples of quality enterprise applications built on each technology.  Knowing the strengths and weaknesses of each platform can help determine which technology makes the most sense for your organization’s project.  This decision has become increasingly complicated due to the mobile space.  Businesses no longer have to simply determine a direction for their browser based application, but they also have to consider how this decision affects their mobile strategy across multiple platforms.  With newly added mobile support as well as enterprise tooling and server connectivity, the Flash Platform proves to be a compelling choice for enterprises.

ARTICLE

Enterprise RIA Development: Comparing Flex/Flash, Silverlight, HTML5/CSS3, jQuery/JavaScript

David Tucker
Technical Architect, Universal Mind

The Rich Internet Application (RIA) landscape is amazingly expansive and the solutions that power them have matured.  In addition, enterprise applications have expanded from simple charts and data grids.  Since enterprises embark on a journey every day to determine which platform meets their needs, it makes sense to analyze the four main players and determine which makes the most sense as a true enterprise RIA platform.

Enterprise Needs

Before an analysis of platforms can be made, it is important to stop and consider what factors truly matter in the enterprise.  Large enterprise organizations are vastly different from startups, agencies, and small businesses.  Their concerns include:

  • Testability – Do tools exist to help the developers and Quality Assurance teams perform unit, functional, and integration tests on the platform?
  • Staffability – Are there enough developers in the marketplace to fill the needs for current and future products on the platform?
  • Support - Is there an organization behind the platform (and its related tools) that can provide support at an enterprise level?
  • Integration – Does the platform easily integrate with the organization’s existing backend architecture?
  • Cost – What is the total cost of ownership (TCO) for the platform?
  • Reach – Is this solution available where my customers need it?

Platform Landscape Analysis

After an understanding of the needs of the enterprise are in place, we can begin to analyze the RIA platforms available today.  In this analysis, four main contenders emerge:  Adobe’s Flash Platform (Flash and Flex), Microsoft Silverlight, HTML5/CSS3, and traditional Ajax applications.  These four solutions power most of the RIA’s in existence today. 

Flash Platform (Flash/Flex)

The Flash Platform encompasses multiple development tools and runtimes.  Content can be developed with Adobe Flash Professional or with Adobe Flash Builder.  Once the content is created, it can be viewed with the Adobe Flash Player in the browser or deployed as a desktop application with Adobe AIR. There are also many options for deploying Flash content to mobile devices (which will be covered in more detail later in this article).  The Flash Platform boasts many popular RIA’s including Hulu, SlideRocket, Aviary, and Creately.

Strengths

One of the main benefits of using the Flash Platform is its reach.  The Flash Player is currently installed on most every computer in the world.  According to the Adobe Flash Player Penetration statistics, 99% of computers in mature markets have Flash Player 10 or newer.  In addition, with Flash Builder 4.5 the tooling for Flex developers has been greatly improved.  Productivity enhancements and mobile capabilities have put this tool on par with most any development environment.  In addition, the number of Flash Platform developers continues to grow.

The Flash Platform recently silenced many critics with a video of a new build of the SDK which supports the deployment of Flex-based applications to iOS devices with near-native performance.  In this post, Christophe Coenraets, an Adobe Evangelist, demonstrates a Flex-based application that was deployed onto an iPad, iPod Touch, and an Android-based Samsung Galaxy Tab.  This application also utilized Adobe’s LiveCycle Collaboration Service.  This illustrates another strength of the Flash Platform on mobile devices.  Developers can leverage existing libraries and services to build their applications on.   

  Android Browser Android Apps iOS Browser iOS Apps Playbook Browser Playbook Apps WP 7 Browser WP 7 Apps
HTML5 check.png check.png check.png check.png check.png check.png plus.png plus.png
Traditional Ajax check.png check.png check.png check.png check.png check.png plus.png plus.png
Flash Platform check.png check.png x.png check.png check.png check.png x.png x.png
Silverlight x.png x.png x.png x.png x.png x.png plus.png check.png
Figure 1 - Mobile Compatability

Weaknesses 

While the Flash Platform has much of the mobile space covered, there are two main gaps for the Flash Platform as seen in Figure 1.  First, there is a total lack of Flash support for the browser on iOS.  Second, there is no support for either the browser or applications on Windows Phone 7. 

The strengths of the Flash Platform are growing, but there were some difficulties – primarily perception issues -- last year.  In April of 2010 Steve Jobs posted his Thoughts on Flash which sent shockwaves through the enterprise Flash Platform development community.  At this point, many developers began spewing ‘Flash is dead’ rhetoric, and many in the industry began to join the bandwagon.  This led to many organizations looking to HTML5 for future solutions.  In addition, many developers have highlighted some advanced functionality like threading which is noticeably absent from the Flash Player. It should be pointed out however that these are not inherently technical shortcomings but perception issues, many of them fueled by Apple’s unwillingness to provide native Flash support on its mobile devices.  

Silverlight

Microsoft’s Silverlight is another plug-in based solution (similar to the Flash Player) which is based on a subset of the .NET framework.  Silverlight applications can be viewed in the browser on Mac and PC desktops which have installed the Silverlight plug-in.  Silverlight also has the power to install these browser applications as sandboxed desktop applications.  While Silverlight has many of the features of the Flash Player, it has found a bit of a sweet spot with media applications.  Silverlight currently powers the online Netflix player and the streaming of many live events broadcast online.

Strengths

For organizations that are already invested in the .NET platform, Silverlight is a natural choice.  Silverlight is a subset of Windows Presentation Foundation (WPF), so many developers who have built desktop applications with WPF will feel right at home in Silverlight.  In addition, since version 2 Silverlight has included a version of the .NET framework which implements the Common Language Runtime (CLR).  This allows developers to write their Silverlight applications in whichever .NET language they are most comfortable in addition to XAML,  the declarative markup used to define the user interface.  Moreover, developers can work with Microsoft’s mature toolset including Visual Studio and the Expression Suite of applications which includes integrated testing tools.  

Silverlight has matured since its inception, and it now offers most of the features found in the Flash Player.  One feature that supersedes the Flash Player is its raw AV pipeline which allows developers to utilize their own custom codecs with Silverlight.   This has led to Silverlight being the player of choice for companies like Netflix. 

Weaknesses

The biggest threat for Silverlight at this point is Microsoft.  At Microsoft’s 2010 Professional Developer Conference (PDC) Bob Muglia, the President over the Server and Tools business, indicated that Microsoft’s focus with Silverlight had shifted, and that it would primarily be used for Windows Phone 7 development.  Most people walked away from those comments with the thought that Microsoft was placing much more focus on HTML5 for browser based solutions and that Silverlight for the web was fading.  Many of these concerns were rekindled when Microsoft failed to highlight Silverlight in the opening keynote of Mix 2011 and chose instead to focus on IE10 and HTML5.

From a mobile perspective, Silverlight is very limited as shown in Figure 1.  Silverlight did receive a huge boost when Microsoft announced that it would be the platform for developing Windows Phone 7 applications.  However, that is where the mobile support for Silverlight ends.  In addition, there isn’t even full support for Silverlight in the Windows 7 browser at this time. 

Traditional Ajax (jQuery)

In many ways, traditional Ajax[1] applications triggered the RIA revolution.  In the early days, Microsoft’s online version of Outlook – which was essentially an RIA built with Ajax -- was revolutionary and evolutionary.  This solution circumvented the page-refresh model that users had come to expect.  This technique began its life as DHTML, but it eventually became commonly known as Ajax.  Applications like Gmail, Google Docs, and Apple’s Me.com are traditional Ajax applications.

Strengths

While there can be complexities with building, testing, and deploying a traditional Ajax application, it does have its strengths.  First, no plug-in is required.  As long as a user has JavaScript enabled, he will be able to interact with the application.  In addition, powerful frameworks have matured that help manage the complexities of cross-browser implementations.  The most famous of these frameworks is jQuery which has a thriving development community. 

There is no shortage of HTML4/CSS/JavaScript developers.  Staffing an Ajax project would be fairly easy for most organizations.  Moreover, the tools for development and testing have also matured over the years and many open source and commercial options exist.  While there is no one organization behind this platform, there are organizations that can provide support to the enterprise.  Many of the commercial JavaScript frameworks offer this as an option. 

Weaknesses

Traditional HTML4/CSS/JavaScript applications can cause many headaches for the enterprise.  Implementations and features are vastly different across browsers.  This can lead to an explosion in the amount of time required to properly test an application before it’s released.  Organizations have to choose which browsers they will support, and then test the application on each combination of the browser and operating system.

Additionally, traditional Ajax applications can be a pain for developers.  ‘Hacks’ are required in many cases to get an application appearing consistently across multiple browsers.

HTML5/CSS3

HTML5 and CSS3 are the products of the web standards process which is working to define a set of functionality that will be uniform across all of the browsers in the upcoming years.  HTML5 provides a lot of functionality that was previously only possible with plug-in solutions such as video/audio playback, local storage, drag and drop functionality, and geolocation.  CSS3 is the standard for the next generation of CSS which includes functionality like animations, advanced layout support, and new types of selectors.  In a similar way to HTML5, CSS3 can be broken down into modules of functionality that can be made available to a browser before the entire specification is complete.  HTML5/CSS3 powers RIA’s like LucidChart, SketchPad, and the [2].

Strengths

The outlook for the mobile space is much brighter as demonstrated in Figure 2.  When looking at some core pieces of HTML5 and CSS3, in all but one case the percentage of users with access is much higher on mobile browsers than it is on desktop browsers.  In addition, powerful frameworks like Sencha Touch are available that specifically target the mobile space.  When paired with a solution like PhoneGap -- a development framework for building mobile apps using JavaScript, HTML, and CSS -- developers can create both browser and app solutions.  In short, HTML5 is the platform which has the widest mobile support.  Almost every platform has support for many HTML5 features  (Windows Phone 7 is slated to have HTML5 support soon). 

Organizations have the potential to lower their total cost of ownership by adopting HTML5.  While there will be target-specific implementations, a good deal of code can be reused from the browser implementation with the different mobile implementations.  In addition, developers can use the same tools they have been using for HTML4 / JavaScript development. 

image001.png

Figure 2 - HTML5 Desktop vs. Mobile[3]

 

Weaknesses 

The main Achilles heel of HTML5/CSS3 has to do with feature availability in a user’s browser.  Many of the features documented by the HTML5 standard are simply not implemented yet in most desktop browsers.  Where they are implemented, they are not yet implemented consistently.  Truthfully, for a feature to be consistently implemented Apple, Google, Microsoft, and Mozilla all have to agree.  This has led to many arguments including a heated debate over video codecs which still has no firm resolution. 

For the enterprise there are other concerns as well.  While the number of skilled HTML5/CSS3 developers is growing, most developers are still unfamiliar with the platform.  Some traditional testing tools aren’t yet capable of testing applications that take advantage of new HTML5 capabilities like Canvas.  Finally, organizations have to deal with the slow roll out of the newer HTML5 features while the web standards process and vendor browser implementations run their course. 

Conclusion

While each enterprise and each project has its own needs, it is important for any enterprise to understand the implications of selecting an RIA platform.  Understanding the needs of the project and the available platform options is absolutely essential especially with all of the recent misinformation.

After examining the strengths and weaknesses of each platform as well as the needs of the enterprise, one solution seems to rise above the others.  Let’s analyze the highlights:

  • Silverlight has very limited reach in the mobile space.  While it may have the best tooling of any of the platforms, its questionable future makes it a risk for the enterprise, especially since the life of an enterprise application is much longer than other applications.
  • Ajax applications produce a plethora of problems when it comes to cross-browser compatibility and testing. 
  • HTML5 will certainly become a huge fixture in the future.  At this point, it can’t be a serious contender for a desktop browser application due to the inconsistent browser implementations.  If the desktop browsers catch up with the mobile browsers, it will be hard for any platform to compete against HTML5.
  • The Flash Platform becomes the best choice for the enterprise due to its reach across both the desktop and mobile space.  In addition, there are a wide array of services, servers, and libraries that integrate well with most existing enterprise architectures.

[1] Ajax initially referred to ‘Asynchronous JavaScript and XML’, but eventually the term expanded to refer to any implementation of JavaScript which allowed the page to communicate with external resources without a page refresh.
[2] The Netflix iOS application doesn’t use HTML5 video support.  Instead, they use their own custom playback/DRM solution.
[3] This data was retrieved from SiteCatalyst Net Averages which is now owned by Adobe.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here