Another highly speculated subject in the past few months refers to the future of Silverlight in the context of Windows 8’s release. The reality is that there’s genuine concern out there, as there are significant investments in SL, especially for Line-of-Business applications. The reminder of this post focuses on the this particular scenario: moving forward in a Windows 8 world with SL-based LOB apps.
Now that we could get Windows 8 in our hands, some things are becoming more clear. First of all, Silverlight continues to be a first class citizen in Windows 8 desktop apps. The desktop version of IE 10 fully supports Silverlight and your apps will run the normal way. More than that, Microsoft continues to make significant efforts with Silverlight (version 5 has just reached the Release Candidate milestone). So, from this point of view, your SL investment is more than safe.
The story changes when it comes to Metro apps. Turns out that the Metro version of IE 10 does not currently support plug-ins (no SL, no Flash). So you won’t be able to run your SL app in Metro mode. At first sight, this sounds like a bummer. After a more detailed analysis, things start to make some sense.
First of all, I’m not sure you really want to run a SL app as-is, in the Metro browser. Mostly because you designed your SL app from the ground up to work in a keyboard-mouse environment. Which is great in a desktop environment. But sucks in a touch environment. Sucks to the point of being close to unusable.
Closely related to the above is productivity. I’m not sure the tablet environment will ever be extensively used for productivity apps. I just don’t buy into that. In a LOB app, there is nothing yet to replace the good old keyboard and the mouse. You don’t believe me, use only a tablet for a couple of months for productivity apps. It just gets on your nerves. So, most probably, you will want to provide just a portion of the user experience in a Metro app. Which means that you need to write code anyway.
Another point to take is that there are patters like MVVM that make o good work of making changes in the View less painful.
Finally, you must take into consideration that Windows 8 Metro apps have native support for XAML. The XAML syntax is virtually unchanged, so in theory you can port your SL XAML to Metro XAML. Again, I don’t see much value in it (due to usability issues in a touch environment), but it’s possible.
In a nutshell, the story goes like this:
- You will run your SL LOB apps unchanged in Windows 8 in desktop mode
- Should you need to provide a Metro version of your SL app, you will probably have to redesign anyway (because of design and productivity issues)
- Patterns like MVVM and native XAML support in Windows 8 Metro apps can make the implementation of the Metro version of your SL app less painful