I have written Murphy's Laws of .NET based on my experiences with .NET (using VB.NET & C#):
1. When coding .NET application, whatever happens, behave as though you meant it to happen.
2. When you get to the point where you really understand those new features of .NET, it's probably obsolete.
3. For every feature in .NET, there is an equal and opposite malfunction.
4. There will be six ways to do same thing in .NET, and you always discover that you have choose the worst one, but only at the final stage of project.
5. A .NET program will always do what you tell it to do, but rarely what you want to do.
6. He who laughs last probably uses simplest architecture of developing .NET application.
7. A complex .NET application that does not work is invariably found to have evolved from a simpler VB 6.0 system that worked just fine.
8. The number one cause of any .NET based problem is another .NET based solution.
Do you identify yourself somewhere in these laws?