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

  • A5 - Tuesday, September 13, 2011 - link

    If you think the only difference between Win95 and Win7 is the UI and "convenience functionality" (and I love how make this sound like a bad thing), then you are sorely mistaken.
  • Exodite - Wednesday, September 14, 2011 - link

    For the end user there's no discernible differences aside from those noted.

    Sure, we've gotten higher versions of APIs such as DirectX or whatever but in the end that matters very little.
  • UMADBRO - Tuesday, September 13, 2011 - link

    Have fun with that. Let us all know what happens when you try and even get that outdated, abandoned POS online, much less being able to do anything even remotely useful, other then playing old, shitty games.
  • Exodite - Wednesday, September 14, 2011 - link

    I used my '92 Amiga as my primary computer until '04, at which point I built my first Wintel machine - mainly due to gaming.

    The Amiga still works, were connected to the Internet with a 10Mbit PCMCIA Ethernet adapter, had an excellent browser for the time, and still offers a better desktop experience than any version of Windows.

    I realize most people familiar with the platform only ever used A500's with Kickstart 1.2 or 1.3 and never actually saw the OS due to using it as gaming console. That's unfortunate, as AmigaOS 3.x remains unmatched in performance, simplicity, power and convenience when put up against any modern desktop OS.
  • UMADBRO - Wednesday, September 14, 2011 - link

    That must have been interesting. Ill admit, I also use older stuff for specific things, like my old P4 box running Win98SE for DOS and older Windows games. But I also realize that its usefulness is limited, at best. Eventually we all need to move on. Anyway, sorry for the hostility. The overall tone in these messages when I was reading last night just annoyed me to no end. The majority of people have made up their mind before even trying things out. I cant stand close minded people like that.
  • Exodite - Wednesday, September 14, 2011 - link

    No offense taken, I do see your point.

    For me personally I suppose the disappointment is two-fold;

    The distinct lack of technical innovation, which I consider current iterations of Windows to be in desperate need of, and the hodge-podge UI design.

    The latter will hopefully improve until release at least.

    I'm personally not a fan of metro in any way, though for WP7 devices I have no problem acknowledging that it's a very functional design with it's own distinctive style.

    Unfortunately I can't see an upside to its introduction on the desktop. Someone likened it to a 'consoleization' of the desktop and I can only think about how how apt that statement is.

    Still, final judgment must be reserved for the release version.
  • Booster - Tuesday, September 13, 2011 - link

    Looks like another 9 years on Windows 7 to me. There's no way I'm ever installing this crap.
  • Booster - Tuesday, September 13, 2011 - link

    I mean, how can you even multitask on this ridiculous garbage? I normally have like 10 browser windows open, 4-5 word and excel docs, plus a handful of Explorer windows. And I need to switch between all this really fast, copy and paste and so on. What am I supposed to do with this?!
  • dagamer34 - Tuesday, September 13, 2011 - link

    Stick to the normal desktop?
  • ph0tek - Wednesday, September 14, 2011 - link

    LOL. Exactly. Some of these people commenting are so thick i's truly amazing.

Log in

Don't have an account? Sign up now