The book is structured around three major topics, as follows:
Before we dive into the how-to's of object modeling and the details of OO programming in C#, it's important that we all speak the same language with respect to objects. Part One, consisting of Chapters 1–7, starts out slowly, by defining basic concepts that underlie all software development approaches, OO or otherwise. But, the chapters quickly ramp up to a discussion of advanced object concepts so that, by the end of Part One, you should be "object savvy."
In Part Two—Chapters 8–12 of the book—we focus on the underlying principles of how and, more importantly, why we do the things that we do when we develop an object model of an application—principles that are common to all object modeling techniques. It's important to be conversant in UML notation, as this is the industry standard and is most likely what the majority of your colleagues/clients will be using, and so we teach you the basics of the UML and use the UML for all of our concrete modeling examples. Using the modeling techniques presented in these chapters, we'll develop an object model "blueprint" for a Student Registration System (SRS), the requirements specification for which is presented at the end of this introduction.
In Part Three of the book—Chapters 13–17—we illustrate how to render the SRS object model that we've developed in Part Two into a fully functioning C# application, complete with a graphical user interface and a way to persist data from one user logon to the next. All of the code examples that we present in this section are available for download from the Apress web site—http://www.apress.com—and we strongly encourage you to download and experiment with this code. In fact, we provide exercises at the end of each chapter that encourage such experimentation. The requirements specification for the SRS is written in the narrative style with which software system requirements are often expressed. You may feel confident that you could build an application today to solve this problem, but by the end of this book you should feel much more confident in your ability to build it as an object-oriented application. Three additional case studies—for a Prescription Tracking System, a Conference Room Reservation System, and an Airline Ticketing System, respectively—are presented in Appendix B; these serve as the basis for many of the exercises presented at the end of each chapter.
To round out the book, we've included a final chapter titled "Next Steps," which provides suggestions for how you might wish to continue your object-oriented discovery process after finishing this book. We furnish you with a list of recommended books that will take you to the next level of proficiency, depending on what your intention is for applying what you've learned in this book.
Note boxes reflect important background information.
As for styles in the text
When we introduce important words, we highlight them.
We show filenames, URLs, and code within the text like so: WriteObject()
Example code is shown as follows:
// Bolding is used to call attention to new or significant code: Student s = new Student(); // whereas unbolded code is code that's less important in the // present context, or perhaps has been seen before. int x = 3;