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

  • Belard - Tuesday, September 13, 2011 - link

    Hopefully Metro Apps will be smart enough to work in a windowed environment... otherwise, they might as well drop the "Windows" name. If thats the case - then it becomes a non issue.

    For tablet and phone devices, a full screen is needed because of the smaller sub 11" screens. Fine.

    Remember, Win8 has a normal desktop. Its always there. And WebOS showed good ways of multi-tasking on a tablet interface. Seems that MS is still working on that.
  • UMADBRO - Wednesday, September 14, 2011 - link

    Cool story, bro!
  • ludikraut - Tuesday, September 13, 2011 - link

    I can see the applicability of the Metro UI for business environments where you want to tightly control what users are able to do - collections departments, order processors, bank tellers, etc. The Metro UI is inherently more intuitive than a locked down desktop. Many home users will potentially benefit from this as well, but the challenge will be in how easy it will be to configure the Metro UI for the average end user. As for power users, such as myself, I can appreciate the Metro UI on my tablet, but there is no way that I want anything to do with it on my main desktop machine unless Win8 can be configured to run Metro on one screen and the desktop on another.
  • HMTK - Tuesday, September 13, 2011 - link

    My god, there are a lot of idiots commenting here. The Metro UI is indeed NOT suited for a pc. That's why you can easily change to the classic desktop. I would be surprised if Microsoft wouldn't let you choose a default UI or that you can push whatever setting with Group Policy in a business environment.

    Quit whining, you'll have the desktop you know and love. You can even have both in the same machine. Metro when you want to use your tablet as a tablet and the classic UI when you use a keyboard and mouse. Instead of a glorified surfboard like an iPad you'll have that AND a laptop.
  • Rand - Tuesday, September 13, 2011 - link

    The article specifically says you cannot disable Metro, it is always there. If you want to launch an application you use Metro. If you're booting, you boot to Metro.
    If you want to change system settings you use Metro.
    It doesn't matter if you're on a server platform or a tablet, you use Metro. You cannot choose a default UI. It's Metro on all platforms, regardless of what interface device you use.

    The "idiots" are the ones who read the article and listen to what MS has very clearly said. You cannot just use the desktop, and the start menu is gone permanently.

    The desktop is effectively a legacy UI, there for backwards compatibility.
    You will not just be using the desktop on any platform, or any interface.
  • Ryan Smith - Tuesday, September 13, 2011 - link

    To be clear, the Desktop and the taskbar are fully functional for desktop applications. The start menu is indeed gone, and trying to use quick search to launch something requires going back to Metro, but that's all that has been lost for desktop applications. You can still use the Desktop almost exclusively by putting program icons on the desktop or pinning them to the taskbar.

    I'm not sure it's going to be practical to do that without the Start Menu, but as it stands that's what's available.
  • Exodite - Tuesday, September 13, 2011 - link

    To me that's equivalent of removing the desktop mode entirely, as filling my desktop or taskbar with random icons is pretty much the definition of inefficiency.

    Personal opinion obviously but that solution sounds like, well, iOS.
  • Exodite - Tuesday, September 13, 2011 - link

    Then again I'm one of those people who hated the removal of the old start menu in W7, as well as the lack of a W2K theme that didn't look like crap.
  • UMADBRO - Tuesday, September 13, 2011 - link

    Then go install Windows 2000 and put your blinders on, you old fart.
  • Exodite - Wednesday, September 14, 2011 - link

    *sigh* With that attitude you should probably be hanging out on Engadget or something.

Log in

Don't have an account? Sign up now