||New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About||
Keywords: C#, Visual Studio, .NET, ADO.NET
Title: Programming C#
Author: Jesse Liberty
Level: Introductory C#, not introductory programming
Verdict: A good solid introduction to C#
Jesse Liberty's Programming C# quickly established itself as one of the better C# books when the language (and .NET) was first introduced by Microsoft. Now, timed to coincide with the hoped for release of .NET 2.0 and Visual Studio 2005, O'Reilly have released a fourth, updated edition of the book.
As before the book is aimed at the programmer wishing to switch to C#, particularly those from a C++, VB or Java background. It's not really a book for the first-time programmer, all of the usual introductory stuff (this is what a loop is…) is skipped and the book assumes that the reader understands programming, though not C# or .NET.
Organised into three parts, the opening section provides an introduction to the language. It starts with a primer on .NET and the CLR and then moves quickly into variables, objects and classes, polymorphism, interfaces etc. That's a wide scope, of course, and at times the material is very concise but on the whole all of the major areas are covered. New C# features, such as the use of generics, are also covered in this edition of the book.
The next section of the book moves beyond the language itself and looks at using it to create applications. There are three chapters in this section that look at Windows Forms, ADO.NET and ASP.NET, all making use of Visual Studio. While it's good that there is coverage of ADO.NET, it could have done with some additional examples. Still, ADO.NET is enough to fill a couple of books all by itself, so the introduction is welcome enough. A final chapter in this section puts it all together using a Web Services example app.
The final section of the book looks at a range of topics under the general heading of 'The CLR and .NET Framework'. These include major topics such as threads, reflection, streams and I/O, assemblies and, finally, the tricky relationship between .NET and COM.
The writing style is easy-going enough and the book features lots of code snippets to make things clear. The attention paid to C++, VB and Java programmers is likely to be welcome to those readers, and is unobtrusive to the rest. This is not a book for absolute beginners, and in terms of technical content is pitched at a higher level than Murach's C#.
If there is one complaint it's a minor one in that the book just didn't have that engaging style that some of the best computer books, (such as Just Java 2 or Dive Into Python). That's very much a stylistic thing rather than a reflection on the technical content. That aside, this is a book that is rightly considered one of the best programmers' introductions to C#.