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

  • rs2 - Tuesday, September 13, 2011 - link

    "On a final note about system requirements, while Microsoft isn’t talking about specific versions of Windows 8 at this time, they’ve made it clear that x86 will live on for at least one more generation in order to fulfill their desire to have Windows 8 run on everything Windows 7 ran on."

    Hang on a second. Did you seriously just imply that Windows (or any other major OS) is going to drop support for x86? Or that there was *ever* any doubt that Windows 8 would not support x86? I think you've gone at least a little bit crazy.

    x86 is here to stay, for at least the forseeable future (which I think gets us to around Windows 12). No software company is going to be willing to cede the entire x86 market to their competitors or ditch x86 as a platform just because phones and tablets tend to run ARM processors. Doing either of those things makes absolutely no sense at all.
  • Rand - Tuesday, September 13, 2011 - link

    I think he means X86-32, MS hasn't made any statements implying that X86 uarch as a whole is going anywhere.
  • Ryan Smith - Wednesday, September 14, 2011 - link

    Correct. x86 as opposed to x64 (since that's the nomenclature MS uses). Windows 8 will have 32bit x86 editions; MS won't transition to solely 64bit x64 for another generation.
  • rs2 - Wednesday, September 14, 2011 - link

    Then the nomenclature used by MS is incorrect. x86-64 (or apparently, x64 is MS-speak) is fully x86 compatible, even down to support for 16-bit "real mode". As such x86 will always live on, even if Windows does eventually require an x86-64 based processor.
  • loll123 - Wednesday, September 14, 2011 - link

    Yes, but the issue is whether Windows will support processors that only have the x86-32 part of the instruction set.
  • Lugaidster - Wednesday, September 14, 2011 - link

    Do you need to submit an app to the store in order to install a metro application or are metro applications still downloadable like regular apps?
  • Ryan Smith - Wednesday, September 14, 2011 - link

    I can't completely answer this but I will do as much as I can.

    ARM: The Store is the only way to get applications

    x86: Applications can still be installed normally

    With that said I can't completely answer where Metro fits in, because that specific question was never asked or a suitable answer given. Certainly Metro applications using MS's DRM scheme will need to go through the Store to make the licensing click. But Metro apps without DRM...?
  • Lugaidster - Wednesday, September 14, 2011 - link

    I was thinking of something like business apps or apps that would never be approved because of content (the major reason jailbreaking exist on an iPad is because of the latter). It would be great if you could sideload metro apps...
  • Stas - Wednesday, September 14, 2011 - link

    When I used Win98, I was stoked when I first heard about Windows XP. Absolutely loved it, after I started using it.
    Windows Vista also made me anxious about the wait. Unfortunately, I wasn't as pleased; however, still satisfied.
    Windows 7 is by far the best OS I ever used. That is exactly how I thought it would turn out when I decided to download the RC version.
    Today though, I'm looking at this simplified experience for ADD kids, and I'm rather disappointed. Huge buttons, lack of menus and options, and I bet they killed off kb shortcuts :/ I would expect this from Apple; but MS... son, I'm disappoint *face palm*
    I will still try it, whenever RC is available but I'm not holding my breath for something useful, efficient, and flexible. I'm sure it will be a great tablet OS though. Now, just to figure out why in the world I would need a tablet with powerful desktop, and a high-end smart phone...
  • loll123 - Wednesday, September 14, 2011 - link

    I have ADD and I started my computing career on MS-DOS when I was 3 years old. So don't go around and make comments like that please.

Log in

Don't have an account? Sign up now