Someone asked me to compare Silverlight / HTML development. I realized that the question can be answered in many ways:
1. For end users
Silverlight is a plug-in and requires installation first. However, it does provides consistent look and feel across all browsers.
Out of browser support
No support in HTML. Third party tools like Google gears offers some functionalities but there are lots of issues around platform and accessibility.
Out of box support for out-of-browser support. provides features like drag and drop onto application surface.
Cut and copy paste in HTML
HTML is displayed in browser; which, in turn provides facilities for cut copy and paste.
Silverlight (specially 4) provides rich features for cut-copy-paste along with full control over what can be cut copy pasted by end users and .advanced features like visual tree printing.
Rich user experience
Silverlight is meant for RIA experience.
User data storage on client end
In HTML only small amount of data can be stored that too in cookies.
In Silverlight large data may be stored, that too in secure way. This increases the response time.
In Silverlight everything run the client side. Calls are made to server ONLY for data; which also reduces network traffic in long run.
2. For Developers
AJAX calls can be a bottlenecks for performance, if the calls are many.
Provides for many clean patterns like MVVM and composable application. Each call to server is asynchronous in silverlight. AJAX is in built into silverlight. Threading can be done at the client side itself to provide for better responsiveness; etc.
Debugging in Silverlight is very helpful. As it is compiled; it provides rich features for both compile time and run time error handling.
Multi -targeting browsers
Silverlight works exactly the same in all browsers and works on almost all popular browser.
Silverlight is very close to WPF. Bot the platform may be easily targeted while maintaining the same source code.
Silverlight provides a rich set of controls including graphs, audio, video, layout, etc.
3. For Architects
Silverlight provides for patterns like MVVM (MVC) and rich (fat) client architecture. This segregates the "separation of concern" very clearly. Client (silverlight) does what it is expected to do and server does what it is expected of.
Silverlight provides great deal of extensibility as custom controls may be made. Extensibility is NOT restricted by browser but by the plug-in silverlight runs in.
Silverlight provides localized storage which may be used for cached data storage. this reduces the response time.
As processing can be done on client side itself; there is no need for server round trips. this decreases the round about time.
Look and feel of the application is downloaded ONLY initially, afterwards ONLY data is fetched form the server.
Cross - scripting is inherently prohibited in silverlight by default.
Some of these like (offline and Canvas support) will be available in HTML5. However, the timelines are not encouraging at all. According to Ian Hickson, editor of the HTML5 specification, the specification to reach the W3C Candidate Recommendation stage during 2012, and W3C Recommendation in the year 2022 or later. see http://en.wikipedia.org/wiki/HTML5 for details.
The above is MY opinion. I will love to hear yours; do let me know via comments.
Technorati Tags: Silverlight