Download PDF version of this article PDF

Expert .NET Programming

Simon RobinsonApress, 2004, $59.99, ISBN: 1590592220

This book has the ambitious goal of enabling the reader to attain an expert level of familiarity with .NET. To make this goal more manageable, the author has crafted balanced chapters that can be divided into two broad categories: understanding and performing. In the former category, the emphasis is on the broad mastery of concepts, but there is also material that illustrates implementation. The latter category concentrates on how to perform operations, but there is no neglect of theory.

The book begins with three chapters on the IL (intermediate language), the code that forms the core of the .NET framework, and the CLR (common language runtime), the language for building applications. The author presents sample code that the reader can readily apply to live applications, and analyses of why that code works. The detail in these chapters provides a deep understanding of how IL and CLR work, and the chapters form both the conceptual and practical basis for the rest of the book.

In the “performing” category, highlights include discussions of performance improvement, profiling applications, and generating code dynamically. The author intelligently and objectively discusses the benefits of managed and unmanaged code, the just-in-time compiler and its optimization, virtual memory management, and performance counters. He also provides a helpful series of tips to improve performance. These tips are sometimes applicable to all languages in the .NET framework, and sometimes geared to specific languages such as Visual Basic .NET. These chapters conclude with a discussion of the reasons for dynamic code generation and its architecture. A generous set of examples illustrate the concepts.

The author devotes two chapters to security issues. He explains and illustrates code access security concepts and their implementation. The final chapter provides a succinct, code-based approach to cryptography. The author supplies programs for both encryption and decryption, and explains the overarching principles of cryptography.

This book is for programming professionals with experience in developing and maintaining managed applications. As the title suggests, its goal is to make the reader an expert in .NET programming, and it assumes that the reader is already conversant with, for example, the just-in-time compiler, and is deeply familiar with at least one high-level language, such as C++.—Marlin Thomas

Building Clustered Linux Systems

Robert W. Lucke

Prentice Hall PTR, 2004, $49.99, ISBN: 0131448536 

I’ve always wanted to build a Linux cluster. We’re not talking rocket science here, are we? You just need to build a few Linux machines and install the appropriate openMosix kernel and tools packages, right? As this book demonstrates, it’s a lot more complicated than that.

The book contains four parts. The first part introduces the concept of a cluster and outlines a process for building one. It explores the limitations of symmetric multiprocessor systems and discusses the evolution of clustered solutions intended to overcome these limitations.

The second part of the book lists the components that might be used in various types of clusters (high-throughput, high-availability, high-performance, etc.). Diagrams illustrate cluster layouts and logic paths, and some typical (Pentium, Opteron, and Itanium) servers are analyzed.

Which Linux distribution is best suited for cluster applications? Linux users are a fanatical lot, and a wrong word by the author in this regard could see him condemned to eternal perdition. The issue is dealt with in a sensitive but rational fashion in portions of Part 3.

My first reaction to Part 4 was something like, “Boring!” It starts with an analysis of cluster economics. Then it gets worse, with detailed lists of the steps in rack-assembly and cable-labeling schemes. The final chapter is about rack placement, access gangways, and air conditioning!

The bottom line, of course, is that you do have to think about these things. The procedures suggested can save you a whole lot of trauma if you later have to extend a cluster or replace its components.

One of the tests of a good technical book is the degree to which you find yourself tempted to try out some of the examples contained within its pages. I’m happy to confess that I yielded to that temptation an awful lot while reading this book.— G. K. Jenkins

Reprinted from Computing Reviews, © 2005 ACM,


Originally published in Queue vol. 3, no. 4
see this item in the ACM Digital Library


© ACM, Inc. All Rights Reserved.