What is the difference between WPF and Silverlight?


What is the difference between WPF and Silverlight?

This article focuses on the difference between Silverlight and WPF technologies. Silverlight and Windows Presentation Foundation (WPF) both allow you to develop rich user experience applications based on XAML and the .NET Framework. For a period of time, Silverlight was called WPF/E, with the ‘E’ standing for ‘everywhere’. But there are some differences between the two technologies. Lets try to find out.

1. WPF is meant for developing rich applications for desktop platform while Silverlight is meant for developing rich browser based internet applications.

2. WPF is essentially the replacement to Winforms while Silverlight was introduced to compete with Adobe Flash.

3. Silverlight is a sub set of WPF in terms of features and functionality. WPF is based on the desktop CLR which is the full version of the CLR. Silverlight is based on a much smaller and more compact CLR which provides a great experience but does not have the full breadth of CLR features but only CoreCLR features.

4. You can use Silverlight applications regardless of the operating system you use, while WPF applications are restricted to later versions of the Windows operating system. For a WPF browser application, you need the .NET Framework to be installed in the client location while for Silverlight, you need only the plug-in. So in other words, WPF browser applications are OS dependent while Silverlight is not. A Silverlight plug-in can run in OSs other than Windows while we all know the .NET Framework only runs in Windows.

5. WPF supports 3 types of routed events (direct, bubbling, and tunneling). Silverlight supports direct and bubbling only.