| I l@ve RuBoard |
|
About This BookI try very hard to make a book readable and accessible to a wide array of readers, but invariably, my terse writing style tends to make a "Don Box book" a challenge to get through. Experience has shown me that I am horrible at writing tutorials or primers. What I can do reasonably well is convey how I see the world in book form. To that end, it is not uncommon to need to read a Don Box book more than once to get the intended benefits. As the previous paragraph implied, this book is by no means a tutorial. If you try to learn .NET Framework programming from a standing start using this book, the results may not be pretty. For readers looking for a good tutorial on .NET programming techniques or the C# language, please read Stan Lippman's C# Primer (Addison Wesley, 2002) or Jeffery Richter's Applied .NET Framework Programming (Microsoft Press, 2002) before taking on this book. This book is divided into two volumes. Volume 1 focuses on the Common Language Runtime. Volume 2 will focus [ST3]on XML Web Services. Although the two technologies share a fair number of core concepts, the thought of covering them both in a single book made my head spin. This book was written against Version 1 of the CLR. Some of the internal techniques used by the CLR may evolve over time and may in fact change radically. In particular, the details of virtual method dispatch are very subject to change. They are included in this book largely as an homage to COM developers wondering where the vptr went. That stated, the basic concepts that are the focus of this book are likely to remain stable for years to come. Throughout the book, I use assertions in code to reinforce the expected state of a program. In the CLR, assertions are performed using System.Diagnostics.Debug.Assert, which accepts a Boolean expression as its argument. If the expression evaluates to false, then the assertion has failed and the program will halt with a distinguished error message. For readability, all code in this book uses the short form, Debug.Assert, which assumes that the System.Diagnostics namespace prefix has been imported. My perspective on .NET is fairly agnostic with respect to language. In my daily life, I use C# for about 50 percent of my CLR-based programming. I use C++ for about 40 percent, and I resort to ILASM for the remaining 10 percent. That stated, most programming examples in this book use C# if for no other reason than it is often the most concise syntax for representing a particular concept or technique. Although some chapters may seem language-focused, none of them really is. The vast majority of this book could have used C++, but, given the tremendous popularity of C#, I elected to use C# to make this book as accessible as possible. This book focuses on the Common Language Runtime and is divided into 10 chapters:
|
| I l@ve RuBoard |
|