Pro .NET Best Practices

Stephen D. Ritchie (2011)
Review date: April, 2013
Summary

Chapter one explains what "Best Practices" actually means and how having good practices affects development projects. Chapter two continues by illuminating various areas in the .NET ecosystem where good practices should be applied. In this chapter we also find many sources; references to tools and guidelines. Examples of areas covered are dependency injection, automated test generation, Microsoft Security Development Lifecycle (MSDL) to mention a few. 

Chapter three called "Achieving Desired Results" would be about some development culture/craftsmanship hygiene factors. It's a short chapter, but it covers a lot of ground. Some practices treated therein: Diagram, Document, and Communicate the System's Architecture, and Keep Asking for Detailed Examples. The next chapter starts where the last leaves off and talks about metrics and measuring; hard quantitative metrics, but also values. Chapter five is called "Strategy" and is about activities need to take place in a well-functioning development process, such as brainstorming, planning, and commitment to excellence.

Chapter six (.NET Rules and Regulations) means gear shift. Here the book leaves culture and process and gets into nitty-gritty code details. Chapter seven, Powerful C# Constructs, continues along this path and introduces some newer cooler features of C#. Chapter eight is a primer on testing, primarily unit testing, but testing beyond that is also covered to some extent. Chapter nine is also a primer, and its topic is MSBuild along with a few lines on deployment automation. The next chapter is about continuous integration and it's quite biased towards Team City. Chapter eleven is about code analysis, both style and coverage. Chapter twelve revisits testing, but this time by discussing different test frameworks.

The last chapter is about cognitive biases and how they affect adoption of practices.

Opinion

This book spans from describing when to use the def keyword to cognitive biases. I read it as an introduction to the .NET platform, so from one perspective I was rather disappointed; half of the book was about something else. On the other hand, that other half made quite interesting reading. 

Let's take it from the beginning. The book starts with backing away from its rather pretentions title. The author says that "best" may be too strong, and that "ruthlessly helpful" is a better description of the practices described. I agree, but that beginning felt kind of weak. In fact, this is what I found to be the weakest spot of the book. Why talk your own book down?

Apart from that, I found this book extremely helpful. I'm not a C# pro, so I found the chapters on the newer syntax interesting. I also liked the introduction to MSBuild. In fact, I really liked the author's ambition to introduce and give an overview of a rich flora of tools. Many chapters are about different tools and how to use them. The chapters on testing were good too. Chapter eight is a good primer to unit testing, while chapter twelve contains more tools and comparisons between them. At the level of knowledge this book is targeting, beginner to intermediate, the discussion on testing is rather solid. 

What I liked the most about this book, apart from the rich tool overview, is everything else; stuff related to practices and system development in general. These chapters, or sections of chapters, provide a glue that makes the whole of the book fit together. For example, the last chapter, which is on cognitive biases, could be slightly misplaced in a book like this. However, since all biases are explained in terms of how they affect adoption of software development practices, it ties everything together quite beautifully. The initial chapters have the same effect, but for setting the stage of what's to come.

All of these chapters also contain some gems that are either nice to repeat or that some readers may find new. Personally I found a section on brainstorming techniques rather interesting, along with very nice metaphor for discipline versus creativity. The only problem is that gems like these appear somewhere in the book, and the only way to find them is to read it from cover to cover.

What's bad then? This book covers a lot of ground. This means that it cannot go into too much detail, which in turn means that a seasoned .NET developer would probably know 90% of the tools and techniques it covers. This would still leave some other chapters, like the one on cognitive biases, but on the whole, it could prove rather uninteresting for experienced developers. Otherwise than that, I can't think of anything. It's a nice broad book that takes the reader on a helicopter tour of the .NET landscape.

Final verdict then! By now I know that all reviews I write are written in the context of the intersection between my current level of knowledge of the topic and applicability to my daily work. This book popped up when my level of knowledge was low and applicability to daily work high. In this context I would say that this is a very sympathetic book on good system development with an inclination to .NET and a good overview of many tools used on that platform. Readers who are looking for something like that will definitively not be disappointed.

Who should read this book

This is a well-balanced book that provides a good mix of .NET knowledge and general software development best practices. The probable target audience is .NET beginners or developers who started their careers in a VB + waterfall environment.




News

  • 2015-09-29

    It's been almost one and a half year since I reviwed a book! I've been too absorbed by Writing my own. Anyway, I'm back with Jeff Patton's relatively...
  • 2014-01-04

    New category! Performance! Reviewed The Every Computer Performance Book. Check it out!
  • 2013-09-10

    Reviewed a book that' slightly less technical, but much more fun to read. It's I.T. Confidential.
  • 2013-08-13

    Reviewed yet another book on Visual Studio 2012 and TFS. I also created a "Microsoft" category and moved the other TFS book there from the "Tools"...
  • 2013-08-05

    Updated the FAQ. Included information about getting a book reviewed.