C# 3.0 Design Patterns: Use the Power of C# 3.0 to Solve Real-World Problems