As for the obfuscator issues. I am aware of the fairly easy to read nature of the IL code. Here at TAI software our client have code access anyways because they are given the source for their own versions of our applications.
We wrote the stuff in .NET and if they wanted to give us the gas and support their own applications inhouse so be it. We typically have something of a No Compete clause in our contracts but we have found that this fairly open nature between us and the client
provides for a warm and fuzzy feeling. Our clients continued relationships with us is one born from respect for a job well done at a reasonable cost, not one out of fear that tomorrow the lights are going out and they won't be able to turn them back on.
THis is however one of the reasons we avoid using third party controls mostly because of the fact that these controls do not usually share the same ideas on distribution, and we don't like telling the customer Oh By the way you have to buy XYZ as well as pay
us X amount.
We strive for the apps being supportable but not to easy to foul up. Overall though we have found that .NET is just what the doctor ordered.