Background
.NET assemblies contain allot of imformation, so much so that it is very easy for someone to reproduce the original source code of the application. Information such as method names, types, member variables and method names can “easily” be extracted from the assembly. Have a look at Reflector (http://www.aisto.com/roeder/dotnet/), it is a class browser for .NET components.
Code Protection
A popular method that application developers use to protect their source code is to use a obfuscator. Over the past few weeks I have been playing with an application that helps secure your source code, Xenocode.
XenoCode
This product helps to protected your .NET assembly from reverse engineering, tampering, decompiliation and even goes as far as to optimize your binaries.
The installation of Xenocode was very straightforward. The GUI is fairly intuitative, here is the main screen.
The first thing that I liked about Xenocode is that it was built with user friendliness in mind. To protect you code, you have to tell Xenocode the type of application its going to work with, and to make things simple it comes with a list of preset configuration settings. For example, you can set the preset selector to Aggressive, Conservative, etc.
The GUI also allows you to nail down exactly which classes, fields, properties, events and method names you want to scramble, along with which strings you intend on encrypting.

Features:
Code Protection: symbol obfuscation, control of flow obfuscation, ability to crash ILDASM, assembly watermarking and debug data removal.
Application Deployment: assembly linking, .NET framework embedding, assembly compression.
Assembly Optimization: Code profiling, duplication literal elimination, metadata-only assemblies.
For a full list of features, see: http://www.xenocode.com/en/Product-Features.aspx
Trial Download
You can get your very own full-functionaly (14-day) trial copy of Xenocode Enterpirse edition here: http://www.xenocode.com/en/Product-Trial.aspx