Mono (software)
Mono is the name of an open source project led by Novell (formerly by Ximian) to create an ECMA Standard compliant (Ecma-334 and Ecma-335), .NET compatible set of tools, including a C# compiler, a Common Language Runtime, and more, all to run on GNU/Linux, UNIX, Mac OS X, and Windows based computers.
While Microsoft made a version of .NET available for FreeBSD called Rotor, Microsoft's shared source license is not really Free Software and is insufficient for the needs of the community (it explicitly forbids commercial use).
A lot of discussion has taken place about whether Microsoft could destroy the Mono project with patents. The Mono team has acknowledged this problem in their FAQ:
- "The .NET Framework is divided in two parts: the ECMA/ISO covered technologies and the other technologies developed on top of it like ADO.NET, ASP.NET and Windows.Forms. Mono implements the ECMA/ISO covered parts, as well as being a project that aims to implement the higher level blocks like ASP.NET, ADO.NET and Windows.Forms."
- "The controversial elements are the ASP.NET, ADO.NET and Windows.Forms subsets. Those are convenient for people who need full compatibility with the Windows platform, but are not required for the open source Mono platform, nor integration with today's Mono's rich support of Linux. The Mono strategy for dealing with these technologies is as follows: (1) work around the patent by using a different implementation technique that retains the API, but changes the mechanism; if that is not possible, we would (2) remove the pieces of code that were covered by those patents, and also (3) find prior art that would render the patent useless."
For more information on their patent position, see http://www.mono-project.com/about/licensing.html.
Versions 1.0.6 (Stable) and 1.1.4 (Development) of Mono were released on February 17, 2005. Mono 1.0.6 is a maintenance release in the stable 1.0.x-series.
Focusing on new functions is the 1.1.x-series that eventually will lead to a 1.2 release.
The Mono VM contains JIT engines for a number of processors: x86, SPARC, PowerPC (in 32 bit mode) and x86-64 and SPARC for 64 bit modes. The VM can just-in-time compile or it can pre-compile the code to native code. For other systems not listed, an interpreter is used.
A similar project, called Portable.NET, is part of the DotGNU project.
History
Miguel de Icaza got interested in the .NET technology early 2000 and his company Ximian announced on July 19 2001 that they would start a open source-project to build what eventually would be Mono. On June 30 2004 Mono 1.0 was released.
This section needs expansion. You can help by adding to it. |
Sub-projects
Numerous sub-projects have been created to allow developers to use Mono in their development environment:
- gtk# are bindings which tie the Mono framework into the Gtk libraries.
- gecko# are bindings for embeding the layout engine used in Mozilla (Gecko).
Software developed with Mono
These are programs that uses Mono API and C#.
- Beagle is a desktop search tool.
- Bless is a hex editor for Mono/Gtk#.
- CDCollect is a CD catalog application.
- F-spot is a convenient photo management program developed by Novell.
- Galaxium is a MSN instant messenger (IM) client.
- GLyrics is a lyrics finder.
- iFolder 3 is a simple solution to sharing files and folders by using a simple peer-to-peer fashion or Novell's groupware server products.
- Imendio Blam! is a rss-news aggregator especialy good for reading planet-feeds like Planet Gnome.
- Monodevelop is a port of Sharpdevelop to Mono and gtk#. The goal for monodevelop is to be en IDE for creating Mono applications.
- Muine is a music player with a cool and inovative user interface developed by Jorn Baayen, founder of Rhythmbox.
- SkyNET is a sky chart application.
- Tomboy is a desktop note-taking application which uses a wikiwike-like linking system.
- Virtuoso Universal Server, from OpenLink Software, is a cross-platform hosting environment for Mono/.NET/C#, JSP, Perl, Python, PHP, and other runtime environments.