Delphi Clinic C++Builder Gate Training & Consultancy Delphi Notes Weblog Dr.Bob's Webshop
Bob Swart (aka Dr.Bob) - Medical Officer Dr.Bob's Kylix Kicks
 Review: C# Essentials: Programming the .NET Framework
See Also: Dr.Bob's Programming Books for Delphi & C++Builder books co-authored by Bob Swart
C# Essentials - Programming the .NET Framework
Ben Albahari, Peter Drayton & Brad Merril

C# Essentials - Programming the .NET Framework by O'Reilly is a small book. And by that I don't mean the pagesize (like in the Pocket Reference books), but the number of pages, which is just under 200. But as the title indicates, this book only covers C# Essentials, and apparently you only need about 200 pages to do so. Do note that the first edition of the book was published in February 2001, which means that it covers C# based on the November 2000 .NET Beta 1 (and not the more recent Beta 2, which is available at the time that I wrote the review early October 2001).
So how does the book cover the C# essentials in 200 pages?

The book is targeted at people who already know object-oriented programming using languages such as C++, Java and Delphi. And if you've been using one or more of these languages, you will certainly recognise a number of features and language elements. That's not too strange, considering that Anders Hejlsberg (the original principle architect of Delphi 1) was also one of the key architects of C#, and used "the best of all words" to produce a language that would best all of the above. Whether or not C# will be the next world dominator (when it comes to programming languages and development tools) remains to be seen, but it sure won't hurt to know at least the essentials about this new language. And that's again what this book is all about.

The book consists of five chapters. The first chapter contains a mere five pages to give a short introduction to .NET, the C# language, the Common Language Runtime (CLR), the base class libraries and a very simple C# program.
The second chapter contains 75 pages of a C# language reference, where everything from a variable to a loop is explained and illustrated with a short syntax example (only a few lines). The reference also covers and demonstrates somewhat more complex syntax and features such as namespaces, classes (properties, methods, events), interfaces, and comments - introducing XML documentation as a kind of special C# comment. The coverage of this all is very condensed, but it's always clear to me, so there really is no need to spend more paper, I guess.
The third chapter contains 62 pages that focuses on programming the .NET framework. Here we learn further about the base class libraries (BCL) and the common language runtime (CLR). This is a chapter - as well as the next one - that contains details which may still change before C# and the .NET Framework is officially released - but that's only to be expected with a beta environment.
The fourth chapter is 10 pages in which an overview is given of the C# base class library. Where chapter 3 focused on programming the .NET Framework using C#, chapter 4 shows that the base class library consists of logically grouped namespaces that are exported by assemblies that are part of the .NET platform, and accessible by other environments than just C#.
The last chapter contains 3 pages listing six groups essential .NET tools, followed by 5 appendices that list C# keywords (useful if you want to write a C# syntax highlighting utility), a reference of regular expressions, C# output format specifiers, data marshalling (from CLR types into COM types), about working with assemblies (which is just another word for DLLs), and finally about namespaces and assemblies. Finally, there's a 14 page index (7% of the book, which is a lot - relatively speaking, but quite useful at that).

Once you've read this book - and also while you're reading the book, for that matter - your hands will be restless, because you want to try the new syntax to try out your own examples. At least that's how I felt when I read this book, and I was glad to have a copy of the new Visual Studio.NET with C# within my reach. However, also If you just want to learn more about C#, then this book is a good place to get started. Some of the content will be outdated since .NET Beta 2, but the essentials will still remain. For a more practical or hands-on approach, with recent syntax examples and longer listings of working code, you are probably better off going for one of the more recent (and much thicker) books like Professional C# by WROX.
Still, to get started with the C# essentials, I can recommend this book to any C++, Java or Delphi developer. If only just to see how much it looks and feels like "your" development language. You won't be sorry.

(Bob Swart)

More Book Reviews

This webpage © 2002-2003 by webmaster drs. Robert E. Swart (aka Dr.Bob - All Rights Reserved.