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

  • ilkhan - Wednesday, September 14, 2011 - link

    I think MS is going to have even more of a problem getting people off of 7 and onto 8 than they did getting people off XP and onto Vista, for the same reason.
    From what I can see here, visually and productively 8 is going to be even worse than Vista.
  • MrBungle123 - Wednesday, September 14, 2011 - link

    I agree... If this is windows 8, I'll be buying 10 or 15 copies of Windows 7 OEMs before the Win 8 launch pushes them off newegg.
  • nofumble62 - Thursday, September 15, 2011 - link

    why bother?
  • thrasher32 - Thursday, September 15, 2011 - link

    I don't want my office PC desktop to look like a windows phone/tablet display. If this is Windows 8 then I'll stick with 7, and I'm usually the guy that buys the new version of Windows on the day it's released.
  • Saidas - Thursday, September 15, 2011 - link

    From what I understand, you will be able to disable Metro. I plan on doing so for my desktop and lappy and using it for my tablet and Smartphone. Perfect.
  • Rand - Thursday, September 15, 2011 - link

    As the article said, and Microsoft said at Build. You cannot disable Metro. It is there from tablets on up to servers.
    Any application launches and system configuration, and bootup etc always goes through Metro.
  • Moricon - Thursday, September 15, 2011 - link

    To sum it up, this is just a huge pile of FAIL!!!

    I see a massive backlash from the Tech world.

    Give us improvements to the OS, Give us better performance, Give us new useful features but for GODS SAKE remove Metro from desktop use!

    Its fine for tablets ( MEH to be fair) but it is completely pointless for dektop use for anyone who auctually does any work on the PC.

    As for Windows Live integration, Yeah lets see how happy people are having to create a Live ID just to add on another user acount!

    FAIL FAIL FAIL FAIL FAIL FAIL FAIL FAIL FAIL"!"!!"!"

    I build and repair Windows PC's for a living, have done so for years, and I can honestly say this is all wrong!

    F*****G Social Application Integration into the OS ( FFS Only teenagers and losers want this)
    Stupid gestures to navigate the OS
    Tile based huge icons are crap ( What are we all running VTECH Kit designed for kids now)
    XBOX Live Integration FFS who the blast gives a shit except XBOX Users! People who work are NOT cared about XBOX Integration.

    I do hope they allow metro to be switched off!
  • Wellsoul2 - Thursday, September 15, 2011 - link

    I really like the idea of using this OS with my HTPC though since it will make it
    easier to use all my programs with a remote control. The article didn't address
    that but the future may also be using your computer hooked to a TV alot of the time.
    For that purpose this is a good beginning.

    Like Media Center it's clunky but functional for a remote control.

    Wish they had a switch so you could change to high res Win7 desktop for mouse/keybd though.
  • Taurus229 - Thursday, September 15, 2011 - link

    It is very sad that Microsoft is building a new OS for tablets and netbooks and totally ignoring the desktop power user. My thought at this point is that win 7 is the desktop os, and win 8 will be the mobile os. Microsoft has made it's bed, and will have to lie in it. Just too bad!
  • Booster - Thursday, September 15, 2011 - link

    MS can't be that stupid, honestly. Even Windows 95 has better multitasking than Metro. They're abandoning the whole Windows concept where you can have multiple windows open at the same time and switch between them. Metro on the other hand lets you do only one thing at a time.

    Just through how many screens of dumba$ tiles do I have to scroll to copy a text for citation from a web page and insert it into a word document, for example?

    Metro is destined to fail epically. It's better if MS realized this sooner than later, gave those responsible the boot and start working on a major overhaul. This isn't going to fly, people, don't you see it? Even Apple wouldn't allow itself to cripple it's users so foolishly. Hell, people resisted Vista like there was no tomorrow, just how exactly MS plans on shoving this disfunctional POS down their throats once users realize they can't do what they need to do with Metro, like at all???

Log in

Don't have an account? Sign up now