So its been announced, Silverlight 5 was given a first look yesterday and it appears that it is getting richer and richer. Silverlight 5 is to be more complete, a more capable development platform, and it should be a faster one too, providing hardware acceleration of various features.
Silverlight offers a niche for building streaming media applications, and this area will be strengthened by including hardware accelerated H.264 playback, “TrickPlay” support to allow fast-forward playback with pitch-corrected audio, and the ability to disable the screensaver during playback. These are features that really set Silverlight at the forefront of media streaming. In addition, Silverlight has built a nice niche as an OOB (out of the browser) line of business application solution. This too has been strengthening, increasing the “trusted” application options allowing Silverlight to access platform specific functions and features (such as leveraging USB devices or barcode readers).
Alas though I have already read people wondering the future of Silverlight, which is simply mad. Many are already asking why Silverlight can be allowed to access the OS to drive certain devices, since this will make that particular application written in Silverlight only available to run on a Windows OS. And if you do that, why not use WPF…
Well the answers are simple, and people asking these questions I fear do not understand the whole point of the .NET family of products, which Silverlight is now apart of.
Silverlight is WPF?
At the moment, if you want to write a rich interface for the Windows OS that leverages the OS itself, you need to write this in WPF. But, let’s say you want to take advantage of the way in which Silverlight can be used, OOB, the Silverlight architecture for how this gets deployed to users (across a LAN or WAN via HTTP) and how you provide quick and easy to administer updates to these users (again via HTTP)…Then you want to deliver your application through Silverlight and not WPF.
By increasing the Silverlight 5 capabilities in a trusted environment Microsoft is giving developers another option. Many applications don’t need the complete .NET framework installing on the client machine. Many only interact with small portions of the desktop, so why not expand Silverlight’s capabilities to include these, and therefore provide the developer with more options?
Recent trends have seen many “applications” delivered via an intranet, written using ASP.NET. My own company delivers most applications in this way, and thats simply because they are so much easier to administer and provide updates for. However, there are real restrictions working like this, especially when it comes to user experience, network connectivity, server power and many more. Silverlight provides another solution, a way in which we deliver applications (just like in ASP.NET) but with all the rich environment of a desktop application. Because of this, you can see why Silverlight is starting to encroach more and more on WPF’s desktop position.
Taking this further, WPF and Silverlight are so very similar. Both leverage XAML, both use pure .NET for managed code, both offers a very rich UI experience. In many ways, Silverlight is simply a web enabled “cross platform” version of WPF. I therefore see Silverlight incorporating more and more WPF functions, effectively they getting close and closer together.
I don’t believe one will replace the other though. Silverlight will be used more and more for LOB applications; however, applications that require greater use of the operating system, driving hardware such as EPOS terminals etc will still remain something for WPF.
Lost Cross Platform?
Many are also arguing that because Silverlight 5 will incorporate more WPF type features, it can no longer be seen as a cross platform solution. I think this is daft thinking. Sure, certain features will become restricted to just Windows, but the majority of needs to be cross-platform and Silverlight’s capabilities at it are still there, all is fine…
Windows Phone 7
Finally, the windows mobile phone…Silverlight will receive more and more focus moving forward on its mobile capabilities, as well it should. I feel Silverlight will be the “cut down” version of WPF that runs across all Microsoft platforms for all types of devices, and that’s exciting to developers, and should be exciting to business too…
Silverlight is a core development platform for Microsoft. It essentially will offer WPF functionality implemented and distributed via the HTTP, while being able to run most features cross-platform and cross multiple device types. Silverlight should be seen as another string to the .NET family bow, simple as that…