What Is Silverlight?

Silverlight Logo I've noticed lately that a lot of people seem to have misconceived notions of what exactly Silverlight is and does.  I will attempt to explain what Silverlight is and how it fits into the web spectrum in language that even your boss will understand.  What I won't do is try to tell you when you should or shouldn't use Silverlight or how to build specific applications using it, those are topics for other posts.

If you have built a little prototype app in Silverlight, and certainly if you have done more than that, this post is not for you.  This post is directed at those that have heard of Silverlight, think they might know what it is and would like to know if it fits their needs.  It is also a good post to read to get a good general understanding of the way web development works.

Terminology

IIS, Apache, etc.  These are web servers.  They accept the request from a client browser and return the appropriate response.

PHP, ASP.NET, PERL, JSP, Cold Fusion.  These are all server technologies.  They execute on the web server itself in response to requests from a client, typically a web browser.  They typically output HTML. 

MySQL, SQL Server.  These are the databases, they also are located on a server.  Typically the web server technology will have a method to connect to the database.

HTML, JavaScript, AJAX, Silverlight, Flash.  These are all client technologies.  They execute from the web browser itself.

SOAP, WCF, REST.  These are all types of web services.  Typically these are created on a web server to expose data and logic to outside applications.

XML, JSON.  These are data formats.

Where Silverlight Fits

As stated in the previous section, Silverlight executes in the client browser.  What does this mean? It means:

  • Silverlight applications need to be hosted on a web server
  • Silverlight does NOT need to be hosted in IIS, any web server will do
  • Silverlight does NOT need ASP.NET on the server
  • Silverlight applications cannot access databases without an intermediary (like a web service)
  • Silverlight applications cannot access server-side classes or variables without an intermediary (like a web service)

Silverlight also can run on any major browser (Internet Explorer, Firefox, Safari) on any major OS (XP SP2, Vista, OSX, Linux).

Programming Silverlight

Programming Silverlight applications can take many forms.  This is due to a number of items. 

First, the plugin contains a limited version of the .NET framework.  What this means is that you can write real, compiled and managed code that executes in the context of the client browser itself.  What it doesn't mean is that you have access to the full framework.  There are a lot of areas of the framework that are missing completely, like System.IO and others that are present but are missing features, like no ArrayList for instance.  It also doesn't mean that you can build reference an already existing class library from your Silverlight application.  You can still use class libraries but they must be compiled against the Silverlight version of the framework.

Silverlight also introduces what is known as the DLR, or Dynamic Language Runtime.  This allows you to write code in non-traditional .NET languages such as IronPython or IronRuby.

Silverlight Versions

The most current version of Silverlight that is in full release is Silverlight 1.  Silverlight 1 is very good at displaying Media (audio and video) but it's lack of controls and reliance on JavaScript as the only programming language, introduce numerous limitations.  For a first generation plugin though, it isn't bad at all.

Silverlight 2 is currently in it's second public beta and is due to be in full release this fall.  It also contains a full commercial "go live" license, which means that you are permitted to use it to build real production, money-making applications with the Beta version.  Silverlight 2 introduces the .NET framework to Silverlight along with the DLR and a rich control set.  The majority of applications being built today are using Silverlight 2.  With all of the advances in Silverlight 2 combined with the go-live license and the short timeframe until the full release, building anything in Silverlight 1 today seems wasteful to me.

Silverlight and WPF

Silverlight is a limited subset of WPF, both of which use XAML as their markup language.  This allows for several things, such as the shortening of the learning curve when moving from one to the other.  It also means that typically, if you develop an application using Silverlight, it can normally be ported to run as a WPF desktop application with minimal effort.  Moving the other direction however, from WPF to Silverlight, can be more troublesome due to the greatly increased .NET framework and control set in WPF.

Silverlight and ASP.NET

ASP.NET and Silverlight overlap in some of their capabilities, but Silverlight is not a straight replacement for ASP.NET.  Since code written for ASP.NET executes on the server it has access to the entire .NET framework, can use connection strings to access databases and can use any number of third-party or internally generated class libraries.

Even on the client, there are times when you may want to stick with ASP.NET over Silverlight.  If you have parts of your application that are nothing more than data-entry forms, the standard ASP.NET controls are very well suited to that kind of work.

Silverlight and Flash

Everyone has heard talk of Silverlight being Microsoft's "Flash Killer".  Personally, I do not think that is the intention or even goal of Microsoft when it comes to Silverlight.  I believe that they (MS) saw a way to add more interactive capabilities to web applications in a way that is friendly to .NET programmers.  I see the emerging RIA space as being plenty large enough for Flash/Flex, Silverlight and even a few others.  Yes, they both do many of the same things and yes, Flash may do some of them better currently.  But give Silverlight some time to mature and you will see much more feature parity between the two.

Silverlight and AJAX

Built into the Silverlight plugin and SDK are numerous features that perform the same functionality as that provided by AJAX, but with the need to write complex JavaScript.  Silverlight has very rich support for reading data of numerous types from web services to RSS feeds to static XML files.  It also has methods to facilitate the deserialization of XML or JSON into strongly types objects for simple manipulation and binding.

Finally

Hopefully this post has helped answer some of your questions as to what Silverlight is, what it isn't and where it fits into the web space.  If you have more questions or want to correct me on something I may have mistyped, please leave comments here or use the forums at http://silverlight.net.

#1 Oke on 4.13.2009 at 8:23 AM

i feel lucky can read this usefull news. now i find something what i want to know..

thank you for this great informations..

#2 Bisnis Online on 5.14.2009 at 2:04 AM

Information is truly extraordinary, I am very interested to read this post

#3 ricky on 5.22.2009 at 7:14 PM

So true! It's great to be able to learn from your blogs and laugh while doing so! Thanks for the tips. Hope I didn't need them!

#4 NoumanUllah Siddiqui on 5.27.2009 at 6:26 PM

This is great valuable information about Silverlight.

#5 Bayi on 6.04.2009 at 3:13 AM

Your post has brighten me to understand what Silverlight is. Thank you very much.....

#6 All About Babies on 6.04.2009 at 3:15 AM

Thank you for this useful post, I very like the way you explain about Silverlight.

#7 Custom Essay on 6.10.2009 at 1:38 AM

I see the emerging RIA space as being plenty large enough for Flash/Flex, Silverlight and even a few others.

#8 Thesis Service on 6.10.2009 at 1:40 AM

Thanks a lot for sharing such an valuable stuff.

#9 Research Paper Help on 6.10.2009 at 1:40 AM

It also has methods to facilitate the deserialization of XML or JSON into strongly types objects for simple manipulation and binding.

#10 Term Papers on 6.10.2009 at 1:41 AM

Even on the client, there are times when you may want to stick with ASP.NET over Silverlight.

#11 Dissertation on 6.10.2009 at 1:42 AM

I like this website I feel that this site could be very useful & informative.

#12 mark on 6.17.2009 at 7:09 PM

good article, thank you..

#13 Rusli Zainal Sang Visioner on 6.20.2009 at 6:53 PM

Nice post! very interesting topic. keep on posting.

#14 Stop Dreaming Start Action on 6.20.2009 at 6:53 PM

Thanks for the info. Very helpful !

#15 Sulumits Retsambew on 6.23.2009 at 7:37 AM

wow, i never knew that before, thanks for informing.

#16 Dissertation Topics on 6.24.2009 at 2:57 AM

i consider this site to be very use full specially for students, in short i like this site.

#17 Economy Dissertation on 6.24.2009 at 2:58 AM

Great Article, informative and interesting.

#18 Research Paper Rubric Tips on 6.24.2009 at 3:00 AM

Fantastic Article and Site, i like this informative site ever.

#19 Learn how to play craps games on 6.26.2009 at 7:01 AM

Unless my computer will stop working if I do not install Silverlight, then MS can go to the "hot spot". As far as I am concerned, most of their "updates" are just another form of "phone home" spyware. I do NOT trust MS as far as I "can throw them" because they do NOT trust loyal PAYING customers and insist on you "passing" a security check every time you want to update. This and other actions by MS are just going to drive people to other OS's.

#20 Rusli Zainal Sang Visioner on 7.02.2009 at 12:17 AM

Very nice silverlight

i hope its Good

#21 George Micah on 7.04.2009 at 3:13 AM

thanks for this nice info, this explanation is quit complete for me.

Leave a Comment