RIA – Why? Which One? How?

On December 13, 2008, in RIA, by Akash Kava

RIA (Rich Internet Application) means faster means to develop light applications to fit in your business presentation and few quick interactive applications. With RIA you can not make a money tree and you can not become rich.

Target Applications:

  1. Frontend Applications
  2. Small Quick Demo Applications
  3. Graphical Analysis of MIS
  4. Marketing Presentations
  5. Quick Forms/Data Entry for Mass Audience
  6. Polls, Social Interaction Applications
  7. Thin Client Applications

With RIA you can generally make a thin client applications, which surely needs to interact with high poerful web server or any other form of server over internet. RIA replaces frontend for modern internet applications from traditional HTML/JS form processing websites.

WHY RIA?

Traditional web portal applications (ASP.NET/EJB..) takes too much of time to process every single request, as it does not use full potential of client side computer. Every decision of which button to be displayed, state of an application and user’s choices and preferences, everything is maintained on server and applications utilizes too much of bandwidth as well.

Thats why, RIA is simple step to differentiate user interface and business logic completely with implementations of standards like SOAP web services and REST apis.

All RIAs are compiled at development site, that means the final RIA is in form of an application, which will execute accurately as designed. However in traditional HTML+JS, if any part of HTML is not rendered properly or its coded wrongly, there is no way to detect until it is delivered to browser and some error has been encountered. Pre compilation on RIA, reduces time required to develop web application drastically.

WHICH RIA?

Flex Silverlight JavaFX XUL
Vendor Adobe Microsoft Sun Microsystems Mozilla
Open Source Yes
(I am talking about FLEX not Flash)
No Yes Yes
Support

Community Support is very bad when you need quick solution in an emergency.

Paid Support & Community Paid Support & Community Community Support Community Support
Dependency Flash Player Silverlight Player Java Runtime + JavaFX Runtime XUL Runtime
Availability

According to various statistics, the by default availability of dependent software on PCs.

95% 10% 0%

Although few PCs and all MACs have Java Runtime, they still need something additional.

30% as FireFox supports XUL Apps
Size of Runtime 1MB 4.5MB 30MB 4MB
Native Device Access Camera, Mic and Speakers Speakers Speakers None in Web App,

May be few in Desktop App

Audio Video Support Widely used FLV and MP3 format, stable and its there since 2001 WMV/WMA/WMA Pro No No
Converters for the Supported Video FFMPEG and many other commercial vendors available Paid Encoders No No
Documentation SDK Documentation and Samples MSDN but still very premature, (Reason, the learning curve is little higher) JavaDocs but JavaFX is still new Apache Documentation, very scattered, difficult to learn.
Syntax XML + Action Script XML + C# / JS / VB.NET Totally New Syntax XML + JS
Language Feature Strictly Typed with “Object” being dynamic type Strictly Typed,

Dynamic type to come in C# 4.0

Strictly Typed Dynamic Typed
Binding Expressions

Flex introduced wonderful concept of auto updating expressions when properties or variables changes.

Very Accurate Accurate but lengthy code Available Better then JavaFX and Silverlight
Two Way Databinding
Not Available, Coming up in Flex 4 Available - Available
Binding Declaration Simple Attribute Extra Code in each bindable property Extra code in each bindable property Simple Attribute
Reflection Available Available Available Available
Code Size Very Concise Even simpler things like validator etc takes 6 lines, too big code size to maintain Size is small, but very disorganized, difficult to read Concise enough
Platform Availability Windows, Mac, Linux Windows Only Windows, Mac, Linux Windows, Mac, Linux
Stability Very Stable Pre Beta Pre Beta Stable Enough
Control Library Rich set of Controls available, plus lots of free stuff available as well Very basic controls, you have to spend money on other ISVs to get good controls Good set of Controls Almost everything is free, lacks good documentation though
Coders Availability

For project managers, how difficult it will be to find coders who will code.

Easily Available as existing Flash, HTML, JS, ActionScript can code. C# and Microsoft Technology programmers can code. Java Programmers can code, but due to new syntax, its still difficult to get hands on it. Very difficult as it requires too extra knowledge of mozilla architecture and various standards, which is not taught anywhere.
Commercial Training

Starting project is very easy, but ongoing maintanence and meeting deadlines requires excellent knowledge of technology, which you should not rely on community blogs, because time required to search any solution is costly.

Excellent Excellent Training available Where?
Threading Support No Limited No Limited
Themes/Skinning Yes Yes, but size of code is very big No Yes
WebService Integration Yes Yes Yes but very frustrating Yes
Upload/Download The Best Feature in Flex Yes Yes Yes
Installable on Desktop Yes No Yes Yes
Database Support (in desktop app only) Sqlite Not Applicable JavaDB

Too heavy and too slow

Sqlite
Auto Update on Desktop App Yes No No Yes
Present Since 2001 2007 2007 2001
IDE

Plugins are available under eclipse and netbeans etc type of editor, but problem is they are so premature, they dont support refractoring, analysis, debugging and lots of other facilities.

Flex Builder Visual Studio Plugin Plugin
IDE Cost
IDE Refractoring Yes Yes No No
IDE Source Versioning CVS

Good for Multiusers

Source Safe (Single Developer only)/ TSS (too costly) Plugin Plugin
Drag and Drop Editor Yes Limited, because to script you need Visual Studio and to design you need Blend (Other paid software) No No
Code Intellisense (Auto Complete) Yes Yes
Project Management Yes Yes
Library Management

Creating and importing shared code in the form of libraries.

Yes Yes
Component Development Very Simple Quite Complex as it is divided in User/Custom controls categories. Available Simple
The Result
Leader of RIA Flex Follower The Last Linux Love

Important Note:

Silverlight claims to be platform independent, but reality is, Microsoft no longer provides any more upgrades of Silverlight version for any other operating system other then Windows. And Linux was already not officially supported by Microsoft.

Advantages of RIA

  1. Reduce Development time
    As compared with traditional web application, since RIAs are pre compiled, errors due to syntax, wrong spellings can be detected earlier at time of desiging.
  2. Load First, Run Throughout
    RIAs load entire application (Except XUL) in the beginning, instead of HTML+JS, which loads as things proceed. This means, either application will load completely and work accurately even with slower bandwidth connection, or if some part didnt load, it will straightway display an error. So it works like transaction, either all or nothing. HTML+JS can behave unexpectedly in case of missing components.
  3. Seperate Design and Development Processes
    Flex and Sliverlight offers complete seperation of Development and Designing keeping integration simple, other platforms (earlier web ones) require too much time integrating designs and process.
  4. Utilize Client Computing
    Almost every computer has high powerful graphics capabilities, HTML/JS doesnt offer any great benefit over it. RIAs can completely explore native graphics capabilities and you get wide range of user interface functionality.
Share
Tagged with: