Development Environments

The Mono project focuses on compilers and runtime libraries and does not directly provide an IDE. Developers must choose from a series of available tools the one best suited for them.


MonoDevelop is a Mono/C# Integrated Development Environment for Windows, Linux and macOS. It parses your C# and VB programs as you type them and is able to provide contextual completion of methods.

In late 2003, a few developers from the Mono community began migrating SharpDevelop, a successful .NET open source IDE from System.Windows.Forms on Windows to Gtk# on Linux. A rebranded version named Xamarin Studio is sold by the commercial sponsor behind the project with proprietary iOS/Android addins.

Unix tools

As you might expect, there are many development tools available to C# developers, ranging from bare-bones text editors to complex integrated development environments.

Using Emacs or Vim

Emacs and Vim are general purpose text editors, not IDEs designed for use with .NET and C#. However, you can use them to write software in nearly any language.

For Emacs, you will want to use the C# major mode available at to handle syntax coloring and proper indentation. You may want to install the OmniSharp plugin for autocompletion and various other features.

Vim supports syntax highlighting for C#. For autocompletion, the OmniSharp plugin is also available.


The Eclipse IDE can be used to edit C# code, but lacks completion of methods. The emonic project is not maintained anymore.