This is not a new topic. A quick Google search will show you a list of books that are rated as must-read. For my part, I’m going to recommend to other books that I find very useful for .NET developers, especially when you need to work on RITVN’s projects.
Dependency Injection in .NET
Dependency Injection in .NET and its second edition are must read if you want to learn how to do DI correctly. Please note that while you usually use an IoC container to do DI, DI is actually a lot more than that:
Dependency Injection Principles, Practices, and Patterns teaches you to use DI to reduce hard-coded dependencies between application components. You’ll start by learning what DI is and what types of applications will benefit from it. Then, you’ll work through concrete scenarios using C# and the .NET framework to implement DI in your own projects. As you dive into the thoroughly-explained examples, you’ll develop a foundation you can apply to any of the many DI libraries for .NET and .NET Core.
The art of unit testing
The Art of Unit Testing should be the one and only one book that you need to read to learn how to do unit testing correctly. The best thing about this book is that its writing is easy to understand, and after every chapter you finish, you can immediately apply it to write tests for your code.
The Art of Unit Testing, Second Edition guides you step by step from writing your first simple tests to developing robust test sets that are maintainable, readable, and trustworthy. You’ll master the foundational ideas and quickly move to high-value subjects like mocks, stubs, and isolation, including frameworks such as Moq, FakeItEasy and Typemock Isolator. You’ll explore test patterns and organization, working with legacy code, and even “untestable” code. Along the way, you’ll learn about integration testing and techniques and tools for testing databases and other technologies.