WinRT(Windows Runtime)

WinRT is the new Windows Runtime (Windows 8 or above required) that expose Operating System functionality in an object oriented fashion. WinRT is Microsoft's 2011 programming model that forms the backbone of the new Metro-style apps (also known as Immersive) in their new Windows 8 operating system. WinRT supports development in C++ (usually with Component Extensions, C++/CX) and the managed languages C# and VB.NET, as well as JavaScript. Programs can be written using Windows Runtime that will run on both the Intel and ARM editions of Windows 8 without modification. WinRT is essentially a COM-based API, although relying on an enhanced COM. Because of its COM-like basis, WinRT allows relatively easy interfacing from multiple languages, just as COM does, but it's essentially an unmanaged, native API. It's Microsoft's implementation of the XAML-based UI system. Unlike WPF which was exposed only to the .NET world and Silverlight which was only exposed to the browser, this new implementation is available to C++ developers, HTML/Javascript developers and also .NET developers.


WinRT is a new set of APIs that have the following properties:
  • It implements the new Metro look.
  • Has a simple UI programming model for Windows developers (You do not need to learn Win32, what an HDC, WndProc or LPARAM is).
  • It exposes the WPF/Silverlight XAML UI model to developers.
  • The APIs are all designed to be asynchronous.
  • It is a sandboxed API, designed for creating self-contained, AppStore-ready applications. You wont get everything you want to create for example Backup Software or Hard Disk Partitioning software.
  • The API definitions is exposed in the ECMA 335 metadata format (the same one that .NET uses, you can find those as ".winmd" files).
WinRT wraps both the new UI system as well as old Win32 APIs and it happens that this implementation is based on top of COM.

ref:

Asynchronous Programming in C++ Using PPL - http://msdn.microsoft.com/en-us/magazine/hh781007.aspx


WinRT Overview - http://winrt.codeplex.com/


Parallel Patterns Library (PPL) - http://msdn.microsoft.com/en-us/library/dd492418.aspx