I find this part funny:
"Any monkey can programme, it takes smarts to do a good design."
Good design isn't using a proxy pattern to achieve a scope of what members can/should be accessed by a receiver.
If you are wondering why people are getting arsey with you, its because your coming here with a "I know everything, but .NET does it weird (wrong) and so could you tell me how your little languages does it." attitude, and people find that insulting.