Silverlight 4: The Web Gets Closer to the Desktop
Running mainly in web browsers (Firefox, IE, Safari), Silverlight runs smoothly on Mac, Windows and even Linux OS (thanks to Moonlight).
Even though is thought to be a "subset of WPF", the fourth version of Silverlight is more than that, thanks to features such as: "Offline DRM", "UI control", "run desktop program" which offer developers the best out of the two world: browser and desktop.
Considered to be mostly a tool for developing business applications, Silverlight offers advantages for both customers and staff.
The "Printing" functionality extends its capabilities to "virtual print view", while the new customizable controls, such as editing, "in-line" controls and images offer a personalized experience.
Even more, the CLR allows now to run the same code on Silverlight and desktop without changing anything, and the "Managed Extensibility Framework" permits creating rich composite apps.
Silverlight wants to make life easier for developers and offers them: built in support for apps, editable controls and layouts, drag-and-drop and copy-and-paste support (databinding), and styles and resources built in Expression Blend for a smart looking app.
For rich applications, Silverlight brings about the possibility to capture video and audio content thanks to the webcam and microphone, support for Google Chrome, support for multi-touch functionalities and multicast networking.
Although the new features really make a big difference between older versions and version 4, the most important updates have been made in the offline direction, extending the functionalities of Silverlight 4 outside the browser, into the desktop.
So, apart from the features mentioned in the first paragraph, the new version of Silverlight allows developers to control UI elements, such as size, chrome, size position, to run desktop apps, for example the Microsoft Office suite, and to read/write files for the MyDocuments/Pictures/Videos/Music folder.
So, from Microsoft's point of view, it seems that the future of applications is not going to be exclusively desktop or web, but we are going to experience an even closer merge between the two worlds.
Both web and desktop apps have their advantages and disadvantages, and the challenge is to offer an environment capable to capture the best parts from both worlds for building complete and rich applications.