There are three different, but equal, development approaches for Microsoft Windows 8
The Microsoft BUILD conference conversations continue -- the September conference was the first of what’s sure to be many revealing moments for Windows 8 and the developer’s role in making the new technology successful. One of the key messages for developers who will be building software for Windows 8 is that there are three different, but equal, development approaches: .NET, C++, and HTML5.
By now you might have seen the diagram from BUILD that shows the green, WinRT-side of Windows 8, as well as the blue Desktop or Classic mode. This diagram has sparked a ton of debate and disagreement. I won’t recap it all here or produce the diagram because there isn’t that much room in my editorial, but my favorite version of this discussion comes from Doug Seven, formerly of Microsoft and now executive vice president at Telerik. Seven’s blog post “A bad picture is worth a thousand long discussions,” (http://tinyurl.com/63tqhuc) includes an improved version of the diagram that clearly shows all three development approaches for WinRT.
Suffice it to say that on the blue, Desktop Apps side of the diagram, everything is more or less the same as Windows 7. You can take new and existing applications and run them normally. It’s on the green, Metro style Apps side of the diagram that things get a lot more interesting.
For .NET developers, Windows 8 ships with the .NET 4.5 Framework. This framework is available on both the Desktop and WinRT sides of Windows 8. On the WinRT side, the framework behaves somewhat differently, removing namespaces that are now handled by WinRT, including direct file I/O, networking, etc. There are replacements for that functionality in the WinRT libraries, and arguably they’re faster, but they’re also different and will take time to learn. WinRT also exerts a higher level of security on your code, because there are specific restrictions on how your application communicates with resources internally and externally to your PC.
Until now, C++ developers were limited to managed mode to have access to XAML. WinRT now brings XAML to C++ developers. I think the potential of C++ developers building Windows apps has increased dramatically with Windows 8, but only time will tell.
Overall, Windows 8 levels the development playing field for .NET, C++, and HTML5 developers. I’m sure as Windows 8 approaches there will be more announcements and additional features that will change our perception of how development can be done on Windows 8. As the old saying goes, we’re living in exciting times.