I've read an article "Code Contracts in .NET" by cilu recently, but I'dont understood all, so I'd ask few more question:
1. What is the difference between code contracts and assertions (e.g. Debug.Assert)?
2. Are they enforced by compiler in some way, or work only in run-time?
3. What is the main benefit?