Almost all the .net assemblies can be de-compiled using Reflection .Which means that all .net products are open source since the code can be easily be used by other developers. Isnt there a way so that we can encrypt the codes (at least for some security logic) so that it cannot be easily cracked or misused.
Edit
Old question Is winforms .net really equal to open source? was edited considering comments regarding proper use of the word Open Source