Silverlight Has Had a Bumpy Road. Will It Have a Smooth Transition to WinRT?
Microsoft had a great vision for Silverlight, a framework and a set of tools that would dominate the web development landscape, but it fell short of that. There are rumors there won’t be any Silverlight 6. If that happens, how easy is for the Silverlight developer to transition to WinRT? Some numbers show that it is pretty easy.
Microsoft envisioned Silverlight back in 2005-2006 as a RIA framework and a set of tools that would conquer the web and beat Flash at its own game. But Microsoft has had mixed results with Silverlight. On the positive side, Silverlight was implemented in the latest versions of IE from IE6 to IE9, in Firefox, Google Chrome, Safari/MacOS/Intel, and some versions of Silverlight are supported by Safari/MacOS/PowerPC, Safari/Windows, SeaMonkey, and there were some plans for Opera. The framework was ported to Firefox/Linux as the Moonlight project through Mono team’s efforts. On the mobile, Silverlight is the major development tool for Windows Phone 7 and Nokia had plans to port it to Symbian, which won’t come true since Nokia has moved to WP 7 in the meantime. Silverlight has also moved to the desktop supporting the out-of-the-browser mode, and allowing the creation of RIA apps that run independent of the browser. All that looks very promising, but has Silverlight really succeeded?
Following are a number of major reasons, without pretending to cover all of them. One of the first ones was the fact that Silverlight was not clearly defined, and there was some overlap with WPF. Silverlight was even called Windows Presentation Foundation/Everywhere (WPF/E) in the beginning, and it was not very clear which one to use, Silverlight or WPF? Then it was the mobile explosion: iOS, Android, Symbian, and many other Linux-based OSes. It is obvious that supporting Silverlight on all these platforms will require a huge effort, not to mention incompatibility issues. Then it was HTML5 which is slowly becoming the main web platform while Silverlight remains with a Windows client position. All that forced Microsoft to reconsider Silverlight’s role, and they have done it generating more confusion among developers. For example, Microsoft announced Silverlight 5 RC before BUILD 2011, but they decided to drop support for all plug-ins, including Silverlight, in IE10 Metro coming with Windows 8.
Lately there has been rumor that Silverlight 5, which is supposed to be released to production soon, will be the last version developed by Microsoft and there are questions if there will be any service packs for it. If that is so, the technology’s future is compromised, having a small role on Windows’s desktop from which Microsoft is moving away with Metro. Where will Silverlight developers be left? Will they be able to use their skills to work on WinRT? Will Microsoft create a smooth transition path to WinRT for them?
Tim Greenfield, a Silverlight Insider, has compared the WinRT API with Silverlight’s, to see how similar or different they are and how easy would be for a developer to make the transition to Microsoft’s newer technology. He concluded that Silverlight has 1,582 types in common with WinRT, with only 607 types not found in Windows 8’s core API. That means 72% of Silverlight types are present in WinRT. Of course, WinRT has also many new types (4396) not present in Silverlight, dealing with new features. Greenfield also counted all the members of those 1,582 types (properties, method, events), resulting 10,375 common members, and there are 651 Silverlight-only ones. That is 94% overlap between common Silverlight members and WinRT. Greenfield concludes his study:
- WinRT includes a ton of new types. Some of these are certainly for new features such as the marketplace, accelerometer support, …etc. Time to start learning!
- Approximately 1/4 of the types in Silverlight are not present in WinRT. Some of these are no longer relevant like the types associated with the DOM bridge or Out of Browser support.
- When comparing just the shared types, SL5 starts to look very close to an actual subset of WinRT. This is good news for Silverlight developers because it means most of your existing code should easily port.
It looks like it is not that hard for Silverlight developers to transition to WinRT. Most of their skills can be reused writing applications for Microsoft’s upcoming platform, and the new Metro interface which, by the way, is based on HTML5. We are still looking for a clear position from Microsoft. Will they continue develop Silverlight? Will there be no Silverlight 6? Will they make the transition from Silverlight to WinRT somewhat smoother?
os or browser?
Why has such confusing situation is Microsoft has no plan to their OS. They planed to use WPF for windows GUI API, but failed. Half reason is because WPF is .Net based, not OS based. They wanted the technology can be reused, so Silverlight is here. Apple had successfully change GUI API to Cocoa and created Cocoa Touch for iOS. Microsoft also wants to correct their mistake, so WinRT is here. Unfortunately, WinRT is designed for Metro style only(means no desktop version).
So Microsoft is continuing their mistake. One after another. Luckily, we are not in 1990s, we have more choices. Hope Microsoft can release this.
Re: os or browser?
Re: os or browser?
Silverlight is a great cut-down version of .NET. There's many reasons which make it suitable for certain tasks. It'll play a part over the next few years while WinRT becomes more popular. We have to use it instead of WinRT for its USB serial support.
Checkout www.obdsystems.com we'll soon have an app running -
Tom Gilb & Kai Gilb Jan 26, 2015