Mono (software) and Talk:Luciano Leggio: Difference between pages

(Difference between pages)
Content deleted Content added
No edit summary
 
Jmm6f488 (talk | contribs)
m rated
 
Line 1:
{{WPBiography|class=B|priority=|living=no|listas=Leggio, Luciano}}
{{Infobox_Software|
{{WP Criminal|class=b|importance=mid}}
name = Mono
I read in some newspaper a few months ago (I can't remember which one I'm afraid) that Leggio had since died. It's possible - he'd be about 80 now - but I can't find any reference to it one the internet. If anyone knows if it's true I'd be grateful, just to round off this article. Any other info on him would be useful too. That's the problem with writing articles about Mafia guys, especially Sicilian ones - they're so damn secretive about everything! :) [[User:Robert Mercer|Robert Mercer]] 20:41, 23 Feb 2005 (UTC)
|logo=[[Image:Mono project logo.png|25px]]
|screenshot =
|caption =
|developer = [[Novell,_Inc.|Novell]]
|latest_release_version = 1.1.13
|latest_release_date = [[January 11]], [[2006]]
|operating_system = [[Cross-platform]]
|genre = [[Platform (computing)]]
|license = [[GNU General Public License|GPL]], [[GNU Lesser General Public License|LGPL]] and [[MIT License|MIT]], or [[dual license]]
|website = [http://www.mono-project.com/ http://www.mono-project.com/]
}}
'''Mono''' is a project lead by [[Novell,_Inc.|Novell,Inc.]] (formerly by [[Ximian]]) to create an [[Ecma International|ECMA]] Standard compliant ([http://www.ecma-international.org/publications/standards/Ecma-334.htm Ecma-334] and [http://www.ecma-international.org/publications/standards/Ecma-335.htm Ecma-335]), [[.NET Framework|.NET]] compatible set of tools, including among others a [[C Sharp|C#]] [[compiler]] and a [[Common Language Runtime]]. Mono can be run on [[Linux]], [[FreeBSD]], [[Unix|UNIX]], [[Mac OS X]], and [[Microsoft Windows|Windows]] based computers.
 
<!--
BEFORE CHANGING THIS!!!!
If any information below is PROVABLY, FACTUALLY INCORRECT, then you may remove it AFTER DISCUSSING ON THE TALK PAGE! Otherwise, leave it well enough alone!
vvvvv -->
Mono is [[dual license]]d by Novell, similar to other products such as [[Qt (toolkit) | Qt]] and the [[Mozilla Application Suite]]. Mono's C# compiler and tools are released under the [[GNU General Public License]] (GPL), the runtime libraries under the [[GNU Lesser General Public License]] (LGPL) and the class libraries under the [[MIT License]]. These are all [[open-source license]]s and hence Mono is [[open-source software]]. If you want to contribute [[source code]] to Mono you have to sign a copyright assignment giving Novell the right to relicense the code under other licensing terms, thus preserving Novell's ability under the dual license to commerically license Mono.{{ref|license}}
<!-- ^^^^^
BEFORE CHANGING THIS!!!!
If any information below is PROVABLY, FACTUALLY INCORRECT, then you may remove it AFTER DISCUSSING ON THE TALK PAGE! Otherwise, leave it well enough alone!
-->
 
[[Microsoft]] has a version of .NET available for [[FreeBSD]], Windows and Mac OS X called the [[Shared Source Common Language Infrastructure|Shared source CLI]]. Microsoft's [[shared source]] license is not open-source software and may be insufficient for the needs of the community (it explicitly forbids commercial use). The Mono project has many of the same goals as the [[Portable.NET]] project.
 
The Mono VM contains [[just-in-time compilation]] (JIT) engines for a number of processors: [[x86]], [[SPARC]], [[PowerPC]] (in 32 bit mode) and
[[AMD64|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.
 
==History==
In April 2001 ECMA published the missing file format and at [[GUADEC]] ([[April 6]] - [[April 8]] [[2001]]), de Icaza demonstrated the features of his compiler (which by then 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, which clearly stated that it was possible to build the technology, Ximian finally decided to move staff from other projects and create the Mono team. The Mono team didn't have the manpower to build a full .NET replacement on their own and on [[July 19]] [[2001]] the Mono open source project was announced at the [[O'Reilly Media|O'Reilly]] conference.
 
Almost three years later, on [[June 30]] [[2004]] Mono 1.0 was released.
 
==Framework Architecture==
[[Image:Mono architecture.png|400px|right]]
===Class Library===
The '''class library''' provides a comprehensive set of facilities for application development. They are primarily written in C#, but thanks to the Common Language Specification they can be used by any .NET language. The class library is structured into Namespaces, and deployed in shared libraries known as Assemblies. When we speak of the .NET framework, we are primarily referring to this class library.
 
====Namespaces and Assemblies====
'''Namespaces''' are a mechanism for logically grouping similar classes into a hierarchical structure. This prevents naming conflicts. The structure is implemented using dot-separated words, where the most common top-level namespace is System, such as System.IO and System.NET (a complete list can be found in [http://www.go-mono.com/docs/ Mono Documentation]). There are other top-level namespaces as well, such as Accessibility and Windows are examples. New namespaces can also be created prefixed with the organization.
 
'''Assemblies''' are the physical packaging of the class libraries. These are .dll files, just as (but not to be confused with) Win32 shared libraries. Examples of assemblies are mscorlib.dll, System.dll, System.Data.dll and Accessibility.dll. Namespaces are often distributed among several assemblies and one assembly can be composed of several files.
 
===Common Language Infrastructure and Common Language Specification===
The '''Common Language Infrastructure''' (CLI), or more commonly known as the Common Language Runtime, is implemented by the Mono executable. The runtime is used to execute compiled .NET applications. The common language infrastructure is defined by the ECMA standard ECMA-335. To run an application, you must invoke the runtime with the relevant parameters.
 
The '''Common Language Specification''' (CLS) is specified in chapter 6 of ECMA-335 and defines the interface to the CLI, such as conventions like the underlying types for Enum. The Mono compiler generates an image that conforms to the CLS. This is the Common Intermediate Language. The Mono runtime takes this image and runs it. The ECMA standard formally defines a library that conforms to the CLS as a framework.
 
===Managed and Unmanaged Code===
Within a native .NET/Mono application, all code is [[managed code|managed]]; that is, it is governed by the CLI's style of memory management and thread safety. .NET/Mono applications can use legacy code, which is referred to as unmanaged, by using the System.InterOpServices libraries to create C# bindings. Many libraries which ship with Mono use this feature of the CLI, such as Gtk#.
 
===Related projects===
There exist lots of projects related to Mono that extend Mono and allows developers to use Mono in their development enviroment. These projects include:
*[http://www.cocoasharp.org/ Cocoa#], wrappers around the native Mac OS X toolkit ([[Cocoa (API)|Cocoa]]).
*Gecko#, bindings for embedding the layout engine used in Mozilla ([[Gecko (layout engine)|Gecko]]).
*[[Gtk Sharp|Gtk#]], C# wrappers around the underlying [[GIMP Toolkit|GTK+]] libraries, written in [[C programming language|C]].
*[[Tao (software)|Tao]], a collection of graphics and gaming bindings
 
==Mono and Microsoft's patents==
A lot of discussion has taken place about whether Microsoft could destroy the Mono project with patents. The problematic parts are not the core technologies submitted to the ECMA or the Unix/Gnome-specific parts. The problematic parts are technologies developed by Microsoft on top of the .NET Framework, such as [[ASP.NET]], [[ADO.NET]] and [[Windows Forms]]. These technologies are today not fully implemented in Mono and not required for developing Mono-applications, but required for compability with the Windows platform. The Mono team aims to cover these technologies and have a three-step strategy to deal with them:
# Implement it by using another implementation technique and hence work around the patent.
# Remove the patent covered code
# Find [[prior art]] and make the patent invalid.
 
Of course, the first option is not always available. Some problems, such as those related to interoperability and communication, may only have a single solution. For this same reason, although the second option is always available, it may result in the development of a product which will not be useable as a .NET replacement. The third option is expensive, may not be possible, and involves a degree of luck (as in all patent interpretation suits).
 
{{sect-stub}}
 
==Software developed with Mono==
[[Image:F-Spot screenshot.png|thumb|F-Spot photo management program]]
[[Image:Muine.png|thumb|Muine music player]]
The following are programs that use the Mono [[application programming interface|API]] and C#.
*[[Banshee (music player)|Banshee]] is a music management and playback software for [[GNOME]]
*[[Beagle (software)|Beagle]] is a [[desktop search]] tool.
*[[Blam!]] is a [[RSS (file format)|RSS]]-[[news aggregator]] especially good for reading [http://planetplanet.org/ planet]-feeds like [http://planet.gnome.org/ Planet Gnome].
*[http://home.gna.org/bless/ Bless] is a [[hex editor]].
*[http://cdcollect.sourceforge.net/index.php CDCollect] is a [[CD]] [[catalog]] application.
*[[F-Spot]] is a convenient photo management program developed by [[Novell,_Inc.|Novell]].
*[http://galaxium.sourceforge.net/index.html Galaxium] is a [[MSN]] [[instant messenger]] (IM) client.
*[http://zapdos.codemonkey.cl/glyrics/ GLyrics] is a [[lyrics]] finder.
*[http://gpremacy.nongnu.org/ Gpremacy] is an implementation of the [[board game]] Supremacy written in Mono/Gtk#.
*[[iFolder|iFolder 3]] (by Novell) lets you share files across multiple computers and with other users through [[peer-to-peer]] or Novell's groupware server products.
*[http://www.icebreaker.net/mindfire MindFire] is a cross-platform ebook reader designed to facilitate [[Rapid_Serial_Visual_Presentation|speed reading.]]
*[[MonoDevelop]] is an [[Integrated development environment|IDE]] for creating Mono applications. It was originally a port of [[SharpDevelop]] to Gtk#, but is today developed on its own. It is not currently available for Windows.
*[[Muine]] is a music player with a [[user interface]] designed to be intuitive, developed by Jorn Baayen who also worked on [[Rhythmbox]].
*[[Second Life]], the virtual world created by [[Linden Lab]], will begin (1st Quarter 2006) compiling all of the scripts in their own [[Linden Scripting Language]] (LSL) to CIL. They will use an embedded Mono runtime to execute the CIL.
*[http://sky-net.sourceforge.net/screenshots.php SkyNET] is a [[sky]] [[chart]] application.
*[http://smuxi.meebey.net smuxi] is an IRC client for advanced users written with Gtk#/Gnome#, [http://smartirc4net.meebey.net SmartIrc4net] and [http://nini.sourceforge.net Nini].
*[[Tomboy (software)|Tomboy]] is a desktop note-taking application which uses a [[Wiki|wiki-like]] linking system.
*[http://virtuoso.openlinksw.com/ Virtuoso Universal Server], from [http://www.openlinksw.com/ OpenLink Software], is a cross-platform hosting environment for Mono/.NET/C#, [[JavaServer Pages|JSP]], [[Perl]], [[Python programming language|Python]], [[PHP]], and other runtime environments. ''(Virtuoso is commercial software, starting at $5000)''
 
==See also==
*[[IKVM.NET|IKVM]]
*[[IronPython]]
*[[Monoppix]]
 
==Notes==
#{{note|license}}For more information about the licensing, see [http://www.mono-project.com/FAQ:_Licensing#Licensing Mono FAQ: Licensing]
 
==References==
*''This article incorporates text from Mono's [http://www.mono-project.com/ homepage], which is in the [[GNU Free Documentation License]].''
*{{web reference
| author= [[Miguel de Icaza]]
| publishyear= [[October 13]] [[2003]]
| url= http://lists.ximian.com/archives/public/mono-list/2003-October/016345.html
| title= <nowiki>[Mono-list] Mono early history.</nowiki>
| format= mailing list
| date= December 6
| year= 2005
}}
*{{web reference
| author= [[Eugenia Loli-Queru]]
| publishyear= [[February 22]] [[2005]]
| url= http://www.osnews.com/story.php?news_id=9780
| title= Mono Applications? Aplenty!
| publisher= [[OSNews]]
| date= December 6
| year= 2005
}}
 
==External links==
*[http://www.gotmono.com GotMono?,] Mono community homepage
*[http://www.nabble.com/Mono-f1367.html Mono Forum]
*[http://mono-live.org/ Mono Live], LiveCD website
*[http://bdn.borland.com/article/0,1410,32056,00.html Running .NET on Linux or Windows]
*[http://www.nabble.com/Ximian-f1406.html Ximian Forum]
*[http://linux.slashdot.org/article.pl?sid=06/01/10/139255&tid=131&tid=106 Slashdot: Fedora Core 5 includes Mono]
*[http://www.novell.com/ Novell, Inc.]
 
===International===
*[http://pascalfresnay.free.fr/monoweb/wiki/ Mono France], A French Mono WebSite
*[http://monobrasil.softwarelivre.org MonoBrasil], A Brazilian Mono WebSite
*[http://www.monocolombia.com/wiki/doku.php MonoColombia], A Colombian Mono WebSite
*[http://mono-project.de MonoGermany], A German Mono WebSite
*[http://www.monohispano.org MonoHispano], A Spanish Mono community
 
 
[[Category:Computing platforms]]
[[Category:Free software]]
[[Category:GNOME]]
[[Category:Projects using Subversion]]
 
[[de:Mono-Projekt]]
[[es:Proyecto Mono]]
[[fr:Mono (informatique)]]
[[nl:Mono (ontwikkelplatform)]]
[[pl:Mono]]
[[pt:Mono (projeto)]]
[[ru:Mono]]
[[vi:Mono]]