Release notes for MonoDevelop 2.0 Alpha 2

MonoDevelop 2.0 Alpha 2 (1.9.1) has been released. MonoDevelop is a GNOME IDE primarily designed for C# and other .NET languages.

This is the second release of a series of releases that will lead to MonoDevelop 2.0, hopefully around the end of the year. 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 Alpha 2 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 Alpha 2 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

Integrated Debugger

This is the first MonoDevelop release that includes support for debugging. There is support for two debuggers: MDB (the Mono debugger, which allows debugging managed applications), and GDB (which allows debugging native applications).

Here is a list of the supported features (not all features are supported in both debuggers):

  • Step by step debugging.
  • Variable and field value inspection, with support for drill-down, and value editing (with code completion).
  • Process Attach/Detach (only GDB).
  • Disassembly view, mixed with source code view when available.
  • Call stack and threads window.
  • Debug tooltip in the editor. It shows the value of variables in a tooltip, with support for drill-down and value editing.
  • Expression evaluator.
  • Support for breakpoints. Adding, removing, enabling, disabling.
  • Tracepoints, hitpoints, and conditional breakpoints (currently only working in GDB).
200px 200px 200px 200px

(Lluis Sanchez, Alfonso Santos Luaces, Ankit Jain)

Project Management

There are important improvements in the support for the Visual Studio file format (MSBuild):

  • There is now support for custom build actions.
  • The semantics of "Copy to Output Directory" are fully compatible with VS.
  • Conditions applied to files and project references are now supported.

Other improvements include:

  • Environment variables to be used when running an application can now be set in the project options (per configuration).
  • The solution pad now supports multi-selection. Operations such as copying, moving and deleting files and folders can now be done for several files or folders at once.

(Lluis Sanchez, Michael Hutchinson)

201px

Web Development

MonoDevelop’s ASP.NET web projects are now compatible with Visual Studio 2008 and Visual Web Developer 2008 SP1.

The reliability and performance of the ASP.NET source editor and code completion is much improved.

CodeBehind partial designer classes are now updated only if needed, improving build time.

HTML code completion is now available for HTML files as well as ASP.NET documents.

Preliminary support for Moonlight 2.0 is available. Projects can be created, edited and saved, and a limited amount of XAML code completion is enabled. The projects are compatible with Visual Studio’s Silverlight 2 projects. However, building and running of these projects is not yet implemented.

(Michael Hutchinson)

Source Code Editing

C# Code Completion Improvements

Code completion support has been greatly improved. The completion window is now shown in all contexts. It is shown when typing the first char of an identifier, and it will include all valid types, members and keywords.

There are also other improvements, such as automatic generation of event handlers or anonymous methods when subscribing an event (see image).

(Mike Krüger).

C# 3 Support

The C# parser has been upgraded to support C# 3. Some constructs (but not all) are already supported by code completion, such as extension methods (Mike Krüger).

vi Modes Support

The editor now includes vi modes support, supporting many common vi commands: $^0wRruIiOoPp{}AaDdGhjklXxCcVvbNn<>:?/ (Michael Hutchinson, Levi Bard).

Document Outline pad

The Document Outline pad is now functional for C# source files (and other other .NET source files with MonoDevelop parsers), enabling easy navigation of classes and members in the current file (Michael Hutchinson).

Override/Implement dialog

The new Override/Implement dialog shows all members which can be overriden or implemented in a class (it looks for overridable members in the base classes and interfaces), and allows choosing which have to be implemented. (Ankit Jain)

Encapsulate Field Dialog

The improved Encapsulate Field dialog now allows selecting several fields at once, and it allows setting the visibility and accessibility of the property. (Ankit Jain)

200px

Version Control

Version Control support has been improved with some new features:

  • Added support for locking/unlocking files.
  • Implemented support for the Resolve Subversion command.
  • Implemented support for the Revert to Revision command.

(Lluis Sanchez, Andrés Aragoneses)

Gtk# Visual Designer

There are some improvements in the Gtk# Visual Designer:

  • Custom widgets can now easily be made available in the toolbox by just applying a [ToolboxItem] attribute to the class.
  • Designed windows and dialogs now expose a private Gtk.UIManager field to get access to the action based UI elements.

Credits

Contributors

The following people contributed in this release:

Lluis Sanchez, Michael Hutchinson, Ankit Jain, Mike Krüger, Mike Kestner, Thomas Wiest, Aaron Bockover, Alfonso Santos Luaces, Andrew Jorgensen, Andres Aragoneses, Mitchell Wheeler, Christian Hergert, Eric Butler, Levi Bard, Rusty Howell

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 4 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.