Do you mean besides Code Contracts ? What is wrong with him?
Since code contracts support .NET 2.0 ... or so I think from this comment in the FAQ:
If you are not using it (for example, you are using .NET 2.0 or 3.5), then you are using the implementation of the contract class supplied in the Microsoft.Contracts.dll and Debug.Assert assemblies called with the corresponding line indicating that the type of failure was encountered
source
share