The reports of my death are greatly exaggerated – Mark Twain
The internet is currently full of rumors and reports that Microsoft no longer will develop Silverlight after version 5 is deployed. This could not be a bigger exaggeration.
Silverlight consists of a couple of different components;
- XAML for describing UI
- C# for writing the code
- A framework with built classes and controls to speed up development
- A runtime to execute the executable
- Development tools
One of these will go away “A runtime to execute the executable” and one will be updated “A framework with … “.
A new runtime
The Silverlight runtime will go away. Microsoft doesn’t support plugins in their Windows 8 Metro-style browser and here the rumors have some validity. But what is in the runtime? There is a memory model, an execution environment, a type system, threading model and a lot of things needed to get your application to run. In Silverlight you seldom interact directly with this runtime, you interact with the libraries on top of it.
But there is a big difference between being killed and being replaced. In Windows 8 they Silverlight model has been embraced and pull down on top of the kernel itself. In Windows 8 the runtime is called the “WinRT”. It will execute your C# code and XAML but native to the platform instead of in a virtual machine.
Does this change stuff? Yes, will you have to care? Barely. If you don’t count the fact that your apps will be able to run on XBox, Devices and PC’s.
Here you as a developer will be mostly affected. A few things will change. A couple of namespaces are moved to better reflect the native model of WinRT, the type system has change a little bit and your reflection code will have to be updated (minor update, adding a method call to all typeof and gettype). For the most part, all the classes, methods and other artifacts will be the same as the ones that you use for Silverlight / WP7 development today.
The big difference here isn’t any changes to existing code, it’s that Silverlight applications now get access to so much more functionality that it was restricted from before. Silverlight becomes native.
C# and XAML
… will stay the same (with the obvious version upgrades). You will not have to create COM-objects or call any Win32 api’s. From C#; the programming model of WinRT is pretty much the same as that of the CLR / DLR.
So yes, Silverlight in its current form could probably be considered dead. But is the technology dead? I’d argue it isn’t. It is evolving into a native model, it’s going to be the engine for applications on the next version of Windows, both on desktop and other devices.
So even if the runtime dies, it’s essence and tools are still there.