RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX


Mono IDEs: Going Beyond the Command Line

Choosing to develop for Mono no longer means that you're also have to throw away the advantages that integrated IDEs provide. Instead, you have a wide—and growing—range of Mono IDE options.

ike the freely downloadable Microsoft .NET Framework 2.0 SDK, the free open source Mono platform provides a number of command line utilities used to compile .NET source code and manipulate the resulting assembly such as to assign a strong name, deploy the image to the Global Assembly Cache (GAC), view type metadata, etc. Many of the Mono tools even have the same name as their Microsoft counterparts and offer similar functionality. Table 1 provides a Mono-to-Microsoft .NET comparison of some common command-line development tools.

Author's Note: This article assumes a basic understanding of the Mono platform, the C# programming language and the mechanics of the .NET framework. If you are new to Mono development, I'd suggest reading the article An Introduction to Mono Development before proceeding.

Table 1. The table shows common Mono vs. Microsoft .NET command line development tools.
Mono Command Line Tool Microsoft .NET Command Line Tool Meaning in Life
al al The assembly linker utility is used to manipulate assembly manifests and build multifile assemblies (among other activities).
mcs/gmcs csc The C# language compiler.
mbas vbc The Visual Basic language compiler.
gacutil gacutil Used to interact with the GAC.
mono (when specifying the -aot command option) ngen Performs a pre-compilation of an assembly's CIL code.
wsdl wsdl Generates client side proxy code for an XML Web services.
disco disco Discovers the URLs of XML Web services located on a Web server.
xsd xsd Generates type definitions from an XSD schema file.
sn sn Used to generate key data for a strongly named assembly.
monodis ildasm The CIL disassembler.
ilasm ilasm The CIL assembler.
xsp2 webdev.webserver A testing and development web server for ASP.NET 2.0 applications.

While it is certainly true that you can make use of the Mono command line tools and your text editor of choice to build any sort of .NET application, raw command line tools offer little by way of developer productivity. But if you've always believed you'd have to give up the comforts of an IDE to develop for Mono, think again. This article provides a high-level survey of three Integrated Development Environments (IDEs) that can facilitate the construction of Mono applications. As you can gather from Table 2, some of these tools are open source. Each targets a particular set of Mono-aware operating systems.

Table 2. Here's a sampling of Mono-aware IDEs.
Mono-aware IDE Runs on Windows? Runs on Unix \ Linux? Runs on Mac OS X? Open Source?
SharpDevelop Yes No No Yes
MonoDevelop See below Yes Yes Yes
X-Develop Yes Yes Yes No

Author's Note: Technically it is possible to install MonoDevelop on Windows using the cygwin Unix-emulation environment; however I won't examine this topic here.

The purpose of this article is not to provide details regarding every option or feature provided by each IDE (menu choices, use of the visual designers, building custom code snippets, etc), but rather to show you the core details required to compile C# code against the Mono base class libraries and run the assembly under the Mono runtime.

Close Icon
Thanks for your registration, follow us on our social networks to keep up-to-date