Developing For Metro – WinRT: The Metro API

So far we’ve talked about Metro from the end-user perspective where indeed it is a style and a UI. But Metro isn’t a way to display existing Windows application, it’s what results from a new development model for writing applications. Metro, as the user sees it, is the result of the APIs and design guidelines developers follow in creating Metro applications.

With Windows 8 Microsoft will be introducing a new API: Windows RunTime (WinRT). Over the years much has been said about replacing Microsoft’s long-lived Win32 API, with some success. The .Net Framework supersedes Win32 to some extent, but at the end of the day Win32 is still significantly used in one way or another by many developers. WinRT is the API that will replace Win32 for application developers, and is the API developers will need to use to develop for Metro.

WinRT in a nutshell is a combination of the elements needed to make Metro work, along with subsets of features from Win32, COM, .Net, and HTML5/CSS3. As with pure .Net applications, WinRT applications are meant to be architecture agnostic, and ideally Microsoft would like developers writing applications in runtime or interpreted languages such as C#, VB, HTML5/CSS/JavaScript, and even Silverlight. C and C++ will be able to access Metro too, although there’s still some ambiguity about under which conditions those will be architecture agnostic. In any case WinRT – and thereby Metro – will be accessible from virtually every language Microsoft supports today in their Visual Studio IDE. And regardless of the underlying language, all Metro applications will behave like first-class applications.

With all of this talk about WinRT, Microsoft went through great lengths to reiterate that developers will continue to have access to older APIs for new applications and that Windows 8 will run everything that Windows 7 can run. This is both because traditional/desktop styled applications will not be going away any time soon, and because WinRT as it stands is for user-facing applications, not device drivers, services, or other backend code. In fact desktop applications will be supported indefinitely (look at how long support for 16bit Windows applications has continued to last), but Microsoft clearly wants developers developing for Metro whenever possible, and not for the desktop. For a great many applications this makes sense, but I’m not sure anyone really understands what this means for specialty applications like 3dsMax, Adobe Photoshop, and other workhorses that not only have large legacy codebases, but whose usage model doesn’t easily flow with Metro.

 To entice application developers to use WinRT and Metro, Microsoft will be using a carrot and a stick. The carrot will be the Windows Store, the stick is that non-Metro APIs will not be available for ARM. ARM is Metro-only from day one, and the Windows Store will be the enforcer (more on that later). So if developers wish to target both ARM and x86/x64 users, they will need to develop Metro applications.

Developers working with Metro will be using Microsoft Visual Studio 2011, which like Windows 8 is in development and will be the first version of Visual Studio to support Metro. We won’t spend too much time on Visual Studio, but it will provide development facilities for all of the languages Metro supports, including HTML/CSS/JavaScript. For UI programming Microsoft’s Expression Blend 5 will play a big part, as XAML will be the UI markup language for most of the languages excluding HTML5/CSS.

The hard sell for Microsoft will begin tomorrow when the developers arrive. It’s clear that Microsoft has attempted to structure WinRT to be familiar to existing Windows programmers, but developers are just as sheepish (if not more) than end-users when it comes to change. It will also be the beginning of the process where the development community figures out where desktop applications fit in amongst the new Metro order. Even if Microsoft can sell developers on Metro from day one, there’s still a massive army of legacy machines – everything currently running Windows – that need to be factored in.

Mobile Experience, IE10, Live Cloud, Samsung Developer Preview PC The Windows Store
Comments Locked

235 Comments

View All Comments

  • theangryintern - Thursday, September 15, 2011 - link

    "It's proven itself in the phone form factor"

    Yeah, cuz WP7 phones are just flying off the shelves. /sarcasm (in case you couldn't tell)
  • Shadowmaster625 - Wednesday, September 14, 2011 - link

    I like big buttons, I cannot lie. I have big icons I my desktop so as to facilitate remote usage.
  • augiem - Wednesday, September 14, 2011 - link

    Tell them what you think with your wallet. Pull a Vista on them. Do not buy Windows 8. Simple as that. Win 7 will be supported for probably 10 years. I for one am not going to screw productivity by installing this. When MS's revenues fall through the floor, they'll get the message.

    This is NOT the future of computing. As much as we'd all love to have Star Trek's computer where it just does everything for you, that's never going to happen.
  • jvillaro - Thursday, September 15, 2011 - link

    You are as a consumer, in your right to just not buy it or use it. And MS is in their right to offer new things, change things up, take a risk and either fail or succeed.
    Garbage, idiotic, etc are your opinions... which many of us could think of you. That's the way it goes, maybe you could wait till it's released to make a real judgement.
  • Gimfred - Tuesday, September 13, 2011 - link

    Live tiles are 1000x more useful than static windows 3.1 style icons

    Why do the icons have to stay static? Like the look but think it will get in my way or my way will get in its way. If there are animated [informative] icons now, no reason they can't be improved on.
  • taltamir - Thursday, September 15, 2011 - link

    You are confusing windows and linux.
    Windows has near 0 backwards compatibility. If you want to run an app or game that was made for windows 95, 98, or 2k you need to run it in linux under Wine because windows 7 will fail to run it.

    @Metro: I hate it, its horrible. It looks neat on a tablet but how am I supposed to use it with a mouse and keyboard on my desktop or laptop?
  • mlambert890 - Thursday, September 15, 2011 - link

    This post has to either be a joke or you are incredibly out of touch.

    Windows has 0 backwards compat? I run *DOS* apps in Windows 7. WTF are you talking about?

    And if you didnt notice, Windows 7 has "XP compat" mode. A free instance of XP to run in a VM on a free desktop type 2 hypervisor.

    Did you miss the compatibility tab and the "Run as ...." option that goes all the way back to W95?

    Show me the app you can get to run in WINE that someone competent cant get to run under Windows. Maybe you ran into some outlier case, but thats like the guy who smokes 10 packs a day and lives until 90. Idiotic to try to pretend its the rule.

    MSFT has suffered *mightily* for backwards compat unlike Apple and, yes, mighty Linux also. There are *plenty* of stranded apps that require recoding to work with newer libraries and newer kernel revs on Linux.
  • Wraith404 - Thursday, September 15, 2011 - link

    How much time do you spend looking at your desktop? I do actual work, so I see mine about once a week. Live tiles are a gimmick derived from Android widgets, and are pretty much only useful on a fondleslab, and even then the usefulness is limited.
  • damianrobertjones - Tuesday, September 13, 2011 - link

    I'm used to using Windows Media Center so it won't be much of a change for me and as for that Fisher price thing.... People are BUYING ipads so you can see where everything is heading!
  • fcx56 - Tuesday, September 13, 2011 - link

    Exactly, I'm surprised no one has seen this coming. This interface began in 2005 with XP Media Centre Edition and with subsequent updates through Vista and 7, all they had to add were the tiles implemented in WP7 and here we are, a tablet interface to accompany ARM support.

Log in

Don't have an account? Sign up now