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

  • Booster - Tuesday, September 13, 2011 - link

    Exaclty. MS needs to get rid of Julie Larson-Green, the infamous inventor of the wretched ribbon and I suspect this abomination.
  • BioTurboNick - Tuesday, September 13, 2011 - link

    The ribbon is great. I'm sorry that you love trudging through menus to find the things you want.
  • frozentundra123456 - Tuesday, September 13, 2011 - link

    I agree with Booster. I absolutely hate the ribbon in Microsoft Office. It may add a lot of things that menus didnt have, but most of them are worthless. It requires considerably more steps to do simple tasks.

    The ribbon may be OK for someone who uses Office all day, every day, for business tasks. But I use it in a scientific setting, and just want to use the basic commands as quickly and easily as possible. For this kind of use, I really, really hate the ribbon.
  • ph0tek - Wednesday, September 14, 2011 - link

    How did you manage to post that on DOS?

    Anyway... I bet the vast majority of people making the kind of comments as yourself are pretty old. Either that or just stupid. The Ribbon is better. Not debatable. New users of Office all agree it's better and do far better using it, thats a fact.

    On Win 8 you can even customise the ribbon, or make a quick access bar with your own most used ribbon buttons. Instant access. You can get more quicker or efficient than that.
  • cjs150 - Wednesday, September 14, 2011 - link

    No the ribbon is not better. I am a power user of word, our documents often run to 100 pages, with tables of contents, multiple level headings and paragraphs, track changes, charts and tables. When we get board we throw in columns as well.

    Let me take a simple example that happens all the time. Your document has track changes on it but is formatted incorrectly (for example you need to use keep with next). Right clicking the mouse will not bring up paragrpah settings because according to MS the context is tracking changes, so you go up to the ribbon, which is of course stuck in review mode because that was the last time you used it to switch track changes on, now scroll back to the home section of the ribbon, Where are the paragraph settings? - Not obviously there, you have to click on the little arrow in the bottom right of the paragraph tile on the ribbon and finally you have got what you needed.

    And they call that an improvement?

    The ribbon is fine for people who write a letter once every few days, but a complete waste of effort for business
  • BioTurboNick - Thursday, September 15, 2011 - link

    That sounds like an imperfect implementation, not a problem with the interface style per se.
  • quanta - Tuesday, September 13, 2011 - link

    Since the introduction of Windows XP themes, the usable screen spaces have been on the decline.

    First of all, the default XP themes wasted more spaces by creating bigger margins/paddings between interactive screen elements just to fit pretty effects instead of making more efficient use of the same UI margins found in Classic theme while dressing up the visual.

    Then came Windows Vista's Aero, which wastes even more space by switching to Segoe UI, where in its default configuration, has a bigger font sizes than the already inflated XP theme. Worse still, Segoe UI is one of the later ClearType-optimized fonts that looks blurry even after tuning, and ClearType itself isn't even designed for alternate subpixel layouts like non-aperture grille CRTs and Sharp Quattron (ClearType is only defined for 3-subpixel array, not 4-subpixel), making the default Vista UI look even worse on old and new monitors. Shrinking Segoe UI may have saved some screen estate, but the ClearType-tuned fonts are optimized for larger point sizes than the venerable Tahoma or even Microsoft Sans Serif, so it trades one compromise with another. The screen margin wastage is even worse than the XP themes. With all these new-fangled update, one would expect it the Aero UI will be more customizable, but it is not. You may be able to adjust the theme colours of Aero, but if you want to switch the colour of single elements such as (in)active menu bar or title, or switch the Aero font, YOU CAN'T! Well, at least not without hacking the system libraries[1], or going through the pain of editing the features with tools not supplied with the operating system, or use the Windows Classic theme. Windows 7 may have the mean of using the UI to build custom theme[2], but there is still zero method for conserving screen estates using Aero theme unless manually editing .theme files[3].

    In this next Windows iteration, the incorporation of ribbon just add more clutter to the desktop. While the ribbon is needed for touchscreen uses, the way it is organized is far from most efficient. Does the ribbon really need text description over a button group for the buttons that already have descriptions on them? Desktop aside, the Metro fails to reuse the ribbon on the desktop UI, which would have provide a more consistent experience when switching between Metro and desktop, and even with the already bloated Windows 7-based UI, the ribbon layout still uses screen space more efficiently than Metro.

    [1] http://www.howtogeek.com/howto/windows-vista/how-t...
    [2] http://windows.microsoft.com/en-US/windows7/create...
    [3] http://msdn.microsoft.com/en-us/library/bb773190%2...
  • Impulses - Tuesday, September 13, 2011 - link

    Anyone else concerned that Win 8's multiple display support will be pretty hobbled? I'm already iffy on the whole Metro style, switching back to Metro to open unpinned apps when working on the traditional desktop seems horribly inefficient... But I don't see how that's gonna scale across multiple displays, I guess ideally you could leave the start panel with it's live tiles on a second screen, but MS has a history of ignoring multiple display users...

    We still rely on 3rd party tools to extend the taskbar or fine tune wallpapers across three displays... It's a shame too because after multiple cores and SSDs, multiple displays has been the biggest productivity boost I've gained thru hardware in the last 10 years.
  • BioTurboNick - Tuesday, September 13, 2011 - link

    http://www.winsupersite.com/article/windows8/windo...

    Multiple monitor support is improved. Though this is just the desktop, not Metro.
  • CSMR - Tuesday, September 13, 2011 - link

    That was fast. Thanks for the info Anand!

Log in

Don't have an account? Sign up now