This page is likely outdated (last edited on 19 Jan 2013). Visit the new documentation for updated content.
Mono For .Net Developers
This article is incomplete, please add to it.
Beginning with Mono
You've got a great .Net application, and now you, or your boss, or your customer wants it to run on Linux. That's what Mono can help you do. Mono is a cross-platform implementation of the pieces that make up the .Net framework, like the CLR, C#/VB.Net compilers, and the base class libraries. Currently, Mono supports just about everything available in .Net 2.0. There are a few notable exceptions, like Windows.Forms' DataGridView and ASP.Net's WebParts. There are also a couple of namespaces that don't really have a Linux equivalent like EnterpriseServices, System.Management, and System.Messaging. So the first step is to determine how much of your application Mono supports. There is a tool that helps you determine this called the Mono Migration Analyzer (Moma). For now, you don't need to worry about running Mono, just download Moma and run it with .Net. Select the assemblies (.exe's and .dll's) to your application, and Moma will tell you which classes, methods, etc. your application uses that Mono may not fully support. This should give you an idea of how easy or hard it is going to be to get your application running with Mono. |
Mono Migration Analyzer (Moma) Moma scans your application for compatibility with Mono, and reports potential issues. It does not require Mono to be installed, so it is a great place to start. |
Getting Mono
Once you've decided to pursue porting your application to Mono, the next step is to download and install Mono. There are several options available for doing this.
|
Mono Download Page The Mono download page offers the latest version of Mono for Windows, OSX, and several distributions of Linux. |
Running Mono
Regardless of whether you installed Mono on Linux or Windows, using it is pretty much the same. For Windows - .Net Executables:
For Windows - ASP.Net Applications:
For Linux - .Net Executables:
For Linux - ASP.Net Applications:
With the ability to launch your application with Mono, you can now see how well it works, and what issues you may need to work on to get it fully supported on Mono. |
Tools
There are several tools available to make development with Mono easier. MonoDevelop MonoDevelop is a full featured IDE for Mono written in Mono that runs on Linux and Mac. It provides all the standard IDE functions like code completion, class management, built-in help, support for many types of projects, and a powerful add-in engine. It has seemless support for opening Visual Studio solution and project files. While it has a great GTK# designer, it does not currently have a Windows.Forms or ASP.Net designer. If you need them, you are probably better off using SharpDevelop or Visual Studio on Windows. |
More Resources
Mono Start Page The Mono start page offers some of the same information available here, as well as links to many in-depth articles and guides that can help you work with Mono. |
Mailing Lists The Mono mailing lists are a great way to get support for any trouble you may run into. There are many experienced people on the lists who can give you tips and help. |
|
Mono Bugzilla If you run into a bug in any part of Mono, please let us know about it so we can fix it. |
Chat Rooms For real time help, there are several IRC chat rooms available that deal with Mono. |