NDepend

Improve your .NET code quality with NDepend

8 Books to Improve as a .NET Developer

8 Books to Improve as a .NET Developer

Nowadays all information a developer needs to know is available online for free. Blogposts and videos authored by experts, giant questions and answers websites, a quick search and you get the answer. Maybe I am old-school, but I still believe there is room for good programming books. Reading a book takes several days and it is the right pace to let ourselves learnt and progress. Moreover book’ authors are recognized experts, carefully selected by professional publishers and immensely motivated to write hundreds of pages to thoroughly cover a programming topic.

Some of the books below were like milestones in my career: they definitely changed the way I code daily. Here are the .NET and programming books that I would advise to progress as a developer. There are excellent books out there to learn specific technologies like ASP.NET Core, Entity Framework or even Blazor. However this list focuses on the fundamentals: the .NET platform, the language C# and programming skills.

Disclaimer: I don’t have any interest nor affiliation with any of the mentioned books, authors or publishers

C# 8.0 in a Nutshell

C# 8.0 in a Nutshell

Joseph Albahari is a well-known expert in the .NET community, both for writing and maintaining this book for more than 15 years and also for publishing the essential tool LinqPAD. With more than 1.000 pages this book is THE C# reference, suitable for everyone.

C# in Depth

C# in Depth

Jon Skeet is another recognized expert in the .NET community. With more than 35K questions answered he is one of the top stackoverflow contributor. His book about C# is extremely detailed and well-written. Unlike the book above, this one targets seasoned C# developers that want to acquire a high expertise.

CLR via C#

CLR via C#

Knowing what the CLR is doing with your code at runtime really improves the way you program. I had the chance to read the second edition of this book in 2006 and I still rely daily on knowledge learnt. The book might be a bit updated since the last edition available was published in 2012, years before the .NET Core revolution that nowadays lets Microsoft tweaks the CLR without the ascendant compatibility constraint. However I am pretty sure this book will teach you some important facts about what is happening beneath your feet at runtime.

Pro .NET Memory Management

Pro .NET Memory Management: For Better Code, Performance, and Scalability

If performance is your concern, this book is a must read. Having a good idea of how the Garbage Collector works is not enough, you need to be guided by someone who has practical experience like Konrad Kokosa. Many sections are dedicated to troubleshooting scenarios and they are quite helpful.

Agile Principles, Patterns, and Practices in C#

If you read this blog regularly you know how design patterns and SOLID principles are important to me. I have a passion for improving large-scale software quality, structure and maintainability by making the most of .NET and OOP concepts. With this book, you can learn these principles directly from their inventor Uncle Bob.

Dependency Injection Principles, Practices, and Patterns

Dependency Injection is nowadays a popular practice and one might question why a book is needed. Ok it covers the most popular .NET DI frameworks but its real value is not there. What makes this book precious is its chapters about principles, patterns and anti-patterns related to OOP and loosely-coupled code.

The Pragmatic Programmer

The Pragmatic Programmer: Your Journey To Mastery (2nd Edition)

As the name suggests we, programmers, have to be pragmatic. Our most precious asset is our time and the act of writing software tends to take most of it. This book is not only about saving time with the right ways to approach programming, it also contains tons of powerful advices. Probably my all time favorite programming book and one of the rare programming book that I enjoy re-reading.

Design Patterns Elements of Reusable Object-Oriented Software

Design Patterns: Elements of Reusable Object-Oriented Software

Ok this book was written in 1994, years before C# and .NET was a project. Ok its examples are written with old-fashioned C++ code and since then many Design Patterns books have been written. But to me it is a must-read for all developers programming with an Object-Oriented language, C# included. The Design Patterns classification and terminology originally defined in this masterpiece is timeless and is still used daily by all (real) professional developers. One caveat is about the Singleton pattern that prevents testing. This is clearly an anti-pattern, at least the way it is presented originally in this book (I wrote about it here). Unfortunately juniors often over-use Singleton because it is the simplest pattern and they tend to apply it everywhere so beware.

Practical .NET 2 and C#2

(Extra) Practical .NET 2 and C#2

During the early days of .NET in 2002 to 2005 I had the chance to write two editions of a book that covered all aspects of C# and .NET at that time. Some information are obviously outdated, but the book is free and you can download it here. It represents more than 1.000 pages, 647 code samples and a full year of work. Originally in French it was the .NET best-seller (15.000+ copies sold). I remember the long talk I had with the O’Reilly France manager in September 2002 to convince him that .NET was the future. Hopefully, after that, I didn’t propose a book about Silverlight 🙂

My dad being an early programmer in the 70's, I have been fortunate to switch from playing with Lego, to program my own micro-games, when I was still a kid. Since then I never stop programming.

I graduated in Mathematics and Software engineering. After a decade of C++ programming and consultancy, I got interested in the brand new .NET platform in 2002. I had the chance to write the best-seller book (in French) on .NET and C#, published by O'Reilly (> 15.000 copies) and also did manage some academic and professional courses on the platform and C#.

Over the years, I gained a passion for understanding structure and evolution of large complex real-world applications, and for talking with talented developers behind it. As a consequence, I got interested in static code analysis and started the project NDepend.

Today, with more than 8.000 client companies, including many of the Fortune 500 ones, NDepend offers deeper insight and understanding about their code bases to a wide range of professional users around the world.

I live with my wife and our twin babies Léna and Paul, in the beautiful island of Mauritius in the Indian Ocean.

open