Hi,
this a really hard question in .NET programming. One of the most important things you can do is "obfuscate" your assemblies.
If you're using Visual Studio Standard or higher you can take advantage from the benefits of a tool called Dotfuscator Community Edition, which obfuscates assemblies' IL code to make it unreadable.
There are a lot of obfuscation tools, but most of them are not free. A good free tool over than Dotfuscator is Skater Light edition, which you can find here:
http://rustemsoft.com/SkaterLight.htm
Hope this helps