Product Reviews

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.

First Impressions
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.

Control Issues
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.

MonoDevelop 2.0

Open Source, supported by Novell
http://monodevelop.com
Price: Free
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.

About the Author

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.

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube