Beginning C# 2008 Objects: From Concept to Code (Expert's Voice in .NET)