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

  • kevith - Friday, September 16, 2011 - link

    Read the review, man
  • augiem - Wednesday, September 14, 2011 - link

    I agree. This is an experiment... and one that is doomed to failure. Designers tend to be people of extremes and always push for "change" simply for change's sake. (Because it makes them look good, as if they're thinking outside the box. Contrast is easy to spot.) This is a knee-jerk reaction to the success of iOS. No power user or even business user will accept this because plain and simply it's a huge speedbump to productivity. iOS was so successful because it was targeted at an audience that was only interested in consumption, and even limited consumption at that. Desktops more often than not NOT used in a consumtive manner. (This of all the people sitting at work typing stuff into spreadsheets and running CSR software). This will not fly. It's an attempt to look "modern" by simplifying things for the unwashed masses, but it ain't gonna work. They're going to have to split windows into yet another branch, this time for consumption devices like tablets and media center PC's. This is a joke (and not a funny one) to any power user. Live titles??? Give me a break. Like I said, it's for consumption boxes. Who needs live titles to do your video editing / word processing / data crunching / etc job?
  • futurepastnow - Tuesday, September 13, 2011 - link

    Are we, as a society, so stupid and juvenile that we need big colorful buttons for everything? When you use this with a mouse and keyboard, not a touch tablet, you're going to feel stupid.

    Look! It's a button that's four inches across! I hope I don't miss it with the mouse cursor! *click* Oh, good, I got it. Boy, those little icons Windows 7 had sure were hard to click on.

    And I am deeply concerned about my ability to turn this Metro s**t all the way off. Microsoft has stated that you won't be able to use Windows 8 without Metro. Folks saying "just turn it off" don't seem to get it- the Start Menu is *gone* in Windows 8 and this garbage has replaced it. Metro is the shell; it can't be turned off, yet. I think it's probable that MS will backtrack off its idiotic stance of forcing Metro on us, but they may not.

    You think people want live icons? Remember the Sidebar? Neither do I. Nobody uses the Dashboard on OSX, either.
  • BioTurboNick - Tuesday, September 13, 2011 - link

    The point is that they aren't just buttons, they are ways to see what is contained within the button or display information. I honestly don't get what's wrong. How often do you keep the start menu open? If everything you do is on the desktop, you'll barely ever see it.
  • UMADBRO - Tuesday, September 13, 2011 - link

    I know I rarely ever open mine. I have all the commonly used programs and links pinned to my taskbar. People are gonna piss and moan no matter what. Just ignore them.
  • futurepastnow - Wednesday, September 14, 2011 - link

    I don't leave the start menu open. That isn't the point. The point is that the start menu is not fullscreen.

    All of this Metro crap is fullscreen and it's so integrated into the OS that it can't all be turned off. It's silly fluff for touchscreens, and why should it cover up everything else I'm doing, every other window I have open, whenever the OS decides it needs to go fullscreen?

    Fullscreen applications are not progress. They are, in fact, anti-progress, and just because Apple is doing it is no excuse. The olny things that should ever be fullscreen are movies and games and sometimes not even them.

    This is not progress.
  • Ratman6161 - Wednesday, September 14, 2011 - link

    As I have said elsewhere, my desktop is always hidden behind the many application windows I have open at any given time. Whatever information the buttons are displaying is irrelevant to me since I will rarely if ever see it.
  • futurepastnow - Wednesday, September 14, 2011 - link

    The big colorful buttons aren't going to be underneath all of your open windows. They're not on the desktop at the bottom. They''re going to be ON TOP OF your open windows any time you do anything that invokes the Metro interface- which will be often.
  • Wraith404 - Thursday, September 15, 2011 - link

    Not if you turn the garbage off. I feel for developers that waste time creating metro applications for anything but tablets. It's going to be hard disabled on 90% of desktops.
  • futurepastnow - Thursday, September 15, 2011 - link

    I'm not sure the average computer mom and pop computer user is going to be proficient enough to turn it off. They're just going to be angry about it, the way they were angry about Vista's aggressive UAC.

    Not good for Microsoft.

Log in

Don't have an account? Sign up now