It's no secret that many computer books are pretty much devoid of an authorial personality. This title is a winning exception. The author is able to weave in clever examples (using such topics as his own long experience in computing, his dog, Star Trek, etc.) without being coy or getting in the way of presenting real technical information. Liberty's wide experience in computers and general writing skill shows, as he is able to draw on a wealth of examples to move his text forward.
These are a couple of goals at work in Programming C#. First, it's an excellent language tutorial, certainly one of the smartest and best available guides to C# as a language. Early chapters explore basic and obscure language options using inheritance, delegation, interface, and the conventions in C# used to implement these techniques. The middle part of the book turns toward the .NET Framework itself, with two useful (and somewhat introductory) chapters on both Windows Forms and Web Forms, for standalone and Web-based applications, respectively.
Later sections crank up the technical knowledge again with several advanced topics on understanding .NET assemblies and deployment in detail, as well as "reflection" APIs that allow .NET programs to essentially modify their code at run time. (One technique, reflection emit, which literally writes bytecodes, will definitely interest expert readers, though it's unlikely most programmers will need to do this.) Final sections look at the .NET stream classes (rivaled only by Java's for complexity). Liberty looks at basic file and network I/O as well as how objects get serialized and marshaled both for SOAP and Web services and "normal" .NET remoting.
The author's sure hand in navigating the difficult waters of C# and .NET makes for a relatively concise text that is chock-full of useful information on C#. Filled with notably clever and inventive examples, this book is possibly this veteran computer author's best title to date, and it's sure to be a noteworthy resource for experienced developers, as they tackle C# for the first time. --Richard Dragan
- Introduction to C# and the .NET platform
- A "Hello World" example in C#
- Tutorial to C# as an object-oriented programming language (types and variables, operators, namespaces, and preprocessor directives)
- Defining classes in C# (including static members, finalizers, overloading, and read-only fields)
- Inheritance and polymorphism implemented in C#
- Operator overloading
- Structures in C#, interfaces, arrays, and indexers
- Built-in .NET collections, strings, and regular expression support
- Structured exception handling
- Delegate and events
- Introduction to programming with Windows Forms
- ADO.NET database APIs (including basic XML support)
- Quick introduction to Web Forms and ASP.NET used with C#
- Introduction to Web services (SOAP, WSDL, and Discover services described)
- In-depth guide to .NET assemblies (including metadata, versioning, private and shared assemblies)
- C# support for attributes and reflection (including reflection emit techniques)
- Marshaling and remoting (with and without SOAP)
- Threads and synchronization
- Tutorial to C#/.NET streams (including basic I/O techniques, Web streams, and serialization)
- COM and .NET interoperability (including importing ActiveX controls in .NET projects)