ESP Wiki is looking for moderators and active contributors!

.NET, C-sharp, and Mono

(Redirected from .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.

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

External links

About Mono

References

  1. http://www.microsoft.com/interop/cp/default.mspx
  2. http://www.openinventionnetwork.com/pat_linuxdefpop.html
  3. "Vala Tutorial". http://live.gnome.org/Vala/Tutorial. "Vala's syntax is an amalgam heavily based on C#'s." 
  4. "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. [...]"