Defensive Programming, MVC, and DDD