C# implementation of Design Patterns.