I'm not a programmer, but I do the web development for a decent sized
software app community that uses C#. One of the things to be aware of
if you are worried about protecting your code is the fact that .NET is
very easy to decompile using any of several available online
decompilers. Here's a quote from an eBook from desaware.com that we
puchased concerning this issue:
www.desaware.com wrote:
Did you know that you actually ship your source code every time you
distribute a .NET assembly? And you may not even realize it. One of the
consequences of the architecture of .NET is that a great deal of
information about an assembly is kept with the assembly in a part of
the file called the Manifest. This information makes it remarkably easy
to not just recompile the assembly, but to decompile it, make
modifications, then recompile it. While such reverse engineering has
always been possible, it is extraordinarily easy with .NET - a
situation that is a significant problem to anyone distributing .NET
applications or components who is concerned about protecting their
intellectual property. |
And another quote [
here ]:
4guysfromrolla.com Decompiling .NET Assemblies wrote:
When you compile a .NET application, the source code is translated into MSIL in a fairly straightforward manner. That is,
there is a rough symmetry between a line of C# code, and the resulting MSIL. Since there is a rough mapping between high-level
code and MSIL, it is possible to take an assembly's MSIL and convert it back to equivalent C# or VB.NET code. In fact,
there are free programs that exist that do this very thing! |
Here is a link to a trial decompiler:
http://www.remotesoft.com/salamander
And a link to a popular free one called Reflector:
http://www.aisto.com/roeder/dotnet