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

  • Windows Community Toolkit v8.2 Adds Native AOT Support

    Microsoft shipped Windows Community Toolkit v8.2, an incremental update to the open-source collection of helper functions and other resources designed to simplify the development of Windows applications. The main new feature is support for native ahead-of-time (AOT) compilation.

  • New 'Visual Studio Hub' 1-Stop-Shop for GitHub Copilot Resources, More

    Unsurprisingly, GitHub Copilot resources are front-and-center in Microsoft's new Visual Studio Hub, a one-stop-shop for all things concerning your favorite IDE.

  • Mastering Blazor Authentication and Authorization

    At the Visual Studio Live! @ Microsoft HQ developer conference set for August, Rockford Lhotka will explain the ins and outs of authentication across Blazor Server, WebAssembly, and .NET MAUI Hybrid apps, and show how to use identity and claims to customize application behavior through fine-grained authorization.

  • Linear Support Vector Regression from Scratch Using C# with Evolutionary Training

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the linear support vector regression (linear SVR) technique, where the goal is to predict a single numeric value. A linear SVR model uses an unusual error/loss function and cannot be trained using standard simple techniques, and so evolutionary optimization training is used.

  • Low-Code Report Says AI Will Enhance, Not Replace DIY Dev Tools

    Along with replacing software developers and possibly killing humanity, advanced AI is seen by many as a death knell for the do-it-yourself, low-code/no-code tooling industry, but a new report belies that notion.

Subscribe on YouTube