C# 3.0 Unleashed: With the .NET Framework 3.5