Advanced C# Programming by Paul Kimmel