Since Microsoft unveiled details of Windows 8 to the world during the //BUILD conference in September 2011, there has been some confusion about where and how the new WinRT API sits in relation to .NET and Win32.
Part of this confusion is due to the oversimplified, ambiguous and misleading platform architecture diagram unveiled during the conference (click image for un-obscured version):
In this diagram, it appears as though there is no more .NET & CLR, it looks like Silverlight doesn’t exist and, worse, makes it look as though WinRT is an entirely new Windows subsystem that sits alongside Win32!
I spent a lot of my career at Microsoft building and presenting architectural diagrams to explain the relationships between the various technologies I worked on and other current and new technologies. But I don’t think I ever created something as confusing, misleading and ambiguous as the diagram above!
A tip for whoever designed the above diagram: If you’re going to unveil your brand new OS & app platform architecture to your developer community, make sure your architecture diagram is clear and accurate.
Win32 & .NET are NOT “going away”!
During and since the //BUILD conference I’ve had MANY conversations (and overheard many more) with people expressing concern that .NET and Win32 are “going away”! I’ve seen people state that WinRT doesn’t utilize Win32 API’s and that it “resides directly on top of the kernel just like the Win32 API”!! Nothing could be further from the truth!
Several other people have attempted to provide a more accurate diagram with varying levels of success. Fellow ex-Microsoftie Doug Seven posted his re-rendering of the Win8 architecture, and MVP & author Shawn Wildermuth recently posted his perspective while explaining how Silverlight sits in this architecture. Famed Microsoft-watcher Mary Jo Foley also has a post discussing the angst caused by the poorly designed Windows 8 architecture diagram above.
While these newer attempts to describe the new architecture are increasingly accurate, they don’t deal with the issue of the relationship between WinRT and Win32. Nor do they clarify the position of .NET & CLR.
To clarify reality:
Because of the continuing confusion I thought I would offer-up what I believe to be a pretty accurate diagram summarizing the Windows 8 platform architecture:
Hopefully, this new architecture diagram should make things a lot clearer. This new diagram is by no means perfect, but I believe it accurately expresses the major components of the existing and the new OS components. Let me know if you think it needs any further changes in the comments below.