By design .NET embeds rich Meta data inside the executable code using MSIL. Any one can easily decompile or disassemble your DLL using tools like ILDASM (owned by Microsoft) or Reflector for .NET which is a third party.
Secondly there are many third party tools which make this decompiling process a click away. So any one can easily look in to your assemblies and reverse engineer them back in to actual source code and understand your logic which can make it easy to crack your application.
The process by which you can stop this reverse engineering is using “obfuscation”.
It’s a technique which will foil the decompilers. There are many third parties (Dotfuscator, XenoCode, Demeanor for .NET, Crypto Obfuscator, etc...) which provide an obfuscation solution. When evaluating obfuscators, they are not all equal in quality.
Most do not handle XAML well if at all. Also, some products are more sophisticated than others with basic obfuscation as well as string encryption. Cheaper is not always better.
Microsoft includes Dotfuscator Community Edition with Visual Studio.NET but it may not be sophisticated enough for your application.