Articles

The following articles have been written by members of the MonoDevelop community. New articles are greatly appreciated!

Our website is open source on GitHub. If you find errors or think a page could be improved, just click the “Edit page on GitHub” link beneath the page title. See contributing to the website for more details.

Building MonoDevelop

Development: Getting Started
It’s relatively easy to get started working on MonoDevelop, but this article aims to make it easier to get off the ground.

Environment Variables
An in-depth explanation of all environment variables that can be altered in order to simplify the development of MonoDevelop.

Building MonoDevelop from source
Basic steps for building MonoDevelop.

Writing Add-ins

Creating a Simple Add-in
This walkthrough will guide you through the process of creating a simple add-in, introducing the fundamentals of the add-in system and some of MonoDevelop’s core APIs.

Creating a Simple project template using Add-ins
This walkthrough will guide you through the process of creating a simple project template using add-ins (in Visual Studio for Mac).

Walk through: Extending the Project Pad
This tutorial explains how to implement an addin that extends the project pad. The idea for this extension is to be able to show the classes that are implemented in a file as child nodes of that file in the project pad.

How to extend the Project Model
This article explains how to extend the project model to support new types of projects or to add additional information to existing project types.

Syntax mode definition
This article explains how to create a syntax highlighting mode for a new file type.

Editor color scheme definition
This article explains how to create a syntax highlighting mode for a new file type.

Publishing an Add-in
This article explains how to publish an add-in to make it available to MonoDevelop users.

Introduction to Mono.Addins
This article explains the library basics and some examples. Mono.Addins is the add-in engine used by MonoDevelop.

Mono.Addins Reference Manual
An in-depth explanation of all Mono.Addins features. Mono.Addins is the add-in engine used by MonoDevelop.

MonoDevelop API

API Overview
An overview of the MonoDevelop API, explaining where to find the most important services and how to use them.

Using the Data Serializer
A programming guide of the generic data serializer provided by the MonoDevelop API.

The String Parser Service
A programming guide for the String Parser Service.

Logging
MonoDevelop’s logging service provides a configurable way for developers to log debug and error messages reported by Addins.

Project Templates
A guide on how to integrate with the New Project dialog and implement project template wizard pages.

MonoDevelop Design and Architecure

Architecture Overview
This document is an overview of the new assembly organization of MonoDevelop.

The Project Model
This document describes the MonoDevelop Project Model.

Add-in Extension Tree Reference
This document shows the complete extension tree available to add-in developers.

Error and Exception Handling
This document explains how to handle errors and how to show them to the user.

The Command System
This article explains how MonoDevelop’s Command System works, and how can you take advantage of it for writing your add-ins.

Thread Management in MonoDevelop
This article explains the some basic rules that every addin developer should follow regarding thread management in MonoDevelop.

Translations
MonoDevelop has chosen to use gettext instead of resources for translating into other languages. This allows us to take advantage of GNOME translators’ familiarity with gettext.

Refactoring
This article explains the MonoDevelop refactoring infrastructure. It helps writing own refactorings.

The Toolbox
MonoDevelop has some infrastructure for supporting visual designers, such as the ASP.NET and Gtk# designers. Some of this — the property grid and toolbox — is now being used elsewhere in MonoDevelop.

Obsolete Articles

In the Obsolete Articles section you’ll find some outdated articles which are kept just as a reference.