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

  • UMADBRO - Wednesday, September 14, 2011 - link

    Nah, they are fairly arrogant over there too. If you want to stay firmly rooted in the past, then dont upgrade. Otherwise, adapt and move on. Simple as that.
  • UMADBRO - Tuesday, September 13, 2011 - link

    Good luck. All I hear on here is the gnashing of teeth, because ,*gasp*, people might have to try something new. I can already read the reports of people collectively croaking, still clutching their copies of Win 3.11 in their cold, dead hands.

    Seriously, give it a goddamn shot before you automatically decide you hate it, you close minded asshats.
  • Exodite - Wednesday, September 14, 2011 - link

    What's your angle?

    Serious question, as I find it inconceivable that a mere user - let alone someone that's actually never used the discussed software - are so adamant about defending it to the point of absurdity and personal attacks.

    Needless to say I have a theory myself but I'd rather hear it from you.
  • UMADBRO - Wednesday, September 14, 2011 - link

    I just dont get why people wont even give something new a chance before they absolutely hate it. Its just retarded, IMO. Give it a chance. If you dont like it afterwards, then thats fine. At least you tried it.

    Personally, I have the dev version downloaded and am going to keep an open mind when I give it a shot. If I dont like it afterwards, I wont hesitate to let people know why I dont, with an actual reason why, instead of going around blaring "Herp its stupid derp I dont like it" and not having ever booted it up one time.
  • UMADBRO - Wednesday, September 14, 2011 - link

    And please, pray tell your "theory" as Im not really defending it as much as letting people know what I think of them for being narrow minded.
  • frozentundra123456 - Tuesday, September 13, 2011 - link

    I have to say I hate this interface too. Why does microsoft seen to want to make everything look like a smart phone (or a cash register at McDonalds!!).

    This touch interface might be OK for a laptop or tablet, but I cant imagine sitting at your desk and using it on a separate monitor. It would be like doing a continuous series of sit-ups as you move closer to the monitor to touch it and back away to read it, not to mention finger prints everywhere.

    Unless you can easily turn off this interface and go back to a conventional desktop, this would be a deal breaker for me as to buying a computer with this OS.

  • TEAMSWITCHER - Tuesday, September 13, 2011 - link

    There has been much mobile OS development in the last 5 years with iOS, Android, WebOS, MeeGo, Symbian, RIM, etc. A lot of design ideas for touch screen OS's have already been copyrighted, trademarked, or patented. Microsoft bought a scrappy little company called Danger that made the Metro UI, and it may be the only thing they can do now that wouldn't infringe on the IP of established players.

    Microsoft has a big problem here. Desktop power users won't use the Metro GUI because it would just slow them down. And new Windows 8 Tablet users (running ARM processors) can't run applications from the existing Windows universe. Microsoft is trying to leverage the broad appeal of Windows in the mobile market, but this is pretty weak leverage.

    Finally, that touch interface looked like a complete failure. How many failed swipes to open/close a fly-out menu can a human being endure? Be careful Microsoft, this is starting to look a lot like Vista!
  • cjs150 - Wednesday, September 14, 2011 - link

    "It would be like doing a continuous series of sit-ups as you move closer to the monitor to touch it and back away to read "

    You have got it. MS enters personal fitness market!
  • Belard - Tuesday, September 13, 2011 - link

    I hope MS already knows how to handle this...

    The mouse wheel should fly the tiles left to right. Sure the wheel is pointed in the wrong direction - but its not hard to figure out and besides - a HOR. mouse wheel won't work. Even Logitech's wheels that have side to side scrolling just sucks.

    Anyone with a rotating monitor (or manual rotate your whole monitor) can try this. Go to an image site that has normal up and down scrolling. Make your browser long up and down.... then use your wheel to move the whole page of photos (pretend they are tiles).

    Or turn your head to the side.
  • Sladeofdark - Tuesday, September 13, 2011 - link

    the interface looks hideous just like phone 7 does. i just dont get it.. its like they HAVE to mess up every other OS. i can see how the metro tile theme could be good for old people , or my older brother whom is not tech savy. But it should not be the MAIN way of using the OS. I hope it doesnt make it like Aero really didnt "make it" into vista.. but Vista was still garbage. gosh.. this love hate back and forth thing is bad for my heart lol.

Log in

Don't have an account? Sign up now