REVIEW: The Mono Project's MonoDevelop is a full IDE for developing C# programs under the Mono runtime. If you've worked with Microsoft Visual Studio, you will see many similarities in MonoDevelop and will feel quite comfortable in the Mono environment. If you're new to MonoDevelop and haven't worked in Visual Studio, you'll find that the learning curve is not very steep.
The Mono Project recently released Version 2.0 of MonoDevelop, a full IDE for developing C# programs under the Mono runtime.
The short story is that if you've worked with Microsoft Visual
Studio, you will see many similarities in MonoDevelop and will feel
quite comfortable in the Mono environment. If you're new to MonoDevelop
and haven't worked in Visual Studio, you'll find that the learning
curve is not very steep.
One important change in Version 2.0 is the use of the MSBuild file
format. Since Mono is an open-source implementation of Microsoft's .NET
runtime, it makes sense to support as many .NET tools and formats as
eWEEK Labs steps through MonoDevelop 2.0. Click here for the images.
As somebody who has been faced with porting from Visual Studio to
Linux and other operating systems, I can say that one of the biggest
frustrations is the build process. With Visual Studio's proprietary
build file formats (which are similar to make files, but not at all
compatible with the standard make utilities), the support for MSBuild
file formats is a welcome addition to MonoDevelop.
Another new feature is the way in which solutions are handled.
Previously, MonoDevelop used nested solutions, but now, to be more
compatible with Visual Studio's solution system, MonoDevelop allows you
to organize projects as folders within a solution.
In addition to many other improvements-such as per-project policies
and opening multiple solutions simultaneously (something you can't do
in Visual Studio)-MonoDevelop now includes a powerful assembly browser.
This tool is particularly useful for its ability to let you inspect the
contents of an assembly, right down to the IL, including types and
Originally, Mono did not support ASP.NET, but it wasn't long before
support was added. Now, as the support has become stronger and more
complete, MonoDevelop has been enhanced to offer full support for
ASP.NET. For example, the Web projects (which are handled differently
than non-Web projects within Visual Studio) are compatible with Visual
Studio 2008, including Visual Web Developer. Again, this will make
porting much easier.
Of course, MonoDevelop is for Linux, and, as such, it caters to the
needs of the typical Linux developer. For example, the editor in
MonoDevelop has almost full vi support, including most of the common vi
Although many of us who work primarily in Visual Studio are
perfectly comfortable with the Visual Studio editor, I personally know
many Linux and Unix developers who are much more at-home with the vi
editor. (And I, for one, can attest that once you learn vi, you never
forget it.) So even though vi often gets a bad rap as being archaic,
it's fast and efficient when you know what you're doing. This is a
welcome addition to MonoDevelop.
Next, and this is a biggie, MonoDevelop now has full GUI support for
debugging, both with MDB (Mono Debugger) and the standard GDB support.
You can set breakpoints within the IDE, and step through your code,
inspect and evaluate expressions, and more.
In short, MonoDevelop Version 2.0 is a fine tool that is on par with
Visual Studio and offers many features beyond those that I've listed
here. These include a split-view code editor; incremental search
bar (something many of us love once we start using it); and code
folding. You can see the whole list of improvements at http://monodevelop.com/Download/MonoDevelop_2.0_Released
Finally, you'll want to be aware of one shortcoming: Right now,
MonoDevelop is available only on Linux and Mac OS X, not Windows.
However, this is temporary; a team within the Mono project is actively
working on porting it to Windows. You'll want to keep an eye on the
main page at monodevelop.com for more information.
Jeff Cogswell can be reached at firstname.lastname@example.org.