Because of the nature of .NET, unprotected .NET assemblies can be decompiled easily by advanced programmers and crackers which makes it more easy to detect and remove the protection routines from your application. Therefore it is necessary to protect the code.
Here are some hints:
Furthermore, we are offering consulting and implementation support on request - please contact us to discuss your requirements.