Gekko Software
Services
Portfolio
iPhone apps
Publications
Contact
Blog
About

Applied Microsoft .NET Framework programming

Author : Jeffrey Richter

Microsoft Press

ISBN-0-7356-1422-9

That .NET is object-oriented to the bare bone is richly illustrated by this book. After an introduction to the framework Jeffrey Richter takes you on a deep tour how to write classes, or types in the .NET jargon, for this framework. The book is divided in 5 parts.

  • Basics of the Microsoft .NET Framework

This part gives an overview of the .NET framework. Chapter 1 describes how code is JIT- compiled and  run by the CLR. Chapter 2 deals with the organization of code in assemblies. The whole chapter 3 is dedicated to shared assemblies, code which can be used by multiple applications.

  • Working with types and the Common Language Runtime

This part is dedicated to the fundamentals of .NET types. In chapter 4 you learn that all types inherit from the System.object class and are organized in namespaces. Chapter 5 deals with the difference between reference and value types and shows how .NET uses boxing to make everything a referenced object. Chapter 6 deals with the way objects are compared for equality in .NET and the way this can be influenced.

  • Designing types

This part deals with actually coding types. A type is the .NET name for a class and has a list of members, being the methods, properties, etc. Chapter 7 deals with all kinds of members a type can have and their visibility to the outer world. Everything is an object in .NET, including constants. Chapter 8 describes how to use a type to declare constants and compares them with fields, the dynamic variables in an object. In chapter 9 methods are described in full detail. A special kind of methods are the constructors of a class and methods which overload an operation on objects of the type. Chapter 10 describes properties, including properties with parameters like indexers. To conclude chapter 11 describes events. After explaining the basic event mechanism Jeffrey introduces a class to handle big lists of eventhandlers.

  • Essential types

This part deals with the functionality present in the FCL (Framework Class Libraries) to code your types. Chapter 12 is dedicated to text, it describes how a string behaves in .NET and describes the stringbuilder class to construct complex strings. Chapter 13 deals with enumerations. Every enumeration is a specific type in .NET, with all advantages like type safety. Chapter 14 deals with arrays, all arrays in .NET are based on the System.Array class in the FCL. Chapter 15 describes interfaces, it compares them to classes and shows how and when to use them. Chapter 16 deals with custom attributes, after an introduction on the many attributes found in the FCL it describes how to define and use your own attributes. Chapter 17 deals with the internals of callback functions. It shows how to customize the firing of callbacks using delegate objects.

  • Managing types

This part deals with the CLR runtime your .NET objects will live in.  Chapter 18 on exceptions describes in detail how to gracefully recover from any exception you can imagine. After reading chapter 19 on garbage collection you have a better idea how pooling in .NET works. The final chapter 20 describes how the CLR, the core of .NET, is started by windows and how this CLR loads an application. Bringing the book back to where it started.

Conclusion

I would recommend this book to every developer who wants to know  how .NET works and why it was designed the way it is. It is a long book, fully stuffed with an enormous amount of very useful information. For those who have a history in COM, I would compare it to "Inside OLE", 2nd edition. Likewise it can be quite a job to read it from a to z. Jeffrey's  style is sober, he does not try to be funny like Kraig Brockscmidt and sticks strictly to the subject and other common sense. Which makes the book easy to read and I would recommend you to read the entire book to enlighten you on .NET. And be sure to have it at hand afterwards as it is makes a good reference guide.


© Peter van Ooijen. Gekko Software, 2001-2011