Developing with Silverlight
Silverlight applications are built very differently than other web pages and most web apps. An application’s graphical user interface (GUI) is defined using Extensible Application Markup Language (XAML), and application control logic can be written in one of several .NET languages (C#, VB.NET, J#, etc). Additionally, an XML document can be loaded into the DOM and manipulated in an AJAX-like fashion.
Silverlight is essentially a subset of the .NET application framework, so development tools that work for .NET will work for Silverlight, including Eclipse and Microsoft Visual Studio.
Silverlight applications are built in fully featured programming languages, and almost any DLL can be compiled into a web-delivered Silverlight application. So the possibilities for application features are, truly, limitless.
Silverlight provides easy, built-in support for a number of a features that are especially useful for a rich, interactive, browser-based application.
IIS Smooth Streaming provides support for high definition streaming media.
PivotViewer is powerful set of tools for working with large data sets, providing interactive visualization and manipulation features.
SketchFlow, part of Blend for Visual Studio 2013, is an iterative wireframing and storyboarding tool for rapid application prototyping.
Silverlight Deep Zoom provides unbelievably smooth, rapid, and infinitely scalable deep zoom and visual exploration.
Pixel Shader provides a wide range of built ins, configurable visual effects such as drop shadows and blurring. It also allows you to write your own effects.
Support for a wide variety of audio and video formats, including third-party codecs.
Skinning and Styling
The Silverlight browser plugin is supported in several browsers available on Mac OS X and Windows. Chrome for Mac no longer supports Silverlight (though Chrome on Windows does). Opera support is unofficial for version 1 of Silverlight, and official for version 2+. Current desktop versions of Internet Explorer, Firefox, and Safari all support Silverlight.
Support for Silverlight on Linux was provided through the Moonlight project, but that project has stopped active development and is no longer supported. Another Linux adaptation, Pipelight, is now available. Even with this, Silverlight support on Linux should be considered very unreliable.
Silverlight can be used to build mobile apps for Windows Phones and Windows Mobile devices. However, Internet Explorer for Windows Phone does not support Silverlight. Silverlight is also not available for any browsers on the Android or iOS platforms.
Alternatives to Microsoft Silverlight
It is important to realize that Silverlight is not the only way to bring media-rich, interactive applications into web browsers. There are many other development options available, with varying degrees of cross-browser support.
- Adobe Flash (well supported in desktop browsers, but not on iOS)
- Java (well supported in most environments, but updates and versioning issues tend to annoy users)
- HTML5, CSS4, and JS (almost universally supported, though the standards haven’t officially hardened)
Microsoft Silverlight Hosting
Server-side Silverlight applications must be run on a Windows server, with support for ASP (Active Sever Pages). Most shared and discount web hosting plans (and most higher-quality managed hosting and VPS plans also) run Linux, not Windows, so you will need to specifically look for Windows-based web hosting to run your Silverlight application.
Client-side resources are static assets and can be delivered from any server, including a Content Delivery Network.
Silverlight Frequently Asked Questions
What are some good reasons to use Silverlight?
If you use Silverlight as an application to deliver your rich media content, it is quite scalable. You can create your media in a wide variety of scripting languages using a wide variety of development tools. Also, there are plugins available for nearly every desktop and laptop web browser, making it very compatible for a majority of your potential users.
Are there any reasons not to use Silverlight?
The biggest reason to not use Silverlight for delivery of your multimedia applications is the emergence and widespread use of HTML5. Because of the almost universal acceptance of HTML5 as a multimedia delivery application, programs like Silverlight and its competitors (Adobe programs like Flash and Shockwave, Moonlight, etc.) are now largely deemed to be obsolete as a method of media delivery.
What are the alternatives to Silverlight?
The most commonly compared alternative to Silverlight is Adobe Shockwave, which is somewhat different from Silverlight in that its purpose is to provide animation and interactivity to web pages. However, both of those platforms have been overshadowed by the adoption of HTML5 programming, which makes rich media files 100% compatible with platforms on desktops, handheld mobile devices and tablets. Other alternatives to Silverlight include Unity Web Player – an alternative for Mac OS – and Moonlight – a Linux-based open source alternative. However, using HTML 5 is probably the safest bet for delivery across all operating systems and as internet consumption habits change to mobile platforms.
Do I have to know how to program to use Silverlight?
Do I need to be concerned about installation?
Your concerns about installation of Microsoft Silverlight are completely dependent on what server you are trying to host the software upon. Of course, if you are hosting your website or application that you want to add Silverlight to on a server powering a Linux OS, there will be some major compatibility issues. The biggest challenge you will face here is related to the need to add two new file extensions as known extensions on your server. To do that, MIME types for those file extensions need to be added to your web server. If you don’t do that – your Apache server will not recognize Silverlight content the right way. According to documentation provided by Microsoft, Silverlight is compatible with Microsoft Server 2012 and 2008 versions and was also compatible with server 2003, also, before its official end of life in 2015. Bottom line: if you use a Microsoft-based server, you have a lot less to be concerned about than if you use any other server for your hosting.
Is there any reason not to use a one-click installation wizard?
No. Assuming you are using a Microsoft server and a web browser on the server to access Silverlight, it is still available as a free download from the Microsoft website. With the widespread availability and acceptance of HTML5 as a rich media serving standard, you probably need to have a very deliberate reason to install Silverlight as your media delivery application. However, if you decide to use it, download it the same way you would download it as a player for your browser. It might turn into two or three clicks instead of a one-click install, but there shouldn’t be any problems or reasons not to use it.
Are there any additional specific hosting recommendations?
If you are going to use Silverlight, it is recommended to use a Windows server for your hosting. Often, that can lead to higher costs than an Apache or “LAMP” stack. However, going with a Windows hosting environment will certainly streamline the issues you will face trying to install it and deploy Silverlight for media delivery than going with a LAMP stack.
What does self-hosted mean? I don’t have to run a server myself, do I?
Self-hosted websites do not require YOU to personally own a server and manage it to host your site. Instead, self-hosted simply means that hosting is not provided directly by the development team that created Silverlight. In order to use a self-hosted multimedia delivery system like Silverlight, you will need to contract a hosting provider before building your website.
Can I host the Silverlight multimedia script on a shared hosting plan?
To answer this question, yes you can. However, many hosting providers are cautious to provide the root access to the server to shared hosting customers. In order to make Silverlight work properly on a shared hosting environment, you will need to make sure the file extensions mentioned above are compatible with your server. Check with your hosting provider to determine if you can get the type of server access you need to properly configure Silverlight before you get into a commitment that limits your website functionality. If you can’t access the root files of your server, the alternative is for you to use Silverlight Streaming, a free hosting service powered by Microsoft that allows you to serve up to 10GB of content.
Do I need managed hosting in order to use Silverlight as my multimedia script?
The answer to this question depends on your answer to the question “how much responsibility are you willing to accept for the maintenance of your website?” The more complex your site becomes with widgets, plugins, multiple blogs and theme changes, the greater your need will be for professionally managed website hosting. Shared hosting often comes with some managed services included. If you have a dedicated hosting solution, however, managed services are likely required as part of your agreement. To be fair to Silverlight, this is the case with any self-hosted multimedia script – not just Silverlight.
About Adam Michael Wood
Adam specializes in developer documentation and tutorials. In addition to his writing here, he has authored engineering guides and other long-form technical manuals. Outside of work, Adam composes and performs liturgical music. He lives with his wife and children in California.