RTM’d today: CLR via C#, Fourth Edition

Book cover for 9780735667457We’re happy to announce that CLR via C#, Fourth Edition  (ISBN 9780735667457) has shipped to the printer!

Written by programming expert Jeffrey Richter, a longtime consultant to the Microsoft .NET Framework team, this popular title has been fully updated for the .NET Framework 4.5 and Visual Studio 2012. Like the previous editions, this is an engaging read that provides deep insights into developing robust, reliable, and responsive apps and components. Anyone looking to sharpen and deepen their knowledge of C#—and take their career to the next level—should read this book. It’s also for those wanting a thorough understanding of the fundamentals of the .NET Framework architecture, runtime environment, and other key topics like asynchronous programming and the new Windows Runtime, as well as for programmers looking for pragmatic guidance on complex development concepts such as generics and threading.

You can download a couple of sample chapters here.

In today’s post we also share the contents and an excerpt from the Introduction.

Contents at a glance

PART I   CLR BASICS
CHAPTER 1   The CLR’s Execution Model
CHAPTER 2   Building, Packaging, Deploying, and Administering Applications and Types
CHAPTER 3   Shared Assemblies and Strongly Named Assemblies

PART II   DESIGNING TYPES
CHAPTER 4   Type Fundamentals
CHAPTER 5   Primitive, Reference, and Value Types
CHAPTER 6   Type and Member Basics
CHAPTER 7   Constants and Fields
CHAPTER 8   Methods
CHAPTER 9   Parameters
CHAPTER 10   Properties
CHAPTER 11   Events
CHAPTER 12   Generics
CHAPTER 13   Interfaces

PART III   ESSENTIAL TYPES
CHAPTER 14   Chars, Strings, and Working with Text
CHAPTER 15   Enumerated Types and Bit Flags
CHAPTER 16   Arrays
CHAPTER 17   Delegates
CHAPTER 18   Custom Attributes
CHAPTER 19   Nullable Value Types

PART IV   CORE FACILITIES
CHAPTER 20   Exceptions and State Management
CHAPTER 21   The Managed Heap and Garbage Collection
CHAPTER 22   CLR Hosting and AppDomains
CHAPTER 23   Assembly Loading and Reflection
CHAPTER 24   Runtime Serialization
CHAPTER 25   Interoperating with WinRT Components

PART V   THREADING
CHAPTER 26   Thread Basics
CHAPTER 27   Compute-Bound Asynchronous Operations
CHAPTER 28   I/O-Bound Asynchronous Operations
CHAPTER 29   Primitive Thread Synchronization Constructs
CHAPTER 30   Hybrid Thread Synchronization Constructs

Introduction (excerpt)

It was October 1999 when some people at Microsoft first demonstrated the Microsoft .NET Framework, the common language runtime (CLR), and the C# programming language to me. The moment I saw all of this, I was impressed and I knew that it was going to change the way I wrote software in a very significant way. I was asked to do some consulting for the team and immediately agreed. At first, I thought that the .NET Framework was an abstraction layer over the Win32 API and COM. As I invested more and more of my time into it, however, I realized that it was much bigger. In a way, it is its own operating system. It has its own memory manager, its own security system, its own file loader, its own error handling mechanism, its own application isolation boundaries (AppDomains), its own threading models, and more. This book explains all these topics (and more) so that you can effectively design and implement software applications and components for this platform.

It is October 2012 as I write this text, making it 13 years now that I’ve worked with the .NET Framework and C#. Over the 13 years, I have built all kinds of applications and, as a consultant to Microsoft, have contributed quite a bit to the .NET Framework itself. As a partner in my own company, Wintellect (https://Wintellect.com), I have worked with numerous customers to help them design software, debug software, performance-tune software, and solve issues they have with the .NET Framework. All these experiences have really helped me learn the spots that people have trouble with when trying to be productive with the .NET Framework. I have tried to sprinkle knowledge from these experiences through all the topics presented in this book.

Who This Book Is For

The purpose of this book is to explain how to develop applications and reusable classes for the .NET Framework. Specifically, this means that I intend to explain how the CLR works and the facilities that it offers. I’ll also discuss various parts of the Framework Class Library (FCL). No book could fully explain the FCL—it contains literally thousands of types now, and this number continues to grow at an alarming rate. Therefore, here I’m concentrating on the core types that every developer needs to be aware of. And although this book isn’t specifically about Windows Forms, Windows Presentation Foundation (WPF), Microsoft Silverlight, XML web services, Web Forms, Microsoft ASP.NET MVC, Windows Store Apps, and so on, the technologies presented in the book are applicable to all these application types.

The book addresses Microsoft Visual Studio 2012, .NET Framework 4.5, and version 5.0 of the C# programming language. Because Microsoft tries to maintain a large degree of backward compatibility when releasing a new version of these technologies, many of the things I discuss in this book apply to earlier versions as well. All the code samples use the C# programming language as a way to demonstrate the behavior of the various facilities. But, because the CLR is usable by many programming languages, the book’s content is still quite applicable for the non-C# programmer.