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

  • Saad_Salman - Tuesday, September 13, 2011 - link

    I'm amazed how much MS is bragging about the so called 'windows tablet interface' with html5 (css & js) apps like it's never been done before. Dashboard? Remember something? Apple did it with Webkit application framework, with which, developers have been creating apps since OSX Tiger. Tiles are almost identical to dashboard with different ui.
    http://en.wikipedia.org/wiki/Dashboard_(software)
  • Bees - Tuesday, September 13, 2011 - link

    How do we think it is going to handle multiple monitors? Will only one get the Metro treatment while the rest show the traditional desktop?
  • tayb - Tuesday, September 13, 2011 - link

    Metro is for portable devices. Slates, Tablets, etc. This will not be on your gaming rig.

    The freaking demo was done on a 11.1" tablet for crying out loud.

    Not only that but if you don't like Metro no one, NO ONE, will force you to use it. And who in their right mind would use it on their desktop??? Haven't you seen the other screen shots of Windows 8? It's still a desktop OS. Metro is essentially an "add on" for mobile.
  • Rand - Tuesday, September 13, 2011 - link

    It's helpful to read the article, and to read the tons of stuff MS has put up and all the live blogs from BUILD.
    You HAVE to use Metro, you have no choice. Microsoft WILL force you to use it, it is Windows. On all platforms you have Metro and you will be using it.
    Metro is not as addon, it is the core of Windows.

    Any time you launch an application or configure system settings, or bootup or anything of the like you will be using Metro. It cannot be disabled. There are no alternatives.

    This will be on your gaming system, and your servers, and everything else. MS has made this abundantly clear. It's been stated in a dozen articles.
    You cannot disable Metro.
  • rs2 - Tuesday, September 13, 2011 - link

    "Microsoft WILL force you to use it, it is Windows."

    You seem to have confused Microsoft with Apple, and Windows with OSX. If anything, Microsoft has a fairly good track record of allow users to enable "Classic" features if they prefer them.
  • Rand - Tuesday, September 13, 2011 - link

    No confusion, I just read what MS has said. Unless their lying, you cannot enable a classic experience.
  • fausto412 - Tuesday, September 13, 2011 - link

    is it really time for a new windows?

    Microsoft has lost its mind.
  • Malih - Tuesday, September 13, 2011 - link

    But I know I'll be buying a Windows 8 tablet PC,

    or maybe if they can implement something like Kinect so you can operate the touch UI with non-touchscreen monitor, and do it from reasonable distance with good accuracy.
  • trip1ex - Tuesday, September 13, 2011 - link

     MS is just creating the same tablets as they did before but with a tablet gui.  And I think that is a mistake just as it was before.

    The end result is a big tablet with terrible battery life and heat issues at a high price.  No one wants that as a tablet. 

    And no one wants the tablet form factor to use traditional desktop apps because then you might as well stick with the laptop.

    And Win8 on ARM?  Not seeing how they can pull that off and have decent battery life and performance still.   I will  believe it when I see it.  

    The beauty of the tablets i have used is the lightweight.  The long battery life.  The snappy performance for reading, email, video, and light weight tasks.  The fact it gets out of the way.    It is not just the form factor.  

     Win8 on ARM will be a mirage because Win8 will not truly work well on ARM
  • UMADBRO - Tuesday, September 13, 2011 - link

    Once again, because you seem to have super powers and already know something about an unfinished product on unfinished hardware, you seem to be able to peer into the future and know everything there is to know about this. Bravo. Thank you for telling the masses your wonderful insight, instead of keeping it to yourself!

Log in

Don't have an account? Sign up now