SILVERLIGHT – The Good, The Bad and The Ugly!

I have been on hiatus for a while – primarily due to work pressure. I have been using SILVERLIGHT technology for about a year now and I have come to grips with the good, the bad and the ugly of it.

Basically, my opinion – SILVERLIGHT – is an over rated technology. There are so many missing pieces as well as security constraints. The main selling point of SILVERLIGHT was that it would give the same functionality or close to it, of what you could get from a desktop application.

To understand that selling point – you need to contrast that to what the traditional Web application gives. Simply put – SILVERLIGHT – is just a derivative of a web application with taunted hybrid features of running as either a web application or running as Desktop application in OOB mode. The major drawback of standard web applications has been the lack of a TRUE RICH USER EXPERIENCE – largely due to the STATELESS STATE of the protocol – HTTP(S).

I have done my own fair share of development in Desktop Application – primarily with Delphi and in recent times, using WPF. Likewise, I have also done extensive web development using Web+ ( ColdFusion “look alike”) and one of the early disciples of AJAX. My point is : you can conveniently say that I am an “ELDER STATESMAN” in software development – I have paid my dues, so, I know what I am saying.

My foray into SILVERLIGHT has not really been rewarding in terms of INNER PEACE. Although there could be multiple reasons for this – the most important one - self fulfillment has not been there. My biggest issue with SILVERLIGHT is the asynchronous way of DATA operations. You cannot invoke any DATABASE operations directly – you need to have an EVENT HANDLER that gets executed when the operation completes.

Put this way – when a user clicks “SAVE” on a form/page displayed in the BROWSER, you cannot really have a SINGLE THREAD that processes the SAVE operations and reports back the success of failure of that operation. You could really – but it could take for ever and that will impact the user experience greatly. So, sometimes, an operation that a user thinks he's done with or successfully saved to the database may in fact not be the case and to compound that - the user may have gone to something else in the application. The potential exist to be in a perpetual state of ORPHANAGE.

In fairness though – there is new concept or pattern that has been introduced in DOT NET FRAMEWORK 4.5 called EAP – Event-Based Asynchronous Pattern that is supposed to make the asynchronous calls much more better.

My other beef with SILVERLIGHT is the lack of PRINTING support – there are so many home grown ways of printing but no clean support for printing as is available in say ASP DOT NET platform for example. Of course, there are THIRD PARTY TOOLS trying to fill this void but the way this is implemented is not always satisfactory and basically leverages on some behind the scene web services stuff. Also - if you are running OOB – Out Of Browser – the printing feature may not be available for real LIVE Data. You could used the ISOLATED STORAGE concept to spin stuff.

The only good thing I have seen with SILVERLIGHT is the ISOLATED STORAGE concept. Simply put – this is "COOKIES ON STEROIDS". It uses the concept of COOKIES but allows the user to store large amount of data on the client side. So, if the design of your application is SOLID – you can use the ISOLATED STORAGE to store STATIC DATA to reduce the amount of round trips to make from the client to the server to retrieve data.

In summary, HTML5 has been dubbed the next successor for SILVERLIGHT. The only issue now with HTML 5 is maturity. How solid is it and what STANDARDS will be adhered to. My advice – If you considering moving to SILVERLIGHT, stay put for now. Consider doing whatever you want to do with ASP DOT NET and in a few years down the road, HTML5 would have matured enough to be considered a strong contender for the feature set SILVERLIGHT currently proclaims.

Bottom line, SILVERLIGHT is a WASTE OF TIME – stick with ASP DOT NET and wait for HTML5 to mature. Just in case you are still adamant on adopting SILVERLIGHT - you may want to take a look at this book - Silverlight 5 in Action. Seems to be the best resource out there on SILVERLIGHT.

Comments

Popular posts from this blog

Decompiling Delphi - 3

Decompiling Delphi - 2

Artificial Intelligence, Oxymoron and Natural Intelligence