At least as long as programming has existed, people have tried to be tricky. I'm sure we have all tried to architecture something tricky only to have to revert our project and sheepishly go with a simpler solution. Whenever I look at something that isn't a tricky optimization, it's almost always a tricky way to waste cpu cycles. The lure of trickyness we'll be looking at is validation in ASP.NET MVC. Let's look at 3 methods of validation.