Code Contracts In .Net 4.0 - My second thoughts

Well - I just watched this screencast which served as my intro to Code Contracts and now I'm not quite as siked on them:

http://www.dimecasts.net/Casts/CastFeedDetails/118

They're still pretty useful and I think the syntax beats having all the IF statements checking for null and other expectations as far as readability goes, but I really thought they would throw a full fledged compiler error in the case that a contract was violated, rather than just a warning.  I mean, it's better than nothing, but a lot of programmers ignore warnings (unless you've subscribed to the pragmatic programmers philosophy of treating warnings as errors).

I also don't particularly like the code you have to write to handle the contract check (it's in the SetUp of the test harness in the video).  It just seems like an added step, where you could just assert that the exception was thrown in the old piece of code, without having to write in that extra stuff in SetUp.

I'm still looking forward to hearing more about this as VS2010 and .NET 4.0 come closer to being released.  For me, the jury is still out on this one.

But the video did show me one cool thing, completely unrelated to code contracts.  In his test, he used NUnit syntax helpers which I thought made the test code more readable.  I'm going to have to look into those and once again renew my ongoing battle between MbUnit and NUnit.