.NET is a platform independent framework. The major
advantage that any .Net developer can avail is the MSIL (Microsoft Intermediate
Language). Any .NET source code will be converted to MSIL. These are CPU
independent instructions. The .NET assemblies contain MSIL as well as the
metadata about it. At runtime, these MSIL instructions get converted to the CPU
dependent code by JIT (Just in time). Every .NET developer knows the advantages
of this architecture, but the disadvantage is that the MSIL and metadata in the
assembly provide enough information to recover the original source code.
Developers used to spend years making good bug free applications and it is
obvious that they really do not want to make their work public.