||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, object oriented programming, ADO.NET
Title: Murach's C#
Authors: Joel Murach and Doug Lowe
Publisher: Mike Murach and Associates
Level: Introductory C#
Verdict: Good for those wanting a practical focus, but lighter on object oriented theory
'Murach's C#' is a single volume introduction to object oriented programming, .NET, C#, ADO.NET and Visual Studio all rolled into one. If that sounds like ambitious for a single volume then you're right - each of those topics is worth a book (or two or three) - but then this is a pretty hefty book (whether you're talking in terms of physical dimensions, page count or actual weight).
The first thing to strike the reader, aside from the size of the book, is the clear and uncluttered design. Like the other books published by Murach, this one features the 'paired page' format which is something of a trademark. Right-hand pages feature the core text on a topic, covering things like the syntax, source code, screen-shots and so on. The matching left-hand page provides context, extra explanation and scene-setting. Given that the book is organised around tasks (how to work with one-dimensional arrays, how to join data from two or more tables and so on), then this page-pairing makes for very focused and concise coverage of material. What this means is that it's possible to get through the book very quickly. And, from a educational perspective, the overlap of material on the left and right pages is a good thing rather than a bad one.
In terms of approach the book is very, very focused on the practical rather than the theoretical. This means that the book is wired straight into Visual Studio .NET, and it serves as much as an introduction to the development environment as much as everything else. If you're looking for a book that is concerned with C# from a programming language perspective then this is not the place, the emphasis is very much on C# as integrated into Microsoft's development environment.
While no prior C# or object oriented programming experience is assumed there is an assumption that the reader understands programming. To this end the book opens with introductions to Visual Studio .NET and C#, not on basic programming structures, looping and branching and so on. However, anyone able to code basic programs in another programming language will feel comfortable. The book introduces C# without much reference to other languages such as Java or Visual Basic.
The introductory chapters very quickly give way to material on C# syntax and language structure and a complete section on object oriented programming. Each chapter of the book is structured around a simple application that makes use of Windows Forms. None of these applications is especially complicated but they make good use of the language and tools. While they're the sort of thing that would be included in real business applications, to call them complete business applications (as the blurb on the cover claims) is probably over-selling. They do make the point, though, that the aim of the book is firmly on the enterprise developer rather than the hobbyist or games developer.
The emphasis on the practical means that the book also includes a complete section on ADO.NET, something that many introductory C# books do not cover. However, it has to be admitted that the five chapters devoted to database programming only scratch the surface. They are fine to get the reader started and producing simple database applications but real-world applications are likely to require additional support - but that's to be expected, this is, after all an introductory title and not a specialised ADO.NET book.
So, does this big book actually deliver all that it promises? The answer is that it very much depends. The practical focus, the use of Visual Studio, the clear design and the provision of end of chapter exercises are clearly of value. They make it easy to progress very fast and to home in on the sort of tasks that are likely to crop up in real development. It's definitely the sort of book that it would be handy to keep by your desk.
However, there is a downside. The other side of the focus on the practical is a lack of focus on the theoretical. This is particularly so in the coverage of object orientation. While the core topics of polymrphism, inheritance, encapsulation etc do get covered, the material doesn't go into much depth. There's plenty on the how but not enough on the why. When should abstract classes be used? What are the advantages of interfaces? When should structs be used? It's these sorts of questions that could have done with more coverage.
If you are looking for a book that is about using C# now, on how to get going quickly and how to get the most out of Visual Studio .NET then this really does have lots to offer. The design of the book, from the paired pages to the clean annotated screen shots, makes getting started a breeze. However, if you want some more depth, particularly when it comes to understanding object oriented design, then you may need to supplement this text or look elsewhere.