I would like to clarify some points about WinRT and where .NET fits in relation to it. The following is a set of statements I believe to be true... correct me where I am wrong:
- WinRT is a seperate COM exposed native Object-Orientated API written in C++ that IS NOT itself built on top of the old C based Win32: it is totally seperate.
- WinRT at least now can ONLY be used for the Metro part of Windows 8 and that Win32 CANNOT be used for Metro apps. An application in Win8 will either be desktop or Metro and an application cannot draw on both APIs. It's one or the other.
- Traditional desktop/server .NET (built on Win32) will continue on as per normal, but there is a NEW cut down .NET Framework (like the Compact Framework/client profile or Silverlight) built on WinRT for use in the Metro world. This is how C# and VB.NET will run in the WinRT world: it is NOT the same .NET framework installed for the desktop/server. UI is done using a XAML derivative.
- Metro apps can also be built using native C++, again using XAML for UI. What about C++/CLI? What about other less popular .NET languages out there?
- Metro apps can also be built using HTML5/CSS3/Javascript. I take it the Metro system has a new rendering and execution engine built to run these apps: my understanding is that these cannot be executed in a browser like IE so they are apps, not web pages.
- The Metro IE will not run plugins, so there is no Silverlight in the Metro world.
- ARM based devices will ONLY run Win8 in Metro mode.