Release notes for MonoDevelop 1.0 Beta 1

MonoDevelop 1.0 Beta 1 (0.16) 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

Compiling the following order will yield the most favorable response.

  • Gtk# 2.8.0
  • Gtksourceview#-2.0 0.10
  • Monodoc 1.0
  • Gecko#-2.0 0.10
  • MonoDevelop 0.16 Source

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

You can download MonoDevelop 1.0 Beta 1 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

C/C++ Support

The new C/C++ project type implemented as part of Google’s Summer of Code allows compiling C or C++ code using the GNU gcc or g++ compilers. The compilation and linking is fully configurable, including warning level, optimization level, target type (executable, static or shared library), define symbols, linked libraries, library paths, include paths and arbitrary additional arguments.

Integration with pkg-config enables installed packages such as GTK+ and SDL to be easily added as references. Library projects can also export pkg-config packages for consumption by other projects or for distribution.

The class pad is fully supported (via exuberant ctags), and can be used to browse the defined symbols and jump to their declaration with a simple double-click. This also provides limited code completion in the text editor. Parameter completion works well, and completion also works for the ‘::’ operator on classes, structs and namespaces. However, completion does not yet work for class instance members using the ‘.’ and ‘->’ operators.

Precompiled headers and dependency tracking are used to speed up the compilation process, and ccache may be used for an additional speed boost.

Writing a wxWidgets app in MonoDevelop (Marcos David Marín Amador)

New Database Add-in

The database add-in is an improvement and partial rewrite of the old MonoQuery add-in. Some of the new features are:

  • The query view allows to limit the number of displayed results
  • The query view can import/export sql statements
  • New databases can be created
  • Support for creating tables (including constraints), procedures and views [1]
  • Support for altering procedures and views [1]
  • Support for dropping/renaming databases, tables, procedures and views [1]

[1]: Some of the features might not work or might be disabled for specific databases, this is due to missing features or bugs in the database providers. Workarounds will be implemented asap.

Installation

as of monodevelop beta 1, the database support is added in the main repository, to enabled it, add the “–enable-database” flag when running “./configure”

Database specific features

Sqlite (Mono.Data.Sqlite)

the Create table command is implemented, but disabled by default due to a bug in the sqlite database provider (https://bugzilla.novell.com/show_bug.cgi?id=324934), the feature will be enabled by default when the bugfix hits a mainstream mono version (probably mono 1.2.5.1 or 1.2.6)

Supported operations:

  Create: database, view
  Alter: view
  Rename: table
  Drop: database, table, view

MySql (MySql.Data)

Supported operations:

  Create: database, table, view, procedure, trigger
  Alter: view, procedure
  Rename: database, table, view
  Drop: database, table, view, procedure, trigger

PostgreSQL (Npgsql)

the npgsql provider distributed with mono 1.2.4 lacks supports for GetSchema (“Datatypes”), this breaks the Create Table feature

Supported operations:

  Create: database, view, trigger
  Alter: database, view, trigger
  Rename: database, table, view, trigger
  Drop: database, table, view, trigger

Sql Server (System.Data.SqlClient) (not yet tested)

Supported operations:

  Create: database, table, view, procedure, trigger
  Alter: database, view, procedure, trigger
  Rename: database, table, view, procedure, trigger
  Drop: database, table, view, procedure, trigger
Screenshots

Create new database Create new Sqlite connection Create new MySql connection Query result and Database explorer Alter table Alter procedure

(Ben Motmans)

Text editor improvements

The text editor has some nice improvements:

  • New move block up/down command, mapped to Alt+Up/Down (Zach Lute)
On-the-fly error underlining

MonoDevelop will now flag syntax errors for C# code using underlines:

Image:Md-underline.png

Jérémie Laval contributed this feature.

Auto-generation of XML comment tags

The editor will now enter documentations stubs automatically after you enter “/” three times in a comment context. The generated stubs are context-sensitive which will produce the correct default of comments and for existing methods, it will also generate parameter names:

Image:Auto-complete-anim.gif

Mike Krüger implemented this feature.

New ASP.NET features

ASP.NET projects now fully support the use of CodeBehind partial classes, auto-generating control references in CodeBehind classes and grouping CodeBehind classes with their parent page. They also feature new and improved templates, support for assembly references in web.config, and numerous minor tweaks and bugfixes (Michael Hutchinson).

Multiple Gtk# versions

MonoDevelop new supports targeting Gtk# versions other than the installed in the system. For example, in a system running Gtk# 2.10 it is possible to select Gtk# 2.4 as target version, and the generated application will be linked against the 2.4 libraries.

Support for those additional Gtk# versions must be installed using the add-in manager.

(Lluis Sanchez)

ChangeLog add-in

The ChangeLog add-in now allows updating several ChangeLog files in a single commit. Every project can have a ChangeLog location policy (which can be for example: create a single ChangeLog in the root project directory, one in each first-level subdirecty, or one in every subdirectory).

When committing a set of changes MonoDevelop will locate and add the comments the correct ChangeLog for every change (creating a new one if necessary).

The ChangeLog entry editor

(Lluis Sanchez, Jacob Ilsø Christensen)

Other features

  • Added regular expression library to the regex toolkit (Mike Krüger).
  • The Gettext add-in now allows choosing which projects and files to translate (Mike Krüger).
  • Added basic support for reading Visual Studio Silverlight projects (Ankit Jain).
  • Implemented new command line tool for generating makefiles (Ankit Jain).
  • Highlight missing files and directories (Eric Butler)
  • Added “Include To Project” menu item to Folders that recursively adds files (Eric Butler).
  • Gtk# designer: custom widgets now use by default the project name as category name, in this way widgets are shown in the toolbox in a more organized way (Lluis Sanchez).
  • When using a Gtk# version that supports it, MD now registers a global exception handler that will prevent MD from crashing in case of unexpected exceptions (Lluis Sanchez).

Bug Fixes

Here is a list of bugs fixed in this release:

  • 75807 Save file for external tools
  • 79131 setting widgets properties inside a custom widget doesnt generate code
  • 80813 Code completion should show the best match in the middle of the combo box
  • 80993 File generated by stetic are re-generated on every compilation
  • 81238 NodeView support in Stetic GUI designer
  • 81657 Exception when loading huge SLN file
  • 81660 Crash when opening the Welcome-Page manually.
  • 81760 Name of custom widgets may be too long
  • 81763 Combo boxes added to a window should be of type ‘text’ by default
  • 81782 Enter key doesn’t work when using SCIM in XIM mode
  • 81964 Fix default ASP.NET Web Application project template
  • 82054 Saving a file taking 30 seconds+ and 100%cpu
  • 82156 Auto complete not detecting member variables/properties
  • 82172 svn commit dialog mixes ChangeLog entries with several commits
  • 82199 Dropdown history in search dialog
  • 82205 Can’t read autocomplete
  • 82207 Incorrect autocomplete insertion
  • 82209 Generic parameter doesn’t appear in auto-complete
  • 82213 New command for context menu: Open containing folder
  • 82217 ctrl+w doesn’t close the window
  • 82223 Overload selection does not work when breaking the line
  • 82237 Auto-complete not showing all relevant options
  • 82238 Incorrect text inserted from auto complete
  • 82241 Can’t navigate to the base method
  • 82251 Build progress bar hidden when generating stetic code
  • 82253 When removing a layout, the combo in the layout toolbar is not updated
  • 82255 Properties pad should show the properties of the file being edited
  • 82258 Incorrect class file opened when double clicking on a window in the User Interface folder
  • 82263 Jumping to incorrect base class
  • 82264 Not dealing well with constructor completion if class must be called with the full namespace.
  • 82275 Solution pad not updated when adding a project to version control
  • 82278 Dependent files copied to bin/bin for ASP.NET projects when building a multi project solution
  • 82280 Missing commands in search result pad
  • 82282 Error list pad should take into account line changes done in files
  • 82303 Crash when right-clicking in editor
  • 82311 Rename fails when we have two variables that are called the same
  • 82313 Random NRE
  • 82316 operator ‘::’ behaves like goto label in smart indentation
  • 82322 ChangeLog addin always adds the filename as ‘ChangeLog’
  • 82334 Gettext addin: can’t choose which files to translate
  • 82335 Gettext addin: can’t choose which projects to translate
  • 82336 Gettext addin: Translation project optiosn dialog not HIG compliant
  • 82337 Gettext addin: usability issues in the PO editor
  • 82338 Reverting a file prompts the user to reload
  • 82339 Gettext addin: deployment issues
  • 82340 Gettext addin: translation project creation should be available as a ‘project feature’
  • 82341 Gettext addin: Language selection combo too big.
  • 82343 Avoid whole modification of VS project type
  • 82375 Search result list not sortable
  • 82389 CopyToOutputDirectory=always does not work for VS2005 project files.
  • 82391 Parameters don’t appear in auto-completion
  • 82394 resgen errors should be shown in the error list
  • 82398 Paths in .resx files should be firstly converted to Unix before being parsed
  • 82420 Refactoring: rename file that contains class when Rename
  • 82425 Renaming a base method doesn’t rename overrides
  • 82430 Enabling/disabling addins throws an exception
  • 82432 Code completion blows up if .pidb doesn’t exist
  • 82437 svn-plugin: can’t change more than one changelog
  • 82458 unable to open files that have a colon in the path
  • 82475 Cant select text when code completion is shown
  • 82476 Notebook widgets don’t display their label if it has anything other than a label widget in it
  • 82496 Opening files causes sigabrt
  • 82500 Rename refactoring enum value crashes MonoDevelop
  • 82503 Method parameter display doesn’t enable
  • 82505 No autocomplete for static members
  • 82521 Autocomplete not activating
  • 82522 Exception enabling autocomplete
  • 82527 Adding new project Icons from toolbar edit doesn’t work propertly
  • 82529 TaskList doesn’t update when using comments: /**/
  • 82538 Sigsegv after just opening MD
  • 82540 Monodevelop crashes on startup with UriFormatException
  • 82541 Incorrect activation of autocomplete
  • 82553 Unhandled exception closing tabs
  • 82559 MonoDevelop throws a non-fatal System.FormatException on startup
  • 82586 Compile ASP.NET application
  • 82671 Stetic doesn’t generate proper code for a FolderChooserButton
  • 82681 MonoDevelop doesn’t show warning CS1584 with warning level 4 and documentation enabled
  • 82683 MonoDevelop should generate XML documentation when /// is typed.
  • 82693 Rebuild not working
  • 82698 Ctrl+Shift+F displays wrong dialog
  • 82703 Task pad also contains normal comment
  • 82710 Fix firefox problems during configure
  • 82714 Invalid offset in text editor
  • 82720 Null ref when autocomplete activated
  • 82721 Sigsegv reverting a file
  • 82733 Tasklist showing empty
  • 82736 Wrong URL decoding of VS project files
  • 82742 Incorrect title of Find In Files window
  • 82743 Autocomplete doesn’t activate
  • 82745 Changelog Addin does not write proper ChangeLog entried when it prompts for name and email.
  • 82760 Nul ref enableing autocomplete
  • 82768 Move cursor after new summary comment
  • 82770 MonoDevelop should keep in comments when return is pressed
  • 82788 Can’t go to a base method
  • 82789 Can’t rename a method
  • 82791 Implementing an interface doesn’t implement all methods
  • 82804 MD crashes with StackOverflow
  • 82823 Can’t go to class declaration
  • 82826 MD crash when a bookmark is toogled off
  • 82830 Autocomplete doesn’t activate for arrays
  • 82831 Bad autocomplete on arrays
  • 82841 Enum members appear twice in autocomplete
  • 82854 MD auto-generates a method with `Void’
  • 82865 Navigate to Previous command not jumping to latest position
  • 81478 The CodeBehind service isn’t updating the tree properly.
  • 82480 Extras/AspNetEdit/libs/JSCall.js missing.
  • 82857 MD override auto-implementaion should generate call to base class

Known Issues

  • MonoDevelop is known to have issues running on systems with GTK+ 2.12. In any case, feel free to try and file bug reports.
  • A bug in Mono’s managed file watcher may cause the memory use of MonoDevelop to grow indefinitely. To avoid this problem make sure Inotify is properly configured like explained here.

Credits

Contributors

The following people contributed in this release:

Lluis Sanchez, Jeff Stedfast, Michael Hutchinson, Ankit Jain, Wade Berrier, Mike Krüger, Ben Motmans, Zach Lute, Marcos David Marín Amador, Levi Bard, Andrés G. Aragoneses, Jérémie Laval, Eric Butler.

This is the list of all project contributors:

Alberto Paro, Alejandro Serrano, Alexandre Gomes, Alex Graveley, Andrés G. Aragoneses, Andre Filipe de Assuncao e Brito, Antonio Ognio, Ankit Jain, Ben Maurer, Ben Motmans, Christian Hergert, Daniel Kornhauser, Daniel Morgan, David Makovský, Eric Butler, Erik Dasque, Franciso Martinez, 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, 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, Muthiah Annamalai, Nick Drochak, nricciar, Paco Martínez, Pawel Rozanski, Pedro Abelleira Seco, Peter Johanson, Philip Turnbull, Richard Torkar, Scott Ellington, Todd Berman, Vincent Daron, Wade Berrier, Yan-ren Tsai and Zach Lute.

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

  • ca - Jonathan Hernández Velasco, Jordi Mas i Hernández
  • cs - David Makovský
  • da - Martin Willemoes Hansen, Jacob Ilsø Christensen
  • de - Gustav Schauwecker, Martin Dederer
  • es - Antonio Ognio, Alejandro Serrano, Andrés G. Aragoneses
  • fr - Vincent Daron, Nicolas Favre-Félix
  • gl - Ignacio Casal Quinteiro
  • it - Alberto Paro, Milo Casagrande
  • ja_JP - Atsushi Eno
  • pl - Marek Sieradzki
  • pt_BR - Mauricio de Lemos Rodrigues Collares Neto, Andre Filipe de Assuncao e Brito, Rafael Teixeira
  • pt - Vitor Hugo Barros
  • ru - Maxim Krentovskiy, Semyon Soldatov
  • sl_SI - Matej Urbas
  • zh_CN - Yu Lindong, Funda Wang
  • zh_TW - Yan-ren Tsai

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.