Visual C# .NET (C#) is relatively easy to learn for anyone familiar with another object-oriented language.
Even someone familiar with Visual Basic 6.0, who is looking for an object-oriented language, will find C#
easy to pick up. However, though C#, coupled with the .NET Framework, provides a quick path for
creating simple applications, you still must know a wealth of information and understand how to use it
correctly in order to produce sophisticated, robust, fault-tolerant C# applications. I teach you what you
need to know and explain how best to use your knowledge so that you can quickly develop true C#
Idioms and design patterns are invaluable for developing and applying expertise, and I show you

how to use many of them to create applications that are efficient, robust, fault-tolerant, and exception-
safe. Although many are familiar to C++ and Java programmers, some are unique to .NET and its

Common Language Runtime (CLR). I show you how to apply these indispensable idioms and design
techniques to seamlessly integrate your C# applications with the .NET runtime, focusing on the new
capabilities of C# 3.0
Design patterns document best practices in application design that many different programmers

have discovered and rediscovered over time. In fact, the .NET Framework itself implements many well-
known design patterns. Similarly, over the past three versions of the .NET Framework and the past two

versions of C#, many new idioms and best practices have come to light. You will see these practices
detailed throughout this book. Also, it is important to note that the invaluable tool chest of techniques is
evolving constantly.