.net defensive programming library