Well the Build conference has come and gone. The dust has started to settle and folks have been doing a lot of reflecting on what all the Windows 8 announcements really mean. We learned quite a bit from Build, but I don’t think we know the whole story yet.
I don’t know what pre-Build camp I fell into. I felt WPF would not be satisfactory unless it got a major performance overhall, which Microsoft has already publically told us it would not get. I also didn’t feel Silverlight was robust or performant enough for a general, full featured desktop framework. Nothing less than an overhall the size WPF needed, and wouldn’t get, would make this the framework of the future. Personally I became tired and apathetic about the fates of WPF/Silverlight. I was ready for something new…and like they always say, “Be careful what you wish for.”
After the announcements of WinRT and this new “Metro Style Xaml UI”, which are nothing short of engineering masterpieces, it was explained that, “Yes you can still run your applications of today on the Windows 8 desktop.” One of the keynote speakers even showed a screenshot of Adobe Photoshop, stressing that these types of UI are not metro, but still important. So this is what options Microsoft laid out for us:
- “Fast and fluid” UI framework, enhanced by Direct2D and D3D11, that is restricted to WinRT and subsets of Win32. Deployment is restricted to AppStore and enterprise. These applications will not run on the traditional desktop.
- “Slow and clunky” UI frameworks such as WPF or Silverlight. Deployment options are side loading.
So you got your “fast and fluid” XAML framework you always wanted. What’s the beef?
If the classic desktop is still important (e.g. the Photoshop example), what’s the forward momentum? The WinRT style app simply doesn’t cover all the ground of what is possible on a Windows OS, nor does it cover all the deployment needs. Are we to just get minor tweaks on WPF and Silverlight with a new version number and we as Microsoft customers are happy? Yes, your favorite framework will run on Windows 8. Yes, you are getting new versions of all of them. But unless Microsoft lets us run these “Metro XAML UI” apps on the desktop, it could be a sign that everything running under it might be on the chopping block. Murdered by neglect. In the near future, maybe a couple years, you will have to make a new application, and it might not be the right fit for a “metro style” application. Will you be stuck with slow-and-clunky?
Give some constructive criticism!
It’s all just complaining if you don’t provide an alternative, right?
One solution would to allow classic desktop applications to use the new XAML framework in WinRT. This means getting all the advantages of the new Direct2D powered XAML, WinRT and the full Win32 plus side loading.
I have built a proof-of-concept to load WinRT applications on the desktop. But if it’s not a supported scenario, it might as well be a hack. Source code here (requires VS11 Ultimate).
Give me a conspiracy theory. I like those!
One thought is that Microsoft has this feature planned. But if they did announce it, they’d cannibalize their efforts with Silverlight 5 and .NET 4.5. Not to mention they’d probably have a riot given how big of a reaction developers had to just the thought of their platforms being last week’s flavor of the month. Microsoft doesn’t really want us to have 4 XAML frameworks to worry about and fiddle with. They want one. By not having “Metro XAML UI” on the desktop, they are just prolonging pain and guiding us to make the wrong investments. If this conspiracy is wrong, then this signals the beginning of the end of the classic desktop and everything that runs inside it.
In short – I think we don’t have the full picture on Windows 8.