Now this is a stroke of genius.  If you want people to consider making their .NET applications work on Mono, give them a tool that informs them ahead of time how much trouble (or how easy) it will be to migrate to Mono.

That is exactly what Jonathan Pobst did with the Mono Migration Analyzer (found via Miguel de Icaza).  This tool analyzes compiled assemblies and generates a report identifying issues that might prevent your application from running on Mono.  This report serves as a guide to porting your application to Mono.

Having Subtext run on Mono is a really distant goal for us, but a tool like this could advance the timetable on such a feature, in theory.

I tried to run the analyzer on every assembly in the bin directory of Subtext, but the analyzer threw an exception, doh!  That’s my “Gift Finger” at work (I could not find where to submit error reports so I sent an email to Mr. Pobst. I hope he doesn’t mind).

Moma
Exception

I then re-ran the analyzer selecting only the Subtext.* assemblies.

Subtext Moma
Results

As you can see, we call 12 methods that are still missing in Mono, 23 methods that are not yet implemented, and 13 on their to do list.  Clicking on View Detail Report provides a nice report on which methods are problematic.

In a really smart move, Moma also makes it quite easy to submit results to the Mono team.

Submit
Results

This is a great way to help them plan ahead and prioritize their efforts.  Just for fun, I ran Moma against the BlogML 2.0 assembly and it passed with flying colors.   Moma Blogml
results

Nice!