Preface

Why I Wrote This Book

In 2002, Microsoft Research hosted an international meeting in Cambridge, U.K., to reveal its Rotor system, which would bring C# and .NET to non-Windows programmers. Once back home, writing software, papers, and a book on the topic, I came to realize that we had witnessed the beginning of a real revolution in programming. Since the advent of Java in 1996, programming had become platform-independent: with Java byte-code, programs could run anywhere. This independence, however, extended only to programs written in the Java language. .NET, on the other hand, was language-independent: it allowed programs in different languages to interact, but, up until that day, only on Windows.

In the ensuing five years, new platforms have come to support .NET (Mono, for example) and new hardware has come to support Intel chips (on which Windows runs). The result is that .NET now runs almost anywhere. Consequently, expertise in C# programming is a very transportable skill to acquire. But C# keeps improving as a language, and we are currently at the beginning of a new leap forward into C# 3.0, which offers enormous benefits in terms of productivity and ease of programming. Having already written an introductory C# text in 2003,[1] I realized that the benefits of the new features announced now in 2007, four years later, would be felt at a much more advanced level of software development. I wanted to write a second book that introduced C# 3.0 to developers who already knew the basic language—but what would be the formula that could introduce a language and address a reader's needs of precision, examples, and a heavy dose of reality?

Enter design patterns. Design patterns encapsulate common, accepted, and proven ways of using language features together. They form a level of discourse at a higher plane, and they exercise and promote good programming practices. However, there is an element of unreality surrounding design patterns, and one gets the impression that they are more talked about than used. I wanted to change that and make design patterns really accessible to ordinary programmers, using the best language for them: C# 3.0. The result is this book.



[1] * Judith Bishop and Nigel Horspool, C# Concisely (Boston, MA: Addison-Wesley, 2003).

Get C# 3.0 Design Patterns now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.