Feature List

The following matrix shows which features are available for each platform. MonoDevelop features not shown in the list are available for all platforms.

Feature Linux Mac Windows
C# Yes Yes Yes
Visual Basic Yes Yes Yes
Java (IKVM) Yes No No
Boo Yes No No
Python Yes No No
Vala Yes No No
ASP.NET Project Yes Yes Yes
ASP.NET MVC Project Yes Yes Yes
Translation Project Yes Yes No
iPhone Project No Yes No
Moonlight Project Yes Yes Yes
Gtk# designer Yes Yes Yes
Generation of Makefiles Yes Yes No
Generation of Tarballs Yes Yes No
Makefile Synchronization Yes Yes No
Database Explorer Yes Yes No
NUnit add-in Yes Yes Yes
Subversion add-in Yes Yes Yes
Help Browser (Monodoc) Yes Yes Yes
Debugging (managed) Yes Yes Yes
ASP.NET Debugging Yes Yes Yes

IDE Workbench

Solution Pad

  • Shows the file structure of the opened solution. Most of project operations can be done in this pad:
    • Project building
    • Management of project files and folders
    • Version control
    • Editing project references
    • Running custom tools
  • Available display options: Show all files, show code-behind files.
  • To display the solution pad, click on the View/Solution menu option.

Class Pad

  • Shows namespaces, types and members defined in the solution.
  • Available display options: Nested namespaces, group by access/member type, show public members only.
  • To display the solution pad, click on the View/Classes menu option.

Files Pad

  • Allows browsing the file system.
  • Basic file and folder management commands.
  • To display the solution pad, click on the View/Files menu option.

Error List Pad

  • Supports message filtering by type.
  • The context menu provides direct access to error documentation.
  • To display the solution pad, click on the “View/Error List” menu option.

Task List Pad

  • Support for user defined tasks.
  • It shows tasks specified in source code using comment tags (FIXME, TODO, …). Comment tags can be customized (Edit/Preferences/Task List).
  • To display the solution pad, click on the “View/Task List” menu option.

Build Output

  • Support for output window pinning (avoids overwriting of the output if the project is built again).

Application Output

  • Support for output window pinning (avoids overwriting of the output if the project is run again).

Message Log Pad

  • Log of internal MonoDevelop messages.

Welcome Page

  • Recents list.
  • Documentation links.
  • Create/Open project commands.

Customization

Layouts

  • Supports the definition of new layouts of workspace pads and toolbars (View/Layouts).
  • Quick layout switch using a selector in the toolbar.

External tools

  • The user can define custom tools to be shown in the Tools menu (Edit/Preferences/Tools/External Tools).
  • Support for project variables such as project directory, current file name, etc.
  • Prompt for arguments.

Configurable Key Bindings

  • Support for configurable key bindings (Edit/Preferences/Key bindings).
  • Emacs and Visual Studio key bindings schemes.
  • User defined key bindings.
  • Support for multi-state key bindings.

Project Management

Building

  • Support for 1.1, 2.0 and Moonlight Mono runtimes (Project/Options/General/Runtime Options).
  • Support for multiple build configurations.
  • Builds required project dependencies.
  • Clean and Rebuild commands.
  • Assembly signing.
  • Command line tool for building: ‘mdtool build’.

Run

  • Option for running in internal or external console.

Export

  • Export a project to a different folder using a different file format:
    • MonoDevelop native file format.
    • Visual Studio 2005.
  • Command line tool for exporting projects: ‘mdtool project-export’.

Custom commands

  • Custom commands can be defined for projects and solutions
  • Command hooks: after/before build, clean, execute
  • Command replacement: build, clean, execute
  • Custom commands: shown in the context menu of the solution pad.

Generic project

  • Project type not bound to any language.
  • Can be used together with Makefile Integation and Custom Commands.

Source Code Editing

Find / Replace

  • Special search strategies: wildcards, regular expressions.
  • Search flags: case sensitive, whole word.
  • Search / Replace in files.
  • Support for search results list pinning (allows keeping several search results lists at once).

Code Completion

  • Code completion of namespaces, types and members.
  • ‘as’ and ‘new’ completion.
  • Method parameter Completion.
  • C# compilation directives.

Source Code Tooltips

On-the-fly Error Underlining

Indent Strategies

  • Auto indent
  • Smart indent for C#

Standard Header

  • Allows adding a header to all new files.
  • Templates for common licences.

Code templates

  • Bind keywords to code templates.
  • Keywords can be expanded by pressing TAB in the text editor.
  • Different sets of templates can be assigned to different file extensions.

Refactory Operations

  • Rename class, field, method, property, event
  • Implement interface (explicit or implicit)
  • Implement overridable method, property, event

Source Code Navigation

  • Go to base class
  • Go to declaration of class or member
  • Find references to class or member
  • Find subclasses
  • Quick search of file or type
  • Quick navigation of build errors and search results using the Browse Next/Previous command.
  • History of source code location.
  • Easy navigation through the history.

Visual Design

Gtk# Designer

Integrated visual designer for building Gtk# interfaces.

  • Allows targeting Gtk# 2.4, 2.6 and 2.8.
  • Supports visual design of custom widgets.
  • Support for reusable widget libraries. Custom widgets are shown in the toolbox.
  • Dynamic reloading of custom widgets. After compiling a change in a custom widget, all design windows where the widget is being used will be automatically updated.
  • Widget library reference tracking. When new widgets are added to a design surface, the required assembly references will be added to the project.
  • Visual editing of stock icon factory.
  • Glade project import.

Toolbox

  • One single toolbox for all designers (Gtk#, ASP.NET, etc.)
  • New items can be added by registering new assemblies.
  • The toolbar is dynamically updated to show the items available for the active file and project.
  • Two display modes: normal and compact (with no labels).
  • Widget search

Property grid

  • One single property grid for all designers (Gtk#, ASP.NET, etc.)
  • Allows editing project file properties.

Packaging and Deployment

Package Generation

  • Sources package: MD and Visual Studio formats (zip or tarball).
  • Binary package: Linux and Windows targets (zip or tarball).
  • Tarball based on Autotools
  • Tarball w/o Autotools (simple makefile with a basic configuration script and dependency checking).

Generation and deployment of support files

  • .pc file for libraries.
  • .desktop for applications.
  • launch script.

Packaging Operations

  • Packaging project: bundles together a set of packaging sources and targets.
  • Create package command: allows creating a package of any of the supported types.
  • Install command: installs a solution to the local file system.

Makefile Integration

Generate makefiles for a solution

  • Two kinds of makefiles:
    • based on Autotools
    • w/o Autotools (simple makefile with a basic configuration script and dependency checking).
  • Command line tool for generating makefiles: mdtool generate-makefiles.

Makefile Synchronization

  • Allows synchronizing the list of files and references between a Makefile and a MonoDevelop project.
  • Support for dependencies defined in Autotools files.
  • Error and warning message parsing using regexes.

ASP.NET

Web Projects

  • Create web application for any supported language.
  • Compile web application and view in browser using xsp.
  • Project GAC references are synchronised to web.config.
  • Add new ASP.NET files:
    • Page (.aspx) with/without CodeBehind class (partial if language supports it).
    • User control (.ascx) with/without CodeBehind class (partial if language supports it).
    • Web Service (.asmx) with/without CodeBehind class.
    • Web Handler (.ashx) with/without CodeBehind class.
    • Web.config (application or subdirectory depending where it’s added).
    • Master page (.master) with/without CodeBehind class (partial if language supports it) for 2.0 runtime only.
    • Global.asax file with/without CodeBehind class.
  • ASP.NET server controls added to aspx files have corresponding members automatically added to the CodeBehind class at compilation time (in the *.designer.* part if using partial classes).

Web References

  • Browse for a web service and create web service proxies.
  • Update web service proxies.

Translation Support

  • Translation Project: allows defining the supported languages, and the projects and files to scan for translatable strings.
  • Update of .po file.
  • Generation of .mo files.
  • .po file editor.

Database Management

  • Explore databases
  • Execute queries and display the results inside MonoDevelop
  • Create new databases
  • Create new tables, procedures and views
  • Alter procedures and views
  • Drop databases, tables, procedures and views
  • Rename databases, tables, procedures and views

Nunit

NUnit Library Project

NUnit Test Project

Tests pad

  • Shows the list of tests defined in every project of the solution
  • Automatically updated when the solution is compiled.
  • Allows setting different configurations of filters based on categories
  • Navigation to source code of test cases.

History panel

  • Keeps an history of tests runs.
  • Graphical view of successul runs and failures.
  • Comparison of tests runs. List of regressions.
  • Performance chart.

Test results pad

  • Allows filtering for successful, failed and ignored tests.
  • Filtering of test output.

Visual Studio Integration

Native support for Visual Studio 2005 projects

  • The following project types can be opened and modified:
    • C#
    • Visual Basic .NET
    • ASP.NET

Import VS 2003 project

  • Visual Studio 2003 projects can be imported and converted to the MonoDevelop or VS 2005 file formats.

Version Control

Subversion

  • Publish a project to a repository
  • Checkout a project from a repository
  • Add files or folders to version control
  • Remove files or folders from version control
  • Update, get changes from the repository
  • Log: visual display of changes done on a file or directory
  • Revert changes in a file or folder.
  • Status tracking: shows a list of all changes done in a folder, and allows entering a commit message for every change.
  • Commit changes: generates a consolided commit message from all documented changes.

ChangeLog integration

  • Generation of ChangeLog entries from commit messages.
  • Supports updating (or creating) multiple ChangeLog files in a single commit.
  • Allows defining commit policies for every project. Commit policies specify the location of ChangeLog files:
    • One single ChangeLog at the root project directory.
    • One ChangeLog per first-level subdirectory.
    • One ChangeLog in every directory.
    • User defined.

Documentation

  • Context sensitive help
  • Class documentation browser based on Monodoc

Add-in Management

  • Installation of add-in from on-line repositories.
  • Enable/disable add-ins.
  • Command line tool for managing add-ins: ‘mdtool setup’ and ‘mdtool gsetup’.
  • Based on Mono.Addins.

Project Templates

For all languages supporting CodeDOM

  • Empty project
  • Library
  • Web application
  • Empty web application.
  • NUnit library

CSharp

  • Gtk# project.
  • Empty project
  • Library
  • Web application
  • Empty web application.
  • NUnit library

Visual Basic

  • Console project
  • Empty project
  • Library
  • Web application
  • Empty web application.
  • NUnit library

Boo

  • Console project
  • Empty project
  • Library
  • Web application
  • Empty web application.
  • NUnit library

Java (IKVM)

  • Console project
  • Empty project
  • Library

Other projects

  • Translation project
  • Generic project
  • Blank solution

Command Line Tools

Project build tool

  • mdtool build

Project conversion tool

  • mdtool project-export

Makefile generator tool

  • mdtool generate-makefiles

Add-in setup utility

  • mdtool setup

Graphical add-in setup utility

  • mdtool gsetup