It has been my experience as a .Net trainer and lead programmer that most people do not have trouble
picking up the syntax of the language. What perplexes and frustrates many people are the higher-level
concepts of object-oriented programming methodology and design. To compound the problem, most
introductory programming books and training classes skim over these concepts or, worse, don’t cover
them at all. It is my hope that this book fills this void. My goal in writing this book is twofold. First, to
provide you with the information you need to understand the fundamentals of programming in C#.
Second and more importantly, to present you with the information required to master the higher-level
concepts of object-oriented programming methodology and design.
This book provides the knowledge you need to architect an object-oriented programming solution
aimed at solving a business problem. As you work your way through the book, you will learn first how to
analyze the business requirements of an application. Next, you will model the objects and relationships
involved in the solution design. Finally, you will implement the solution using C#. Along the way, you
will learn about the fundamentals of software design, the Unified Modeling Language (UML), objectoriented
programming, C#, and the .NET Framework.
Because this is an introductory book, it’s meant to be a starting point for your study of the topics it
presents. As such, this book is not designed to make you an expert in object-oriented programming and
UML; nor is it an exhaustive discussion of C# and the .NET Framework; nor is it an in-depth study of
Visual Studio. It takes considerable time and effort to become proficient in any one of these areas. It is
my hope that by reading this book, your first experiences in object-oriented programming will be
enjoyable and comprehensible—and that these experiences will instill a desire for further study.