Release notes for MonoDevelop 0.9

MonoDevelop 0.9 has been released. MonoDevelop is a GNOME IDE primarily designed for C# and other .NET languages.

This release contains lots of improvements, new features and bug fixes. Read below.

Installing MonoDevelop

MonoDevelop Dependencies

Compiling the following order will yield the most favorable response.

  • Gtk# 2.4.0
  • Gtksourceview#-2.0 0.10
  • Monodoc 1.0 (requires gtk-sharp 1.0)
  • Gecko#-2.0 0.10
  • MonoDevelop 0.9 Source

You can download MonoDevelop 0.9 source from here. The Mono download site contains packages for everything for many popular distros. You can also check the mono redcarpet channel.

This release of MonoDevelop needs Mono 1.1.9 to run.

New Features

Add-in Manager

MonoDevelop now provides an add-in manager that can be used to download and install/uninstall add-ins.

The add-in manager can be started from the MonoDevelop IDE (Tools menu), from the command line (mdtool gsetup), or you can use the command-line version (mdtool setup).

With the add-in manager it is possible to install add-ins from on-line repositories, and keep track of updates. You only need to register the repository url (there is a button in the add-in manager for this), and select the add-ins you want to install. The manager will take care of dependencies between add-ins, or between add-ins and the core assemblies.

The main add-in repository is located at http://go-mono.com/md. This repository is already registered by default in MonoDevelop 0.9. Updates to the core add-ins will be published there.

MonoDevelop will automatically check for add-in updates once a day (you can change this periodicity in the Add-ins options panel of the preferences dialog).

With the Add-in Manager you can download and install new add-ins from online repositories.

Command line build tool

Projects can now be built from a terminal using the new build tool. To build a project or solution just cd to the project’s directory and execute:

mdtool build

You can use the –f option to specify a solution file (if there is more than one) and –p to specify a project name if the solution contains more than one project.

Welcome Page

Scott Ellington has contributed a Welcome Page add-in. The welcome page provides links for some common actions and recent projects.

MonoDevelop showing the welcome page.

Smart Indent

John Luke has implemented support for smart indenting in C#. There is some basic support in Boo as well. This option can be enabled in the Text Editor Behavior panel of the preferences dialog.

Bug Fixes

There are many bug fixes in this release. These are the major highlights:

  • The VS.NET solution importer is now more reliable.
  • The size of pads is now properly restored.
  • The undo limit of the editor has been increased.
  • Fixes in the nunit add-in.
  • The code parser does not lock the IDE any more when it’s parsing an assembly and code completion info is requested.
  • Several fixes in the version control add-in.

API Changes

MonoDevelop has undergone a major namespace and assembly reorganization in this release. MonoDevelop is now more modular, the namespace hierarchy is more coherent, and the source code files easier to locate (we now follow the same convention as in Mono). More information about the new architecture can be found in the Architecture Overview article.

Apart from the reorganization, there are some new API additions:

  • Added a new add-in management API, and improved the runtime API. Add-ins are now loaded under demand.
  • Application add-ins: add-ins can now register applications that can be executed from a terminal, from outside the MonoDevelop IDE. That’s how the new build, setup and gsetup commands are implemented.

Known issues

The debugger integration is still disabled in this release since the Mono Debugger is being changed.

Due to fixes in the code completion engine, the parser database format has changed. MonoDevelop will automatically rebuild old parser databases in the background, but it may take some time (when the parser is running the Execute icon is shown in MonoDevelop’s status bar). The code completion engine may not show all available classes in a project until all referenced assemblies have been reparsed.

Credits

Contributors

Alberto Paro, Alex Graveley, Antonio Ognio, Ben Maurer, Ben Motmans, Christian Hergert, Daniel Kornhauser, David Makovský, Erik Dasque, Franciso Martinez, Gustavo Giraldez, Iain McCoy, Inigo Illan, Jacob Ilsø Christensen, Jeroen Zwartepoorte, John BouAnton, John Luke, Lluis Sanchez Gual, Martin Willemoes Hansen, Miguel de Icaza, Nick Drochak, Pawel Rozanski, Pedro Abelleira Seco, Peter Johanson, Richard Torkar, Scott Ellington, Todd Berman and Vincent Daron.

This list is not complete, it is missing some contributions sent in to the list and via our bugzilla. Your work is still greatly appreciated. If your name was left off the list, it was not intentional, please send an email to the list and it will be corrected as soon as possible.

Translators

  • ja_JP - Atsushi Eno
  • fr - Vincent Daron
  • es - Antonio Ognio
  • da - Martin Willemoes Hansen
  • pt_BR - Mauricio de Lemos Rodrigues Collares Neto, Andre Filipe de Assuncao e Brito
  • cs - David Makovský
  • it - Alberto Paro

Thanks

All of our wonderful testers who put up with the insane dependencies, the constant breakage and still managed to post nice bug reports.

Mike Krueger and the rest of the AlphaSierraPapa team for giving us a great codebase to start from, and continuing improvements.

All of the active MonoDevelop developers.