Mono: A branch to other platforms
Mono is a open-source, multi-platform CLR (Common Language Runtime) allows .NET Applications
(particularly C# written applications) to run on Linux and Mac OS X. Mono was created as a deal from
Microsoft to uses the CLR to create what is now Mono. What many people don't know, the CLR of
.NET is open source, just not the front-end. If the CLR wasn't open-source, then Mono wouldn't be here
today. Now, before you get to asking “Whats the purpose of this? I've heard about this a million
times!”, just sit back and relax as I guide you through the concept of Mono and making your first Hello
Now that we have covered a little bit of Mono's start. Lets get Mono into our toolbox and create some
applications. Mono, itself, is written in C#, so the main language of building Mono apps would be, you
guessed it, C#. The Mono Project is working on VB.NET support so VB developers, you get a bone
too. If you have a existing application you would like to port, go to http://www.mono-project.com and
click MoMA. MoMA is a Mono software tester which allows you to test if you application will run
flawlessly on Mono. Lets start by opening a current project in MoMA.
This is the welcome screen.
Click Next and we will add our project's exe/dll files to MoMA.
OK, now I have added my main project, Open Studio, to the analyzer. Click next and we will see some
results. Depending on how many files get added, it will take a few seconds to 10 minutes to scan. And
our results are:
If we click, View Detailed Report, we will see a detail report on whats wrong with our application.
Wow, thats a lot of mistakes. Now if your application's report contains “Method Missing from Mono” or “Method with [MonoTodo]” then theres nothing we can do about it. Those just mean that they haven't
been added to Mono yet. But if its something like P/Invoke, then chances our, you can't use it EVER!
Stey tuned for the next article when we set-up Mono and get a IDE for developing on the new platform.
You may download this article as PDF here
This post has been edited by Amrykid: 17 May 2009 - 05:02 PM