[MonoDevelop] MoMA?

Quandary quandary82 at hailmail.net
Sat Sep 11 06:52:48 EDT 2010

MoMa is short for mono migration analyzer.
MoMa is a tool written in .NET.
It runs wherever you have a working .NET/mono version installed.
That includes Windows and Linux. And I am talking about the same binary 
on both platforms.

MoMa just checks whether the Linux runtime supports all the methods you 
used in the assemblies & executables you give it to check.

And you don't need to request it, you can download it right here:
You don't even need to install it, just unpack and run moma.exe.

For example, if, in the program you want to port, you made calls to the 
Windows API, or used COM interoperability, or used methods that aren't 
yet implemented in mono, MoMa will show you those.

It won't show you for example if you used the wrong directory separator 
chars, such as "\", which need to be "/" in Linux (always use 
System.IO.Path.DirectorySeparatorChar to keep it compatible). And it 
also won't show you if you referenced an image with filename XY.JPG, 
while the actual filename is XY.jpg, which will work on Windows, because 
Windows is not case-sensitive, but which won't work on Linux, because 
Linux is case-sensitive (System.IO.Exception "File not found").
I think you can switch off the case-sensitivy in mono using an 
environment variable.
But you might just want to make a vfat file with the dd command on Linux 
and mount it into a directory, so you'll have a case-insensitive 
filesystem to start with.

And no, you don't need MoMa, it doesn't do the work for you.
But MoMa's usefullness is in showing you how much effort a Linux port 
requires, or whether it is possible at all, and where you run into problems.
That certainly is very very helpful, because else you spend time in 
searching errors when MoMa could have already pointed you out in advance 
where those problems are.

Mono 2.4 also has some errors in System.XML.TextReader/Writer, meaning 
the overloaded method where you can pass to the XML reader/writer the 
text encoding is missing... This error has been fixed in mono 2.6 and it 
now works wonderfully. So you need to look that you have a recent 
version of mono installed, or you might spend quite some time on running 
into bugs that have already been fixed.

I might be wrong, but to me, it sounds like you are completely new to Linux.
If you are serious in porting an application to Linux, I definitely 
recommend you familiarize yourself with this operating system FIRST. 
It's not like it's difficult, but there is a certain learning curve 
which requires quite some time. And RedHat is not exactly a very 
beginner-friendly Linux distro.

I recommend you download a free Linux image from Ubuntu.com (Ubuntu is a 
very beginner-friendly Linux distro), install it in the VirtualBox 
(www.virtualbox.org) virtual machine on your private machine, and 
install Linux there virtualized.
Then you can play around a bit, find out how to install and remove 
programs, install monodevelop, how to start programs from the command 
line (not quite as in windows), etc.
If you run into Linux problems, or don't know how to do something, then 
you can always ask at ubuntuforums.org, which is a nice forum  for such 

On 09/10/2010 09:38 PM, Abe Gillespie wrote:
> MoMA's helpful and can be run on Linux.  However, there was a port to
> Silverlight and can be run over the web but I can no longer find the
> link and past requests to this list haven't been fruitful.
> -Abe
> On Fri, Sep 10, 2010 at 3:32 PM, Vogelman, Julie
> <julie.vogelman at lmco.com>  wrote:
>> Thanks for the responses the other day regarding RedHat.
>> So, I’m trying to figure out exactly what I will need for porting my Windows
>> C# code to RedHat. Unfortunately, I have to go through a process to get it
>> approved by my company, so I can’t just download anything.
>> I see a product called MoMA can be used to identify the porting that will
>> need to be done before you start the actual port. I assume this is run on
>> Windows? Or could it also be run on Linux? Currently, I am in the process of
>> requesting Mono for the RedHat machine. But do I also need to be requesting
>> MoMA for the Windows machine? Or do you even think MoMA is necessary and/or
>> very helpful?
>> Thanks again,
>> Julie
>> _______________________________________________
>> Monodevelop-list mailing list
>> Monodevelop-list at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/monodevelop-list
> _______________________________________________
> Monodevelop-list mailing list
> Monodevelop-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/monodevelop-list

More information about the Monodevelop-list mailing list