Question - What is the difference between WPF and Silverlight?
Answer -
Silverlight and Windows Presentation Foundation (WPF) are two different products from Microsoft, but have lot of overlap. Silverlight is a subset of WPF in terms of features and functionality. Silverlight is a Microsoft technology, competing with Adobe's Flash, and is meant for developing rich browser based internet applications. WPF is a Microsoft technology meant for developing enhanced graphics applications for the desktop platform. In addition, WPF applications can be hosted on web browsers which offer rich graphics features for web applications. Web Browser Applications (WBA) developed on the WPF technology uses XAML to host user interfaces for browser applications. XAML stands for eXtended Application Markup Language, which is a new declarative programming model from Microsoft. XAML files are hosted as discrete files in the Web server, but are downloaded to the browsers and converted to a user interface by the .NET runtime in the client browsers. WPF runs on the .NET runtime, and developers can take advantage of the rich .NET Framework and WPF libraries to build really cool Windows applications. WPF supports 3-D graphics, complex animations, hardware acceleration etc. Silverlight uses a particular implementation of a XAML parser, with that parser being part of the Silverlight core installation. In some cases, the parsing behavior differs from the parsing behavior in Windows Presentation Foundation (WPF), which also has a particular implementation. In table format: Silverlight WPF Definition Silverlight is Microsoft’s latest development platform for building next-generation Web client applications. Windows Presentation Foundation (WPF) is Microsoft’s latest development platform for building next-generation Windows client applications. Subset of Silverlight is generally considered to be a subset of WPF, and is a XAML-based technology that runs within the sandbox of a browser plug-in. WPF is generally considered to be a subset of .NET Framework, and is a XAML based technology. GUI Silverlight will be used in the development of Rich Internet Applications (RIA) for web client users. WPF will be used in the development of Rich Windows Graphical User Interfaces (GUI) for Windows client users. Support Cross OS, cross browser, cross device. Windows only. Software Required Silverlight is the add-on mechanism available for most browsers; in order to run Silverlight applications at client machines, we need to install Silverlight software on the client machine once. WPF, on the other hand, does not support any plug-in mechanism; instead, we need to install a completed WPF client application in order to use the WPF application at the client place. Framework support Silverlight has a very small, its own rich base class library to make the plug-in as small as possible. It is highly optimized for size, and is a small subset of the full .NET Framework, to be embedded within an application. WPF, on the other hand, has full access to the main .NET Framework and all its associated assemblies. Deployment Silverlight applications are hosted within a web server and a web page. To minimize client download size, Silverlight uses a XAP archive. A XAP archive is a zip-compressed archive of the Silverlight application, plus a manifest file describing the content. Visual Studio automatically generates the XAP archive when using the Silverlight project template. WPF applications can be deployed as standalone applications, ClickOnce applications, or XAML browser applications.