You are hereBlogs / Vaibhav's blog / WinRT, not yet another abstraction over Win32!

WinRT, not yet another abstraction over Win32!

By Vaibhav - Posted on 16 September 2012

Not just an abstraction over Win32 API.

WinRT or Windows Runtime is a set of API's that sits on top of Windows 8 kernel and is the base API for building "Metro or Modern style apps". WinRT in Windows 8 is similar to Win32 API in older versions of windows operating system. As of yet, WinRT doesn't completely replace Win32 API but internally can call and use Win32 API and subsets of .Net. WinRT supports development in C++, Managed Languages and in Javascript as well.

The new developer stack for windows looks like

















The traditional stack remains more or less the same – you can create native Windows (forms) apps with C++ and Win32. Or you can use .NET (now in a new 4.5 flavor) with WinForms or XAML as front-end and C#/VB/C++ as the language. The enhacements lies in Metro Style apps. We can create Metro style apps using the combination of WinRT supported languages(i.e. C++, Managed languages and Javascript).

Any class compiled to target WinRT is called WinRT Component. A WinRT Component written in one language can talk to another WinRT component written in any supported language. This magical intercommunication between WinRT components happens through Language Projections. 


Language Projections is the another word for Bindings in WinRT through which Windows Runtime APIs are exposed in each language. As show in the image, Language projection utilises Metadata exposed by each WinRT component.

Post new comment

The content of this field is kept private and will not be shown publicly. If you have a Gravatar account, used to display your avatar.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <p> <span> <div> <h1> <h2> <h3> <h4> <h5> <h6> <img> <map> <area> <hr><br> <br /> <ul> <ol> <li> <dl> <dt> <dd> <table> <tr> <td> <em> <b> <u> <i> <strong><font> <del> <ins> <sub> <sup> <quote> <blockquote> <pre> <address> <code> <cite> <embed> <object> <param> <strike> <caption>
  • You can enable syntax highlighting of source code with the following tags: <c>, <cpp>, <csharp>, <drupal5>, <drupal6>, <java>, <javascript>, <mysql>, <php>, <python>, <ruby>, <sql>, <tsql>, <vbnet>, <xml>. Beside the tag style "<foo>" it is also possible to use "[foo]". PHP source code can also be enclosed in <?php ... ?> or <% ... %>.
  • Lines and paragraphs break automatically.

More information about formatting options