Mono is an open source implementation of the .NET framework and the ECMA-334 (C# language) and ECMA-335 standards (CLI virtual execution system).
Mono is both a runtime and a software development kit (SDK). As a runtime, it is used to run applications developed with numerous languages including C#, VisualBasic, Boo, IronPython, Nemerle, F# and more. As an SDK, Mono provides a C# compiler and various tools to support development of applications in the ECMA scope.
Mono 1.2 was released in November 2006, and it contains for the first time support for migrating Windows.Forms applications.
Mono can run a number of different applications belonging to either the Mono stack, or the Microsoft-compatible stack.
For more details about the top projects in Mono, see Mono Plans page.
The following are the major technologies supported by Mono:
- XML stack.
- ASP.NET for creating web applications, AjaxPro-based applications and SOAP-based web services.
- Windows.Forms an API for creating cross-platform GUI applications.
- ADO.NET libraries to develop database applications.
- Core cryptography.
Porting Software to Linux
In particular, developers interested in porting applications from Windows to Linux using Mono can use the Mono Migration Analysis tool (Moma). Moma can be used on Windows or Linux and operates on compiled binaries and generates a report detailing which APIs are already supported by Mono and also lists any potential incompatibilities that your software might have when executed with Mono.
Optionally, users of Moma can submit the reports to our centralized system, this is used to prioritize the work that must be done to implement missing functionality or improve our compatibility.
The Mono stack is a set of libraries that have been created specifically for Mono to take advantage of features available on Linux or Unix, and these include:
- Cecil For manipulating CIL images.
- Gtk# for creating Gtk applications for Linux and Windows.
- Tao libraries for doing OpenGL and media-rich applications.
- C5 Generic Collection Library.
- Mono.Posix provides access to Unix APIs.
- Mono.Cairo provides access to Cairo Graphics.
- Crimson for extended cryptography.
Mono's web stack is integrated with apache using the mod_mono package in openSUSE.
Edit your configuration file, and add this line:
Integrated Development Environment
MonoDevelop is an Integrated Development Environment (IDE) for C#, Boo, IronPython and Visual Basic developers that want to move their development environment to Linux.
Third Party Software
For information on third-party software, see:
Mono has extensive support for many programming languages in addition to C# 1.0 and C# 2.0, support for these languages is available: