Practical .Net 2 and C# 2 by Patrick Smacchia