Wednesday, August 6, 2008

WPF, Mono and WINE

The number one reason for people to be hesitant in switching to Linux for their desktop environment is application compatibility. More specifically compatibility with their favorite windows application.

I'm a dot net developer, and for me that killer windows application is Visual Studio 2008. No IDE (integrated development environment) even comes close to providing the features, usability and coding efficiency provided by Visual Studio. And yes I have tried eclipse.

Their are two open source projects of note which are trying to address this problem. The first is WINE (Wine Is Not an Emulator), which aims to provide a free implementation of Windows API on Unix. A honorable goal to be sure. So how does it go on my killer windows App Visual Studio 2008?
Well it doesn't, it can't even run its predecessor Visual Studio 2005.

What about Mono I here you say. Well I was coming to that. Mono is the second of the two open source projects I was planning to mention. Mono aims to provide a open source implementation of .net. Allowing .net applications to run on Linux and Mac. Ausome!!! Ausome that means that any application developed for .net should just run in linix. However when you look closer your rose tinted glasses start to crack. .net has become the development platform of choice for application programmers. It offers huge productivity, maintainability and reliability advantages over native code. Novell the company which sponsors the mono project has just announced the release of mono 2.0 which has full support for .net 2.0 plus c# 3.0 features like linq and linq to xml.

Unfortunate .net has moved on a long way since it released those features and now has a new and much improved GUI framework called WPF (Windows Presentation Foundation). This is quickly becoming the GUI framework of choice for new windows applications.

And this is the real tie breaker. The Mono project has no plans to implement WPF. And with that little bit of information mono's ability to solve our problem of running .net apps on linux dies.

Of course just because Novell does not have the resources to implement WPF does not mean the community can not step in and add this functionality, I mean thats what the whole idea of open source is. Unfortunately this is where the whole things fulls apart. Linux users, ie the ones who most want Linux to become the desktop environment of choice and the ones with the programing skills to make WPF on mono happen hate microsoft. For them hating microsoft has become like a religion. And that hating of microsoft includes microsoft technologies. Even if that technology is being implemented as an open source project by an independent organization. Microsoft haters have gone as far as trying to make sure mono is not included in popular linux distributions. Some going so far as to call in inclusion of mono dependent applications infestations. In doing so shotting themselves and their desire to see linux become the technology of choice in the foot.

What about MonoDevelop you say, a IDE for creating .net apps on linux. Unfortunity again Mono Develop is years behind Visual Studio. As I type this I have Mono Develop running on my machine. It does not let me target anything more recient then .net 2.0 (so no LINQ) and it doesn't even come with a visual debugger. (its still a work in progress you have check it out and compile it from SVN)

So what is required for linux to become the desktop of choice?
Windows applications have to 'just work' on linux.

This means WINE and MONO must become feature complete. MONO releases must follow .net releases within at least 6 months. And nothing especially something as important as WPF can be left out.

So Linux lovers rool up your sleaves and make it happen.

Tuesday, August 5, 2008


First an intro, I'm a .net developer living in Christchurch New Zealand. At work I use Visual Studio 2008 Pro and work on a set of applications used to configure radios.

At home I have moved my main computer to Ubuntu because I like the idea of free and open source software.

I would love to see Linux become the desktop operating system of choice. However I see a number of barriers to this happening.

With that in mind this blog will be used to document the barriers that I have come across and continue to come across to the wide spread adoption of Linux on the desktop.