There has been a lot of confusion engendered by this infamous architecture drawing (slides courtesy of Microsoft):
If you zoom in some you should see something like this:
When you look at project properties you have different profiles that can be used as targets to your program. In Silverlight you have a similar thing:
The best analogy for Metro (at least from the XAML/C# and VB side) is actually Silverlight. A subset of the namespaces we are used to will be available with a strict emphasis on asynchronous unless otherwise stated. For those familiar with WP7 (which is the closest namespace-wise) there have also been some renaming of namespaces (see msdn for more info). The C/C++ side has a thin projection (which theoretically should not be faster than the other projections but I have my doubts here). The better diagram:
The green bits represent the WinRT and the orange part represents the projection. Every object in the WinRT has the IInspectable and IUnknown interfaces (sound familiar?). The way they are pushed up is a bit different.
The key information that’s been added is the Windows Metadata. This portion is what allows the rich intellisense in Visual Studio 11. Now the C++ projection (as far as I understand) does all the binding (ok, projection) stuff at compile time. For the C#/VB apps the story is a bit different. Some of the projection/binding happens at compile time and some happens at runtime. We are being told, however, that this is negligible (hence my doubts).
Mehul and I chatted a bit about the WinRT on our recap video at the //BUILD/ conference. Notice that when I talk about the WinRT I specifically say that it is not .NET. Hopefully the discussion we had helped clear this up! This does not mean that we cannot write .NET code on top of the WinRT. This is done via the projection mechanism discussed.
I plan to do similar posts (I’ve been chewing my arm off trying to talk about this stuff!) on the WinRT especially when it comes with the namespaces and classes and what exactly has been exposed to the developers.
I would love your take on the matter! Also, I have been known to make mistakes. Let me know if you find any glaring ones so I can correct them!
As always, if there are any comments and/or questions, feel free to get a hold of me!
Want The Best Reporting Tool Ever?
Get The No-Compromise Reporting Tool for WinForms, ASP.NET, Silverlight and WPF! - Native integration with DevExpress WinForms and ASP.NET Controls, unequalled design-time productivity, industrial-grade features. Try a fully-functional version of DXperience for free now: http://www.devexpress.com/Downloads/NET/
Let us know what you think of our Reporting Suite by rating it in the VS Gallery!