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

  • Ryan Smith - Tuesday, September 13, 2011 - link

    "How will this upset the AV vendors, and how does it affect corporate users who can currently only use MSE if they have up to 10 machines?"

    Realistically I have to think AV vendors will be upset. You can easily disable Defender and replace it with other AV software, but this will hurt consumer sales. For businesses it's murkier. I can't imagine MS will turn off Defender if you have too many employees, but products like Symmantec's Endpoint Protection do more than just AV scanning and will probably remain desirable.

    "Also, wouldn't it be a simple fix to allow the mouse-wheel to scroll left and right in the tiles display? Down goes left and up goes right?"

    The mouse wheel currently works that way. The problem is that it's on a per-app basis, it isn't implemented in a universal fashion. Also, it's very slow to scroll that way with the wheel.
  • Kakureru - Tuesday, September 13, 2011 - link

    the beginning of the end for useable open platform computing..
    TPM sucked ass when it was thought up and sucks ass now as implemented.
    Sure its greeeeat to prevent a few pieces of malware but corporate abuse is more
    of a danger than the viruses its sought to prevent.
  • A5 - Tuesday, September 13, 2011 - link

    If you'd like cite your claim of TPM being used for "corporate abuse", that'd be great.
  • CSMR - Tuesday, September 13, 2011 - link

    Could someone explain: why is the start menu so small in the desktop?
    The links there are: Start, Search, Share, Devices, Settings
    No recently used programs, no pinned programs, no all programs? No libraries?
    How is accessing programs going to work on Win8?
  • UMADBRO - Tuesday, September 13, 2011 - link

    Why not try our the developer release and find out?
  • bupkus - Tuesday, September 13, 2011 - link

    I'm hopeful that it will run on my HP Touchpad.
  • rasueno - Tuesday, September 13, 2011 - link

    does it play crysis?
  • Ryan Smith - Tuesday, September 13, 2011 - link

    I'm wishing I brought a copy of Crysis with me. I would have installed it on the Samsung tablet given the opportunity.
  • Exodite - Tuesday, September 13, 2011 - link

    So in the end Windows 8 is Windows 7 with an UI I hate?

    No thanks, I'll pass.

    Over the last weeks we've seen some minor utility functionality previewed and I've tried my very best to keep fingers crossed that the many technical problems related to the OS will be addressed as well.

    Not so it seems.

    Essentially, from '95 onward the only real difference between releases have been a constantly changing UI and tacked-on convenience functionality. And the changing UI isn't a good thing, that's one area where consistency is paramount.

    Personally I find what I've seen of the new UI to be a complete clusterfuck and the fact that we seem to get further and further away from the simplicity, power and elegance - let alone the intuitive interface - of a 20 year old OS (namely AmigaOS 3.x) is deeply troubling.

    I don't want to advocate thrashing the entire code base and rewriting everything from the ground up but it seems more and more likely that's what it's going to take.

    Oh well, my '92 Amiga still works.
  • Belard - Tuesday, September 13, 2011 - link

    Hey... I used to run AmigaOS 3.0 on my Amiga 1000. :P

    I'm still not a lover of MS... but MS I see what MS is doing... it does make sense and they want to cater to the typical computer user, which is still a moron -er I mean, novice. I see teenager kids nowadays who grew up with computers that don't actually know how to USE a computer. Other than games, opening a browser to use facebook, email and IM and look at porn, that's about it.

    For those in the work place, its about running a few apps (Word, email, quickbooks). So for many people, the desktop is either a clean place they rarely see or mess with hundreds of icons all over the desktop.

    With the launcher and controls off to the side - which is a good place for these stupid 16x9 screens, it may means faster access to our apps and data on the computer.

    I have 9 Apps open right now (Photoshop, Word, excel, Opera, Notepad++ (awesome - a text editor with tabs that remembers everything), various explorer windows. I can't see the icons, widgets or folders on the desktop itself. If its not on the taskbar - I'm not seeing it. So maybe, Metro/Win8 will work in the end.

    Windows 8 is obviously about keeping control of the computer market... as iPad and MacOS are selling like mad - even Walmart proudly sells iPad2s - the marketing is more so than anything I've seen at a Walmart, oh well.

    The removal of the F8 DOS is a step in the right direction... remember AmigaOS 2.0 and above from 1990 is still more advance than Windows7 in some ways.

    I own an Android phone, which its GUI works like iOS. I run a WindowsPhone7 Launcher to replace the Android one... why? Its easier to use, its faster, it tells me info... I spent almost a year trying to find an app, my alarm, camera etc with my Samsung phone... I know where they are, but I maybe on the wrong screen or an icon gets moves. Whatever. The WP7 launcher works great for mobile devices... and an ACTUAL WP7 works even better.

    I generally don't NOT like or trust Microsoft. In the end - it was Commodore that screwed us and killed the Amiga, not apple, not MS. I still have my Amigas... along with my Win7PC, ThinkPads and iPad. Whatever works.

    If MS wants to improve upon what they have... a major change is needed.
    Dos > Win3.0 / 3.1 > Win95 / Win98 > WinXP / WinXP > Win7 (weakest jump).

    Hmmmm.... I think Microsoft may actually OUT-Macintosh Apple... that would be fun.

    Windows 7 is the best MS has down for their desktop OS, finally. Its still a challenge for most humans. Win8's Metro interface is a GOOD move towards more elegane and simplicity over the OLD desktop. But MS *MUST* do a good job in making Win8 run properly with a mouse and keyboard. I'm fine with fingerprints on my iPad... Pros are NOT going to be putting their hands on their 24~30" screens to use PHOTOSHOP!!

    PS: notice there was still a DOS Prompt: Icon in the Win8 preview.

Log in

Don't have an account? Sign up now