Monday, February 8, 2010

What is Silverlight ? Part I


The first question that arises when you hear about Silverlight "What is Silverlight?"
It's a new technology from Microsoft to develop next generation Rich Internet Applications (RIA's). Having said that, gives rise to another question "What is RIA ?" The name says it all, Rich Internet Applications. 
Wikipedia definition on RIA,
"Rich Internet Applications (RIAs) are web applications that have most of the characteristics of desktop applications, typically delivered either by way of a standards-based web browser, via a browser plug-in, or independently via sandboxes or virtual machines."
The definition can be summarized as "Web applications that have the features and functionality of traditional desktop applications." Features of RIA include :
Richness
High Performance
Compatibility
Advanced Communications
Security

Advantages of RIA include :
Every user interaction does not require request/web server response.
Data can be obtained from server without redrawing entire page.
Combines the best of desktop, web and communications.
Efficiently utilize network bandwidth by transmitting only portion of the data that is changed.

Read more at Wikipedia on RIA.

There are different technologies from different vendors to develop RIA's like AJAX,JavaFX, Adobe Flex/Flash/AIR, Silverlight etc. So Silverlight is a technology from Microsoft to develop RIA. When a user interacts with your site, he should be in control of the site and not the vice-versa. Let me explain, When you click on a link on some web page, the page is blank for some time [ the browser (client) sends the request to the server, the server process the request and sends the data back to the browser (client), this process takes some time ]. For this time the user has to wait until the data is displayed (called as 'Flicker' ). With the help of AJAX, you can reduce the 'flicker'. AJAX is not a new technology but a new way to do the same old things. AJAX is purely a browser - server communication i.e it helps to eliminate the flicker but it does not provide rich UI, high multimedia content etc. To accomplish this, RIA technologies were introduced (JavaFX, Flash/Flex, Silverlight etc). We will discuss this further in Part II.