Release notes for MonoDevelop 2.0 Beta 1

MonoDevelop 2.0 Beta 1 (1.9.2) has been released. MonoDevelop is a GNOME IDE primarily designed for C# and other .NET languages.

This is the third release of a series of releases that will lead to MonoDevelop 2.0, hopefully around the end of March. This release contains lots of new features and improvements. Read below.

Installing MonoDevelop

Compiling the following order will yield the most favorable response.

  • Gtk# 2.8.0
  • Mono.Addins 0.3.1
  • Monodoc 1.0
  • MonoDevelop 2.0 Beta 1 Source

It is highly recommended to use Gtk# 2.8.4 or later, since it includes important memory use and performance improvements.

You can download MonoDevelop 2.0 Beta 1 source from here. The Mono download site contains packages for everything for many popular distros.

This release of MonoDevelop needs at least Mono 2.0 to run.

Installing Add-ins

There are some add-ins which are distributed as separate packages. Those packages are:

  • monodevelop-boo: Boo language binding.
  • monodevelop-java: Java language binding (with IKVM).
  • monodevelop-database: database management add-in.
  • monodevelop-vala: Vala language add-in.
  • monodevelop-debugger-mdb: Mono debugger support.
  • monodevelop-debugger-gdb: Native debugger support with GDB.

Other add-ins are available using the MonoDevelop Add-in Manager (in the Tools menu, click on ‘Add-in Manager’ and then on ‘Install Add-ins’).

New Features and Improvements

Per-project/solution Policies

Many of the settings that were previously only available in the user’s global preferences can now be set per-solution and per-project. Those settings are grouped in what we call policies.

Policies include:

  • Text style: tabs to spaces, tab width, etc.
  • Standard header
  • Default namespaces for projects’ directories
  • Resource naming styles
  • Commit message formatting
  • ChangeLog location and formatting

Policies can be applied to solutions, and can be overridden on child projects or solution folders.

The default policies for new solutions, or solutions without policies applied, can be edited in the Edit->Default Policies dialog.

300px 300px

(Michael Hutchinson, Lluis Sanchez)

Project System

This release includes full support for multiple target frameworks. The .NET 3.0 and 3.5 target frameworks are now explicitly supported. MonoDevelop will now detect inconsistencies in project references. For example, a project targeting the 2.0 framework won’t be able to reference projects targeting 3.0 or 3.5.

Compatibility with the MSBuild project format has also been improved. (Lluis Sanchez)

Web Development

ASP.NET code completion better supports child controls and custom controls. Tags in standalone HTML documents are now autocompleted. (Michael Hutchinson)

Source Code Editing

Source Code Editor

The source editor now has an indication in the margin of lines that are dirty or changed.

200px

The performance has also been improved. (Mike Krüger)

C# Code Completion Improvements

There have been many fixes and improvements to C# code completion. Code completion is more reliable and works in more contexts. Autocompletion of constrained generic parameters is now supported. (Mike Krüger, Lluis Sanchez)

vi Modes Support

Several missing commands have been implemented, and mouse selection is handled better. (Michael Hutchinson, Levi Bard)

Gtk# Designer

Better support for moving files. When moving a window or widget implementation from one project to another project, the design will also be automatically moved. (Mike Kestner)

Go to File Dialog

The Go to File/Type dialog has been greatly improved. It now supports acronym matching. The filtering algorithm tries to find the best match, not only by searching substrings, but also by splitting the search string in several parts and trying to match them through all the words that compose the string being checked. (Lluis Sanchez)

Integrated Debugger

The integrated debugger keeps improving. The new Exception Filter dialog allows selecting a set of exceptions, and the debugger will stop when any of those exceptions is thrown.

The new Expression Evaluation window allows to quickly evaluate an expression while the debugger is stopped.

The expression evaluation engine now supports asynchronous evaluation, so execution of methods or properties won't freeze the IDE anymore.

(Lluis Sanchez)

Vala Support

Added support for valac --thread flag. Errors generated by gcc are now properly shown. (Levi Bard)

Other Improvements

  • Improved key binding customization. The stock key binding schemes have been cleaned and corrected. The key binding customization panel now detects conflicts. (Lluis Sanchez)
  • Find in files: matches are now highlighted in the results list. (Lluis Sanchez)
  • Shortcuts for switching pads. It is now possible to define shortcuts for activating pads. (Lluis Sanchez)
  • Assembly browser: Navigating through definitions by clicking on identifiers is now supported. (Mike Krüger)
300px

Credits

Contributors

The following people contributed in this release:

Lluis Sanchez, Michael Hutchinson, Ankit Jain, Mike Krüger, Mike Kestner, Thomas Wiest, Andrew Jorgensen, Andres Aragoneses, Mitchell Wheeler, Eric Butler, Levi Bard, Rusty Howell, Rolf Bjarne

This is the list of all project contributors:

Aaron Bockover, Alberto Paro, Alejandro Serrano, Alexandre Gomes, Alex Graveley, Alfonso Santos Luaces, Andrés G. Aragoneses, Andre Filipe de Assuncao e Brito, Andrew Jorgensen, Antonio Ognio, Ankit Jain, Ben Maurer, Ben Motmans, Christian Hergert, Daniel Kornhauser, Daniel Morgan, David Makovský, Eric Butler, Erik Dasque, Franciso Martinez, Geoff Norton, Gustavo Giráldez, Iain McCoy, Inigo Illan, Jacob Ilsø Christensen, James Fitzsimons, Jeff Stedfast, Jérémie Laval, Jeroen Zwartepoorte, John BouAnton, John Luke, Joshua Tauberer, Jonathan Hernández Velasco, Levi Bard, Lluis Sanchez Gual, Marc Christensen, Marcos David Marín Amador, Martin Willemoes Hansen, Marek Sieradzki, Matej Urbas, Maurício de Lemos Rodrigues Collares Neto, Michael Hutchinson, Miguel de Icaza, Mike Krüger, Mitchell Wheeler, Muthiah Annamalai, Nick Drochak, nricciar, Paco Martínez, Pawel Rozanski, Pedro Abelleira Seco, Peter Johanson, Philip Turnbull, Richard Torkar, Rolf Bjarne Kvinge, Rusty Howell, Scott Ellington, Thomas Wiest, Todd Berman, Vincent Daron, Vinicius Depizzol, Wade Berrier, Yan-ren Tsai and Zach Lute.

This list may not be complete, some contributors who sent patches by email or via our bugzilla may be missing. Your work is still greatly appreciated. If your name was left off the list, it was not intentional, please send an email to the MonoDevelop mailing list and it will be corrected as soon as possible.

Translators

Catalan Jonathan Hernández Velasco, Jordi Mas i Hernández
Czech David Makovský
Danish Martin Willemoes Hansen, Jacob Ilsø Christensen
German Gustav Schauwecker, Martin Dederer
Spanish Antonio Ognio, Alejandro Serrano, Andrés G. Aragoneses
French Vincent Daron, Nicolas Favre-Félix
Galician Ignacio Casal Quinteiro
Hungarian Gergely Kiss
Indonesian Fajrin Azis
Italian Alberto Paro, Milo Casagrande
Japanese Atsushi Eno
Dutch André Offringa
Polish Marek Sieradzki
Portuguese Vitor Hugo Barros
Portuguese (Brazil) Mauricio de Lemos Rodrigues Collares Neto, Andre Filipe de Assuncao e Brito, Rafael Teixeira
Russian Maxim Krentovskiy, Semyon Soldatov, Daniel Abramov
Slovenian Matej Urbas
Swedish Daniel Nylander
Turkish Enver Altin
Chinese (China) Yu Lindong, Funda Wang
Chinese (Taiwan) Yan-ren Tsai

Thanks

To all of our wonderful testers, who had the patience to use unstable versions of MonoDevelop for everyday use, and managed to post nice bug reports.

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

To Pedro Abelleira, Todd Berman, John Luke, and other early contributors who started this adventure 5 years ago, and who believed in the feasibility of the project.

To all of the active and not so active (we miss you!) MonoDevelop developers.