Finally everything has been revealed and I wanted to summarize what it means for all of us. We speculated whether WPF or Silverlight is dead in Windows 8 etc. and it turns out nothing is dead. Here is architecture for Windows 8:
As you can see what’s new in Windows 8 is WinRT platform that covers native Windows 8 Metro style Apps. Desktop Apps on the right are essentially what we have today: WinForms, WPF and Silverlight. These continue to work.
New WinRT architecture seems to me is heavily based on Windows Phone 7 run-time. My reasoning for thinking this is that during keynote they said that Windows Phone 7 apps will run under WinRT unchanged. I suspected something like this since to run on low powered processors heavy optimization was needed and that optimization work was already done for Windows Phone 7 platform so leveraging that code in big Windows 8 that now must run on low powered processors makes sense.
They also showed that some simple Silverlight apps can be recompiled with minor changes to run under WinRT. Of course, we are yet to see how complex Silverlight code will be ported to WinRT, but as with everything new and different I expect there will be some gotchas.
I installed Windows 8 on one of our netbooks with touch screen and Windows 8 at this point is working great. I think once this is released it will be great operating system that spans tables and desktops. The power is in ability to use touch-based interface on tablets but when mouse and keyboard are needed you just plug that tablet into dock and big screen and you have your full blown Windows experience.
How this compares to iPad? I think very favorably if tablets that are of iPad quality, speed and price running Windows 8 show up. Lot of it is in the hardware corner.
For us developers, well we just got another new platform. We have WinForms, WPF, Silverlight and now WinRT. While WinRT is “Silverlight based” I think it must be treated as completely new platform which is all about touch and you have to write code that fits that environment.
I still see WinForms as best lowest common denominator, meaning if you want app that run on everything from Windows XP to Windows 8 you are best served using WinForms. If you are developing to target Windows 8 then you must simply use WinRT unless you want to target desktop explicitly in which case I still might recommend WinForms.
We will indeed provide components for new WinRT platform in addition to what we already have and are eager to start digging deeper into the platform.
Let me know what you think.