.NET, C-sharp, and Mono
.NET is a development platform, for which the main programming language is C#, both of which were developed by Microsoft.
Mono is a cross-platform, free software implementation of .NET and C#, developed by Novell (later Xamarin) with assistance from Microsoft.
Contents
Mono
What is it?
Mono is an implementation of the Common Language Infrastructure as described by ECMA-334 / ISO/IEC 23270 and ECMA-335 / ISO/IEC 23271. It includes the virtual machine runtime (bytecode interpreter) for executing .NET "assemblies", a C# compiler, the standard libraries defined by the specification, and other libraries that .NET programs depend on (such as cross-platform implementations of the Windows Forms APIs).
Microsoft eventually acquired the rights to Mono through its acquisition of Xamarin (see below) and maintained it in-tree as an alternative to the official modern .NET distribution. Later Microsoft donated the Mono project to Wine; since 2024 Mono development has been coordinated on infrastructure operated by Wine, with official Mono releases now in control of the Wine developers and maintainers and with Microsoft focusing on their own free licensed cross-platform .NET implementation developed in the open on GitHub.
What reassurances has Microsoft offered?
The ECMA-334 and ECMA-335 are covered by the Microsoft Open Specification Promise and the Microsoft Community Promise, which says:[1]
Microsoft irrevocably promises not to assert any Microsoft Necessary Claims against you for making, using, selling, offering for sale, importing or distributing any implementation, to the extent it conforms to one of the Covered Specifications, and is compliant with all of the required parts of the mandatory provisions of that specification ("Covered Implementation"), subject to the following: [...]
Following Microsoft's decision to relaunch/revamp the .NET ecosystem for modern .NET to be cross-platform and to do development in the open, Microsoft's .NET projects are available under the "MIT" (X11) License, which has an implicit patent grant. They've also given an explicit patent grant.
OIN protection
Mono is one of the software packages that OIN members promise not to use their patents against.[2]
In November 2010, Microsoft bought 882 patents from Novell (as a sub-part of a larger sale in which Attachmate bought most of Novell). This may have significantly weakened OIN at the time. However Microsoft subsequently bought Xamarin in 2016, added an explicit patent grant for the use of Mono, which it had come to own through the acquisition, and relicensed the entire project, including what were up to then proprietary extensions (such as the ARM64 port) under the free X11 ("MIT") License. Microsoft later joined OIN themselves in 2018, and the official .NET packages ("dotnet") were also added to the OIN's Linux System Definition.
.NET Micro Framework
The .NET Micro Framework (NETMF) is a now-discontinued implementation of the .NET runtime and a cut-down set of libraries tailored for resource-constrained devices circa 2007. NETMF was created by Microsoft and eventually freed under the Apache license, which has an explicit patent grant, though it has also been discontinued owing to the growing irrelevance of less powerful chips even for mobile devices, which are now capable of running the official mainline .NET implementation. The .NET Micro Framework GitHub repository ceased to be the subject of changes in 2016, and the project was marked archived in 2019.
Vala as an alternative to C#
There is a language called "Vala" which aims to have the utility of C#, and which was developed without Microsoft's involvement.[3]
It has been suggested that use of Vala was riskier than Mono, since Vala is not a .NET implementation and si not covered by Microsoft's patent promises, which only apply to "any implementation [that] is compliant with all of the required parts of the mandatory provisions of that specification".[4]
Related pages on ESP Wiki
- Comparing Java to .Net and C-sharp
- OOXML
- Harm to standards
- Patent promises
- Microsoft Open Specification Promise
- Free software harmed by software patents
- Campaigns to avoid patented ideas
External links
- The ISO standard defining C#
- .Net On Android Is Safe, Says Microsoft, 27 Aug 2010, Slashdot
About Mono
- Mono FAQ: Could patents be used to completely disable Mono?
- Mono-nono - a site documenting the problems with Mono. Archived from the original on November 10, 2011.
- Mono actually is dangerous
- 2008: Summary of Mono’s Danger to GNU/Linux and the Free Desktop Summary and list of many articles by BoycottNovel.com
- 2009: Why free software shouldn't depend on Mono or C#, by Richard Stallman
- (a week later, FSF reconfirmed this position, and it was discussed on Groklaw)
- "Five straightforward steps to vanquish Mono"
- Monomania, October 2009, Jeremy Allison looks at the patent problems
- How to Advocate for/against Mono Convincingly, October 2009, Chao-Kuei Hung challenges mono supporters with a vote, with interesting responses from mono supporters
- What’s the Problem? On Microsoft, Mono and Patents, Stephen O'Grady
- Even with its success, .NET causes some consternation, March 2010, quoting Mono's main developer Miguel de Icaza "Microsoft has shot the .NET ecosystem in the foot because of the constant threat of patent infringement that they have cast on the ecosystem [...] the .NET world has suffered by this meme spread by [Microsoft CEO Steve Ballmer] that they would come after people that do not license patents from them."
- How To Defend Against Software Patent FUD - arguing that patent worries about Mono are baseless, Jonathan Pryor
References
- ↑ http://www.microsoft.com/interop/cp/default.mspx
- ↑ http://www.openinventionnetwork.com/pat_linuxdefpop.html
- ↑ "Vala Tutorial". http://live.gnome.org/Vala/Tutorial. "Vala's syntax is an amalgam heavily based on C#'s."
- ↑ "Language Envy". http://linuxpatents.blogspot.com/2010/05/language-envy.html. "[Note: this article compares Vala features to the abstract of some Micrsoft patents, but this doesn't imply infringement. It's the claims that should be looked at.] A quick look through the patent system reveals Vala is infringing happily left and right on Microsoft property. [...]"