More Effective C# 2nd Ed

Author: Bill Wagner
Publisher: Addison Wesley
Date: August 2017
Pages: 304
ISBN: 978-0672337888
Print: 0672337886
Kindle: B074RJT99M
Audience: Intermediate to expert C# developers
Rating: 4.8
Reviewer: Mike James
Can C# be more effective?

This is the second edition of a book I know well but have failed to get around to reviewing - omission corrected. If you can't be bothered to read to the end of the review just buy a copy. If you are a C# programmer, you won't regret it. Also don't worry about it being "More effective" - there is a previous book along the same lines covering fundamental topics. This isn't a follow on and there is no need to read them in any particular order.



C# has a particular problem. It started out as a small simple language and over time it has had extras grafted on. If you learned C# early on you may not have adopted some of the new features, or if you have adopted them you may not be sure that you are using them properly. This book will help you understand what the best practices are in C# 7 and why you should use them.

Don't bother reading it yet if you are beginner - this is for those who are intermediate to expert in the language. But why would you want to read it if you are an expert - because when something is as subtle as C# it is nice to have things confirmed and explained. In short, even if you know about what you are being told, it is rewarding to read and explore. 

The book starts off its list of 50 items to improve your C# with  a look at data types. A lot of what you will read in this section should be known to you - in particular, you may be tired of the number of times you have been told to use a property instead of a data member, but it doesn't really matter. As a reminder, a refresher or something to think about, it is still a good read. Some points are far less obvious. I'd never thought about the importance of having zero as a meaningful default value or using tuples to limit type scope.

Chapter 2 moves a bit off core C# and considers how you can use the language to implement an API. This might not be relevant to all readers. Chapters 3 and 4 most certainly should be. Chapter 3 is about task-based programming - async methods in particular. I am still surprised that not everyone sees the need to use async methods but I have to admit that there are some subtleties that you need to be aware of. Chapter 4 moves on to real parallel programming with PLINQ and more. Chapter 5 is about dynamic programming, no not the mathematical theory of optimization, but dynamic typing. This is one of the newer features of C# and many a C# programmer raised on strong typing will find it useful.

The final chapter is a bit of a let down. It presents three items on "Participate in the Global C# Community". It's a bit waffley compared to the previous chapters, but it might be useful.

You don't have to agree with all of the suggestions. The ideas are explained well enough for you to disagree intelligently and I'm not sure I'd want to actually use some of the suggestions or if I did I think I would suspect that there was something wrong with my existing design. I also have to say that Chapter one was by far the best read, perhaps because it was so general, but the items on dynamic typing were fun as well.

Get it if only to disagree with it. 

This title is certainly one to be added to our Programmer's Bookshelf, where it will join other recommendations in C# Books - Pick of the Shelf Revisited



The Road to Azure Cost Governance

Author: Paola E. Annis et al
Publisher: Packt Publishing
Pages: 314
ISBN: 978-1803246444
Print: 1803246448
Kindle: B09NW2CTHX
Audience: Bill payers
Rating: 4.5
Reviewer: Ian Stirk

This book aims to help you reduce your Azure costs, how does it fare?

The Art of WebAssembly

Author: Rick Battagline
Publisher: No Starch
Date: May 2021
Pages: 304
ISBN: 978-1718501447
Print: 1718501447
Kindle: B08TSYXJTS
Audience: WebAssembly developers
Rating: 5
Reviewer: Ian Elliot
WebAssembly is the coming thing - or so we are told.

More Reviews

Last Updated ( Tuesday, 19 February 2019 )