Murach’s C# 2015 by Anne Boehm and Joel Murach
$47.70 at Amazon
I’ve been doing C# development professionally for a couple of years now, but haven’t had the opportunity to check out the new features in the latest version, nor have I had the need to use some of the more advanced features of the language.
If you’ve read a Murach book, or a review of same, then you’re familiar with the format: code on the right pages, explanations on the left. My habit is to read everything on topics that I don’t know much or anything about, and just skim the right pages for topics that I’m more familiar with. I like this format because it makes it easier to find areas that I need to read without going through everything.
For completeness, I’ll describe the entire book below; however, since I’m already familiar with C#, I skipped reading the first few sections and went straight to the advanced topics.
Section one is an introduction to Visual Studio; if you haven’t written code in Visual Studio before, this section will take you through setting up and using the program. Section two covers the essentials: numbers and strings, control structures, methods, event handlers, exceptions, arrays, dates, and debugging. Section three is about object-oriented programming and covers classes, indexers, inheritance, interfaces, generics, documentation, etc. I only scanned these sections, but they look like a good introduction to programming in general and C# in particular.
Section four covers database programming, which I was interested in. I currently work with databases but mostly use a proprietary database access method for accessing a hierarchical database, so I’m not very familiar with the built-in database methods. This section starts by introducing client/server systems and relational databases, then covers working with data sources, working with bound controls and parameterized queries, and using ADO.NET to write your own data access code. Section five continues talking about data, covering files and data streams, XML, LINQ, and the Entity framework. Finally, section six covers methods to enhance the user interface and deploying an application.
My only complaint with the book is not actually a problem with the book itself: I would have liked to have seen the new features of C# 6 called out, but since the book is aimed more at people who aren’t familiar with C# I can’t really knock it for not discussing changes from previous versions. I actually learned C# from a previous edition of this book five years ago, and still have no problems recommending it as a great introductory text.
Disclosure: I received a free review copy of this book.