Essential C# 40 by Mark Michaelis