ESP Wiki is looking for moderators and active contributors!

.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 free software implementation of .Net and C#, developed by Novell with assistance from Microsoft.

Mono

What is it?

Mono is an implementation of the C# programming language and the Common Language Infrastucture as described by ECMA-334 / ISO/IEC 23270 and ECMA-335 / ISO/IEC 23271.

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: [...]

OIN protection

Mono (version 1.1.10) is one of the software packages that OIN members promise not to use their patents against.[2] Version 1.1.10 is from 2005.

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. Can you help? The consequences of this are not known. Information very welcome here: Novell#Does_this_weaken_OIN.3F


Microsoft probably didn't acquire any patents that would be dangerous to users of Mono. Firstly, Microsoft already had .Net patents, so if Novell had any, this would just be a surplus. Secondly, it seems that Microsoft's patent promise(s) would apply equally to newly acquired patents. For these two reasons, the newly acquired patents are only as dangerous as the patents that Microsoft already had, so they're just surplus.

Avoiding Mono

  • For note-taking, or a personal wiki, use GNote instead of Tomboy.
  • To manage and edit collections of photos, use Shotwell, Solang or GQview.

Avoiding C#: use Vala

There is a langauge called "Vala" which aims to have the utility of C#, and which was developed without Microsoft's involvement."Vala Tutorial". http://live.gnome.org/Vala/Tutorial. "Vala's syntax is an amalgam heavily based on C#'s." </ref>

However, since Vala is a "partial" implementation of C#/.NET, it is not covered by Microsoft's patent promises. Microsoft's patent promise only applies to "any implementation [that] is compliant with all of the required parts of the mandatory provisions of that specification". Some people suggest this makes Vala riskier than Mono.[3]

Vala, and applications written in Vala such as Shotwell, have been added to the Fedora GNU/Linux distribution.[4] Fedora rejects some package that carry a patent risk, so their acceptance of Vala indicates some confidence in it.

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. "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. [...]" 
  4. http://mether.wordpress.com/2010/04/13/fedora-13-desktop-features/