Essential C# 3.0 by Mark Michaelis