this looks like a job for... tomorrow!

1.2.3: Where We're At

Recently we released Mono 1.2.3 (and Mono yesterday). I am very proud of this release, for several reasons:
  • It's the first release since I've become a full time Mono developer.
  • It's the first release to incorporate MoMA feedback.
  • It's a tremendous improvement over 1.2.2, with over 100 MWF bugs fixed, and over 800 missing methods reported through MoMA implemented.
The biggest question of course, is "Is it ready to run your app?". The one thing I learned in school is that the answer to every computer question is "It depends".

.Net 1.1
If your app is running on the .Net framework version 1.1 and is fully managed, the answer is yes. We consider our support for 1.1 to be feature complete, and encourage everyone to try out their .Net 1.1 apps on Mono. If something isn't working, or looks wrong, it's most likely a bug, and we want to know about it. The bugzilla database for Mono in general is here, and the bugzilla database for MWF is here.

If your app makes unmanaged calls to the Windows API, well, you didn't really expect that to be cross platform, did you? You'll need to work around those calls to do the same thing in managed code, or avoid that code path when running on Mono. A quick scan with MoMA will report any time you are making an unmanaged call (they are labeled P/Invokes).

.Net 2.0
If your app is running on the .Net framework version 2.0, things are a bit trickier. Although there has been much progress done on MWF 2.0, there is still plenty that is unimplemented. MoMA is definitely your friend here. It will scan your app for any functionality you use that has not been implemented yet in Mono. Running it is pretty self explanatory, so I won't cover it here.

A lot of the stuff that is reported isn't necessary and you can work around it if you want your app running on Mono today. Of course, you may run into functionality that you can't live without. Either way, please submit the report at the end so we know what real-world functionality people need. (And if you are real adventurous, you can download the source code to Mono and try to implement what you need. We'd love to incorporate your contribution.)

An Example
Maybe you don't have an app or Mono isn't ready for your app yet, but you'd still like to see what Mono is capable of. I think one of the best places for examples is CodeProject. Looking for a non-trivial 1.1 app, I found this game of Reversi. I think I just like it because it animates the pieces, which alleviates the frustration stemming from the fact that I totally suck at Reversi.

Next time I'll do a guide of how to download Mono and run the game, but for a preview of what it looks like running on the various platforms:

MS .Net Framework / Windows XP

Mono 1.2.3 / Windows XP

Mono 1.2.3 / OpenSUSE 10.2

There's obviously a graphical glitch down the left side, but everything else works perfectly on both Windows and Linux, without any modification to the source code. Hopefully you will have a similar experience with your application!


Anonymous said...

Excuse for nitpicking but:
- The buttons in the toolbar are a little smaller, so they look piled up, and the icons look unaligned in them.
- The listview on the right ends below the ms .net one, so alingment with the board is lost.
- There's more space between the menu items.

This are all little details, but they make the the form look like made without care. The ms .net one instead looks ok.

Anonymous said...

About release. I don't know where to post, so I post here :).

Download page (
1. md5 will be cool
2. current stable version 1.2.3, not (on the top of the page near release notes link (it's also to 1.2.3)).
3. diff or xdelta will be useful between such kind of releases.

Also, there is no news on the about

Also, link to download in the release notes ( don't work at least some releases.

Anonymous said...

What about .NET 3.0 and Orcas? Better get a head start. It comes out soon...

Sorry... but I dont know how you guys can keep up.

michael schurter said...

Let me be the first to say: congratulations on a great release! Mono is coming along so quickly, I can't code fast enough to keep up. ;)