Release notes for MonoDevelop 0.10

MonoDevelop 0.10 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.10 Source

You can download MonoDevelop 0.10 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 at least Mono 1.1.10 to run.

New Features

Visual designer for GtkSharp

MonoDevelop now features an integrated GUI designer and a set of extensions intended to make easier the development of Gtk# applications. The GUI designer is based on Stetic, a project started by Dan Winship and which has been a wonderful code base.

The add-in adds some new commands for creating windows, dialogs and custom widgets. All of them can be designed using the integrated GUI designer, and everything needed to support the designer (Stetic files and resources) will be generated and handled behind the scenes by the add-in.

The support for visual design of custom widgets adds a new dimension to component-based GUI design in Gtk#. Custom widgets, once compiled, will be shown in the widget palette, and they can be used like any other native widget to design windows or other widgets. Properties defined in the widget’s class will be shown in the properties pad, and public events will be available in the signals tab. That widget will be available to the project that implements it, and to any other project that references it.

Not only widgets created in this way can be used in the designer. Any Gtk.Widget subclass implemented in the project can be made available to the designer. There is a new panel in the project options, named Widget Export, where widgets to be published can be selected.

Beware, this add-in is still in early beta and some features are still missing (for example, a menu designer). Notice that you don’t need to install Stetic, since the necessary libraries are included in the add-in.

The integrated Gtk# GUI designer

Refactoring operations

MonoDevelop now has a refactoring API that can be used to perform several basic operations such as creating types, adding/removing/renaming members, finding references, etc. Not all those operations are right now available as MonoDevelop commands, but some of them are. Here are the operations currently available:

  • Go to the declaration of a class or member.
  • Find references to a class or member.
  • Go to the base class of a class.
  • Find subclasses of a class.

More to come!

Printing support

MonoDevelop can now print source code files. This feature is based on the printing support provided by gtksourceview.

Other improvements

  • The New File dialog now allows entering the name of the file. When creating a new class, the class will now take that name.
  • New templates for creating classes, interfaces and structs.
  • Simplified and improved New Project dialog.
  • Added support for filtering by task type in the task view.
  • It is now possible to load projects which reference assemblies whose exact version not installed in the system, as long as there is a more recent version. For example, projects created for Gtk# 2.4 will properly build in systems with Gtk# 2.8.
  • Improvements in the MonoDeveloperExtensions add-in. It now tracks the latest changes in the makefile format, and includes 2.0 assemblies.
  • The install add-in dialog now has more filtering options.
  • MonoDevelop is translated to two new languages: zh_TW, and pl.
  • F1 help works better now, it can provide direct help not only for types, but also for type members and namespaces.
  • A new ChangeLog add-in.

Bug Fixes

There are many bug fixes in this release. Here are some of them:

  • Fixed several crashes at startup.
  • MD Crashes when clicking to stop build icon
  • Solution Options Configuration not working.
  • Solutions added to an existing solution don’t inherit the configurations from the parent.
  • Crashes in New Project dialog and Preferences dialog with Mono 1.1.13.
  • Search sometimes doesn’t wrap.
  • Shortcut F2 to rename a file isn’t working.
  • Crash when using “Find” tool to search for some special characters.
  • File locking conflict cause .cs file to get wiped out in project.
  • Some types are missing in ‘classes’ view (nested classes, delegates).
  • Add new project makes a unnecessary .mds file.
  • Running an individual nunit test causes “Tcp transport error”.
  • Text replace hangs up MonoDevelop.
  • Localization fixes. More strings are now translatable.
  • Fixed nunit build issue.
  • Stability fixes in Version Control add-in.

API and implementation changes

There are some new API additions and improvements:

  • Add-ins can now declare dependencies to assemblies (not only dependencies to other add-ins).
  • The C# parser is now more precise when providing information about language item location.
  • Added new method in the parser service for resolving any identifier or language item.
  • CodeDom based file templates.
  • File templates are now more extensible. Add-ins can define new types of templates. For example, the Stetic add-in defines a “Widget” template.
  • New extension point for registering custom project properties.
  • New extensible project build pipeline. Add-ins can add new steps in the build process.
  • Added new Services member to IdeApp which provides access to most of services used in the Ide.
  • Implemented support for add-in preloading in external processes.
  • Added support for loading assemblies in a parser database. Implemented a new GetAssemblyContext method in IParserDatabase, which provides access to assembly parser information.
  • Unified Makefile.am format. Updated all MonoDevelop mdp files.
  • Inter-process communication is now done using the Unix remoting channel, instead of TCP.
  • Initial support for unit testing in the CSharpBinding add-in.
  • Removed MonoDoc dependency from MonoDevelop.Projects.

Credits

Contributors

The following people contributed in this release:

Lluis Sanchez, Jacob Ilsø Christensen, Yan-ren Tsai, Vincent Daron, David Makovský, Marek Sieradzki, Joshua Tauberer, Alejandro Serrano, Wade Berrier, Levi Bard, Michael Hutchinson, Peter Johanson, Muthiah Annamalai, Andrés G. Aragoneses, John Luke, Christian Hergert and Alexandre Gomes.

This is the list of all project contributors:

Alberto Paro, Alejandro Serrano, Alexandre Gomes, Alex Graveley, Andrés G. Aragoneses, Antonio Ognio, Ben Maurer, Ben Motmans, Christian Hergert, Daniel Kornhauser, Daniel Morgan, David Makovský, Erik Dasque, Franciso Martinez, Gustavo Giraldez, Iain McCoy, Inigo Illan, Jacob Ilsø Christensen, Jeroen Zwartepoorte, John BouAnton, John Luke, Joshua Tauberer, Levi Bard, Lluis Sanchez Gual, Martin Willemoes Hansen, Marek Sieradzki, Michael Hutchinson, Miguel de Icaza, Nick Drochak, Muthiah Annamalai, Pawel Rozanski, Pedro Abelleira Seco, Peter Johanson, Richard Torkar, Scott Ellington, Todd Berman, Vincent Daron, Wade Berrier and Yan-ren Tsai.

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, Alejandro Serrano, Andrés G. Aragoneses
  • da - Martin Willemoes Hansen, Jacob Ilsø Christensen
  • pt_BR - Mauricio de Lemos Rodrigues Collares Neto, Andre Filipe de Assuncao e Brito
  • cs - David Makovský
  • it - Alberto Paro
  • zh_TW - Yan-ren Tsai
  • pl - Marek Sieradzki

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.