Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News There Will Be No Metro UI for Mono

There Will Be No Metro UI for Mono

This item in japanese


Miguel de Icaza said that Xamarin won’t port Metro to other platforms, one of the reasons being Linux’ failure on the desktop. .NET developers interested in writing cross platform apps will be able to do so using Mono for the business code and rewriting the UI code for each platform.

To make sure there is no misunderstanding regarding Xamarin’s plans for Mono and Windows Runtime (WinRT) UI (Metro), Miguel de Icaza announced on his blog that they “are not working on a WinRT UI stack for Linux, and do not have plans to.” De Icaza mentioned the possibility to bring the Metro UI to Mono by using some of the Moonlight code, but he does not seem to consider it a worthy endeavor, expressing his doubts about Linux which might not be able to keep up with “the growth of other consumer environments”.

In a parallel post, Tim Anderson posted some remarks made by de Icaza during a private conversation at BUILD 2011, the Mono founder expressing his sadness on the current state of desktop Linux, with direct implications on Mono for Linux:

To be honest, with Linux on the desktop, the benefits of open source have really played against Linux on the desktop in that we keep breaking things. It is not only incompatibilities between Red Hat, Unbuntu, Suse, but even between the same distribution. Ubuntu from this week is incompatible with the one nine months ago. And then there are multiple editions, the KDE version, the Gnome edition, the one that is the new launching system.

When you count how many great desktop apps there are on Linux, you can probably name 10. You work really hard, you can probably name 20. We’ve managed to piss off developers every step of the way, breaking APIs all the time.

I’m heartbroken, that’s the bottom line. …

I think that Linux has a tough time on the desktop. And the desktop is starting to not matter any more.

So, it is clear that we won’t be seeing a cross-platform Metro UI. And that is consistent with Mono’s approach which did not attempt to port WPF to other platforms, since it required too much funding and effort. But what UIs are Mono applications going to use if they are going to be cross-platform? De Icaza suggests the following:

  • Windows: WinRT, Winforms, WPF (fallbacks: Gtk#, Silverlight)
  • MacOS: MonoMac (fallback: Gtk#, Silverlight)
  • Linux: Gtk#
  • Android: MonoDroid APIs
  • iOS: MonoTouch
  • Windows Phone 7: Silverlight
  • XBox360: XNA-based UI

Having to use many separate UIs for all these different platforms in order to be able to write cross-platform applications makes one wonder if Mono is going to be an attractive choice any longer. De Icaza sees value in having a clear separation between the business code of the application and its UI, and the Mono business code will run on all those platforms, developers having to rewrite only the UI part. And that is actually better because having native UI code makes the application look better than one using a cross-platform UI.

But the rise of web development frameworks, such as jQuery/jQuery UI/jQuery Mobile, PhoneGap or Sencha, and the overall tendency towards HTML5 and web technologies, emphasized lately by the direction taken by Metro and Windows 8, makes one wonder how much room there will be left for Mono and how many developers will choose it for their cross-platform solutions. Mono is attractive for cross-platform developers with investments in .NET, but will that be enough?

Rate this Article


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • RE: There will be no Metro UI for Mono

    by jean-simon Larochelle,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I guess one has to accept some compromise for the UI when doing cross platform development. I see Gtk# is available on all three major platforms so I guess that would be my choice if using Mono. Of course one can always switch to Java and build Swing interfaces. Swing does not give you the latest bells and whistle but provides all the basic components for a functional and efficient UI. I always felt that Java was a better choice for cross platform development anyway.

  • Re: RE: There will be no Metro UI for Mono

    by N T,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    It is obvious now that it was a good decision not to port WPF from their part, but now Mono/C# is an even less attractive solution, especially if you factor in that they basically discount the future Windows and Linux UIs from being implemented. At the end of the day, who is going to be crazy enough to port their UI to 10 platforms? I would go either go HTML or Java (with separate IOS port perhaps and not bothering at all with WinPho, if control of the user experience was so important). C# has spectacularly failed in delivering a cross platform experience, if you have to deal with all those bindings and native ports, good luck...

  • Re: RE: There will be no Metro UI for Mono

    by m c,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    GTK# is one answer. If performance is an issue (games/multimedia) use OpenGL or SDL.
    At least Mono can run on all those platforms to start with.

  • Re: RE: There will be no Metro UI for Mono

    by Sergio Navarro,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Does Java run on WP7? I don't think so. And seriousy if it could run on WP7 it would be tasteless showing a Swing UI trying to behave similar to Metro Silverlight UI.

    Mono will not invest on new UIs for Linux Desktop but it is a very good solution for Linux servers in order to develop Mono + HTML5 web apps. Indeed, it is a very interesting alternative specially because IN MY OPINION currently C# is a more advanced language than Java.

    The decission for selecting C# or Java for multiplatform apps is not a black or white answer. It depends on the amount of platforms you need to cover and the quality of the UI you need to provide.

  • Re: Does Java run on WP7 ?

    by jean-simon Larochelle,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Does anything run on WP7 ? (or run WP7) :) (This is almost not a joke... today). WP7 does not have much market penetration right now and does not weight big in the equation for me. Right now I focus on Android and Java. I like the fact that on any major Linux distribution I install I have access to a good version of the Java runtime and JDK in the standard repository or from Oracle. It is simply not the case with MONO. Right now the problem with Java is Apple platforms. Apple does not have much enthusiasm for Java. At this point for me this is not a big factor despite the iPhone's importance. I guess this shows how personal factors can tip the scale in one direction or the other so I agree that choosing is not a black and white thing. Some people will have different priorities.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p