Test-Driving MonoDevelop 2.0
Is the open source IDE for cross-platform .NET development a viable alternative to Visual Studio 2008?
MonoDevelop is a cross-platform, open source, integrated development environment (IDE) for developers crafting applications for the Mono framework. Sponsored by Novell Inc., the open source Mono implementation of .NET Framework allows developers to migrate existing .NET applications to Windows, Linux and Mac OS platforms.
The goal of the MonoDevelop project is twofold: enable .NET Visual Studio developers to retain their productivity when developing on Linux, and to ease migration of Visual Studio projects to the Mono platform. My hands-on look at MonoDevelop reveals a promising tool suite marred by some troubling flaws.
You can obtain the latest MonoDevelop 2.0 release as a prepackaged distribution for your Linux distro or you can download source tarballs. As of this writing, the Mac OS package is still incomplete and there's no official installation for Windows.
Getting MonoDevelop and Mono 2.4 framework installed and running might present a major challenge. After several unsuccessful attempts, I settled on openSUSE 11.1. Resolving inconsistencies between packages installed with the system and packages included in the MonoDevelop distribution was the biggest challenge-some seemingly successful installs did not produce running versions of MonoDevelop.
At first glance MonoDevelop 2.0 impresses. The user interface and IDE functionality should be quite intuitive for most .NET developers. The solution/project structure in MonoDevelop is similar to that in Visual Studio, which makes importing, navigating, setting up, configuring and building projects a seamless experience.
[Click on image for larger view.]
|Figure 1. ASP.NET developers may be disappointed with MonoDevelop's limited feature set, which lacks a design view and CSS color coding.|
C# is obviously the preferred language, with more templates available for C# projects than for Visual Basic.NET. Most features of the modern IDE are present: IntelliSense, refactoring, code snippets, document outline, split file view, code generation, project and file templates, multiple framework targeting, code metrics, integrated debugger, version control, visual designer (GTK# only) and a lot more.
To test the IDE, I decided to migrate an existing ASP.NET business application from Visual Studio 2008 to MonoDevelop. I was impressed by the import process and flawless compilation of most of the library projects. I encountered only one error-LINQ code valid for Windows compiler failed to compile for Mono.
Trouble started with the compilation of the Web application project. Custom controls and user controls declarations were not handled correctly in the generated designer files, and the compilation took a very long time to complete. I also ran across issues that made me question the robustness of the IDE. I saw several error dialogs while changing settings and exploring functionality, and experienced multiple IDE crashes and slowdowns in the course of my tests.
MonoDevelop shows a lot of capability and maturity for building class libraries. The IDE is fast and offers a large selection of desirable productivity features. On the other hand, Visual Studio 2008 offers complete Web development integration and unrivaled developer productivity. The documentation for both the Mono framework and MonoDevelop is rather sparse, and answers to questions about errors, compatibility issues and installation are not easy to find.
Open Source, supported by Novell
Quick Facts: Open source, cross-platform IDE focused on C# enables rapid development of Mono applications for Linux, Mac and Windows.
Pros: A familiar environment for .NET Visual Studio developers that helps to port their skills to developing in .NET on Linux.
Cons: Lacks a visual designer; stability and speed of the Mono IDE lag Visual Studio, and documentation and community support are less than robust.
Krystyna J. Rosicka-Blonska, MSCD .NET, MS in Physics from Technical University of Gdansk, Poland, lives in Louisiana and works as a software architect at Not Rocket Science Inc. She builds line-of-business applications with Microsoft technologies and enjoys following the Microsoft .NET stack.