Wile developing MFC based applications, I used a lot of ASSERT statements. But when developing C# applications, I see that very few people are using this.
For me using ASSERT macros was a way of enforcing 'Design by Contract'. May be we should have a better mechanism in C#.
I have a few ideas on how to do this with .Net attributes. I will write bout this shortly.