Is WPF on Linux (already) possible?

Viewed 46183

I love programming with .NET, especially C# 3.0, .NET 3.5 and WPF. But what I especially like is that with Mono .NET is really platform-independent.

Now I heard about the Olive Project in Mono. I couldn't find some kind of Beta.

Does it already work? Have any of you made any experiences with it?

Edit: I know about Moonlight. But I want a standalone WPF application. And because of Moonlight I hope WPF on Linux will become true.

9 Answers

You'll have better luck working with Moonlight, which targets the Silverlight API, which is a subset of full WPF.

edit: Sure, Silverlight isn't "intended" for the desktop, but there's no reason why you can't embed a silverlight engine in your application. It's been done before, such as for the Mac NY Times Reader

more edit: see Miguel's post on Standalone Silverlight Applications

Update: Since people keep upvoting this, I want to point out it is long since out of date. Mono got acquired by MS years ago, and their posture regarding open-source has changed, so consider this post obsolete. (As obsolete as the WPF framework itself, heh).

Mono is in a bit of an uncomfortable position when it comes to Microsoft APIs such as Winforms and WPF. A subset of the .Net technology is an ECMA standard, but free implementations of these APIs are probably on shakier legal ground. I believe this was a large factor in the covenant between Novell and Microsoft, which is good for Novell customers. But people who use Mono that aren't customers of Novell aren't protected. For this reason a lot of people in the F/OSS community look askance at Mono despite its technical merits.

For this reason, Gtk# will always be preferred, since it is truly Free. Many people consider it to be superior to Winforms anyway. As far as WPF is concerned, it will almost certainly be a low priority for Novell. They may implement it eventually, but I would expect Moonlight to be the closest you could get for the forseeable future.


Since posting this, Microsoft has extended their covenant to anybody who implements the ECMA 334 & 335 standards.

From the mono website

At this point, the Mono project does not have plans to implement Windows Presentation Foundation APIs as part of the project.

Moonlight is an implementation of silverlight, which is a browser based flash like technology based on a subset of WPF.

In my opinion the choice to not implement WPF is monos biggest mistake. As WPF is fast becoming the default choice for new .net user interfaces. See this blog for more.

From the Olive home page:

Olive is unsupported, should be considered as experimental software, and since it implements a shifting API there are no guarantees of any kind about the stability of the API.

I doubt anyone would have used it in a real project.

I heard a podcast interviewing miguel de icaza (the mono lead) maybe a few weeks ago, so that would have been maybe mid-december 2008, and he said that they had no WPF support at all yet.

Theoretically, a stripped version of WPF COULD be compiled against WinPR or LibWine to run on Linux.

Currently there is no such setup, so someone would need to make one. Hopefully this might change soon.

As of running against or in a full Wine environment, I think that is seriously overkill and will result in too much bloat to be worth making a very small number of additional programs work.

Related