Foundations of Object-oriented Programming Using .net 2.0 Patterns, Foundations Series