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

  • DeciusStrabo - Wednesday, September 14, 2011 - link

    Yes, they function as widgets too. But compared to real widgets they are a very poor tool indeed. Limited in size, limited in what they can show. WP7 has the same problem for me: Even simple widgets in Android or Bada or Symbian blow them out of the water. The Calendar Live Tile shows only one appointment!
  • ilkhan - Wednesday, September 14, 2011 - link

    I have 11 different apps pinned to my 7 taskbar, all but one of them have at least 1 window open (several have 3, the closed one is JUST a jumplist launcher). Doing anything to hide that (as an example, requiring a fullscreen IE experience) is incredibly STUPID of microsoft. Long live Vista2.
  • BioTurboNick - Wednesday, September 14, 2011 - link

    Internet Explorer has both a Metro mode and a normal windowed mode.
  • rdamiani - Thursday, September 22, 2011 - link

    What is wrong is:

    - Opening a new program replaces the existing screen with a new one full of live data that will want to refresh

    - Developers, sure in the certain belief that their program is the best in the world, will add tiles full of live data (that needs to be refreshed) that relate to their wonderfulness.

    - The poor state of PC screen resolution - already dumbed down to a long and skinny VGA-class ribbon - won't allow you to have more than a few of these live-data tiles (needing to be refreshed) at a time.

    - Everyone's computer will look different with stuff in all kinds of different places. Which will make tech support way more challenging than it already is.

    Microsoft keeps learning the wrong lessons from the competition. Just because Apple ported springboard to Lion (as an application you don't need to use) doesn't mean that Microsoft needs to put springboard-on-crack front-and-center in Windows 8.
  • UMADBRO - Tuesday, September 13, 2011 - link

    Just give it a damn chance before you hate all over it. I bet you were one of the whiners that complained about the changes that were made to Windows 7, and Vista before it, and XP before that, etc etc. FFS, If everything stayed the same, no one would have a damn reason to upgrade. And their is your other potential solution. Stick with Win 7 if you already hate 8 so much and are unwilling to give it a chance. Problem solved!
  • futurepastnow - Wednesday, September 14, 2011 - link

    I have every intention of trying out the public betas and "giving it a chance," but I'm not going to be passively fed what Microsoft thinks people want. I'm going to make it clear what I want, even if they never read these comments.

    And what I want is to never, ever, ever, see anything that uses Metro on a desktop computer. In the builds so far, it can't be turned off.
  • piiman - Wednesday, September 14, 2011 - link

    "I'm going to make it clear what I want, even if they never read these comments.:

    Then you're just making noise. Go tell MS, don't post it somewhere they will never see it.
  • Wraith404 - Thursday, September 15, 2011 - link

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer
    set the key RPEnabled to 0
  • crispbp04 - Wednesday, September 14, 2011 - link

    It has nothing to do with being stupid or juvenile. It's about understanding the way a NORMAL person uses their computer.

    Yeah, we all get it... you think you're a big technoweenie because you require a high resolution with tiny fonts so you can cram more information per square inch than at least 10 ''normal" users. You like over-complicated menus and 100 different ways to accomplish the same task because it makes you feel special when you can whiz bang all over your operating system while someone is watching. I'm not sure why you're complaining about full screen applications anyway(in post below)... The market already decided where things should be and you're looking at it

    The reality is, you're clueless. You need to change your name to just "past"... since your ideology is stuck there. You resist change, you call progression "garbage". A true power user cares more about performance and usability. We use keyboard shortcuts for nearly everything. When other people see us interact with a windows operating system, they are always blown away. (Hit start key type two letters OMG the right application/doc/email/etc opens).. "how'd you do that!?"... MUST BE MAGIC!? No.. it's called progressing with the operating system. Most people who read this don't even know their start menu can do this. (which is the ONLY sad part of windows, most users still interact with it like it's windows 95)

    If you've used a windows phone 7 you know that metro is BY FAR the best setup for a desktop interface. It's proven itself in the phone form factor and will now become the defacto standard for a tablet. You can quote me on this in 2013. If you're a desktop fanatic I'm absolutely confident that microsoft will get it just right this time around. Quote me on that also.
  • jbaumann - Wednesday, September 14, 2011 - link

    "It's proven itself in the PHONE form factor and will now become the defacto standard for a TABLET."

    quoted for emphasis

    I cannot see how it should be a big improvement for anybody who is working at a desktop PC (i.e. no touchscreen, remember the gorilla arm), with a mouse and a keyboard.

Log in

Don't have an account? Sign up now