Question: iam developing WPF product. I want to protect my .net source code from reverse enginering 
Please advice me

Answer: 
You would use an obfuscator. There are a lot of them on the market, just google.  

For example, Visual Studio used to ship with the [Dotfuscator Community Edition](http://www.preemptive.com/products/dotfuscator). I never used it, so I can't say anything about its quality.  

This blog post shows the possible ways to try to prevent reverse engineering: <http://blogs.msdn.com/b/ericgu/archive/2004/02/24/79236.aspx>
In the end it will always be possible to reverse engineer the code. Obfuscation can help but your code will never completely be protected.

The only way to fully protect the code is by not deploying it but instead keeping it on a server.