The guys at SecuredDimentions have something new up their sleeve. If you don't know them, it's because they are relatively new on the market. What they've designed is what seems to be a very good way to prevent code-theft, i.e. someone decompiling your .NET applications, without the need to use code obfuscators. They are actually offering this as part of a suite of licensing service, all underlined with their technology to protect .NET code.
Technically, it's a bit hard to explain, but they are able to do something called "code partitioning" on selected parts of the code base and "decrypt" them on demand, using their own virtual runtime which sits on top of the CLR. This also allows them to detect whenever "important" code was reached and do anything about it (like a popup dialog for example).
The solution is still not as perfect as it could be. Usability wise, it's OK, but could be much better. Performance wise, it seems to do OK compared to unprotected code, but you still wouldn't want to protect *all* your code at the same time.
This is one of the most important technologies that are going to thrive in the coming years, when people will start realizing the importance of keeping their code safe, as they release more and more applications into the wild.
I've seen many "solutions" to the code protection scheme, but this one seems like it actually works. I believe in it to the degree that I agreed to endorse their product publicly.
So, if you actually go to their site, and end up buying one of their products, mention my name and you'll get 10% off the price(I also get a pittance).
They are arranging a small conference this month (Jan 25th) at the Daniel Hotel in Hertzlia along with the Emerset company about code security. I'm not sure announcing such as conference so quickly is the best idea, but nevertheless, it's free to attend (half day until 13:00 I think). A link to the conference announcement should be on their site soon.