Mono
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.
Availability
Version: all
Newer versions are also available from the official Mono:Factory repository at OBS.
Version: non openSUSE
Latest versions for non-openSUSE distros can be found at the Mono Website
Stacks
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.
Microsoft-compatible stack
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.
- Transactions.
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.
Mono Stack
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.
Apache Integration
Mono's web stack is integrated with apache using the mod_mono package in openSUSE.
For details on configuring your system to handle ASP.NET applications using mod_mono, see the Mod_mono page in the Mono web site and the AutoHosting page.
Edit your configuration file, and add this line:
Include /etc/apache2/mod_mono.conf
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:
- Software packages written with Mono.
- Libraries and Components for Mono.
Languages
Mono has extensive support for many programming languages in addition to C# 1.0 and C# 2.0, support for these languages is available:
- Language support:
- C# Compiler support.
- Java support.
- JavaScript/ECMAscript support
- IronPython support.
- VisualBasic.NET