Science Fair Project Encyclopedia
Mono development platform
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/FAQ:_Licensing.
Versions 1.0.6 (Stable) of Mono was released on February 17, 2005 and 1.1.5 (Development) was released on March 24, 2005. Mono 1.0.6 is a maintenance release in the 1.0.x-series. Focusing on new functions is the 1.1.x-series that eventually will lead to a stable 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.
Miguel de Icaza got interested in the .NET technology as soon as the .NET documents came out in December 2000. Some early work were done in coorporation between Rhys Weatherley , Jay Freeman and Miguel de Icaza. On GUADEC 2001 Miguel de Icaza showed a demo for a few folks of their C# compiler and how it was able to parse itself.
Internally at Ximian there was much discussion about building tools to increase productivity: making it possible to create more applications in less time and therefore reduce time and cost of development. After a feasibility study Ximian finally decided to move staff from other projects and create the Mono team. The Mono team didn't have the strength to build a full .NET replacement on their own and on July 19 2001 the Mono open source project were announced at the O'Reilly conference.
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
- 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.
- With iFolder 3 by Novell you can share files across multiple computers and with other users through peer-to-peer or Novell's groupware server products.
- Imendio Blam! is a RSS-news aggregator especialy good for reading planet-feeds like Planet Gnome.
- Monodevelop is an IDE for creating Mono applications. It is a port of Sharpdevelop to gtk#.
- Muine is a music player with a cool and innovative user interface developed by Jorn Baayen who also created Rhythmbox.
- SkyNET is a sky chart application.
- Tomboy is a desktop note-taking application which uses a wiki-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.
- Mono homepage
- The Mono Community
- Mono Wiki
- Mono early history
- Running .NET on Linux or Windows
- MonoBrasil A Brazilian Mono WebSite
- MonoGermany A German Mono WebSite
The contents of this article is licensed from www.wikipedia.org under the GNU Free Documentation License. Click here to see the transparent copy and copyright details