Author: Erik Dietrich
I'm a passionate software developer and active blogger. Read about me at my site.
An Introduction to Clean Architecture
May 25, 2026 3 minutes read Clean Architecture in C# and .NET: A Detailed Introduction It seems to me that the topic of software architecture has attracted a lot of...
Cyclomatic Complexity in C#: Everything You Need to Know
May 25, 2026 9 minutes read Cyclomatic Complexity (or CC) in C# is a code metric that counts the number of linearly independent execution paths through a method. Concretely, it...
A Guide to Code Coverage Tools for C# in 2026
May 17, 2026 2 minutes read In this post, we’ll walk through 8 different .NET code coverage tools and list their features to help you make a decision. The tools...
Lack of Cohesion of Methods: What Is This And Why Should You Care?
May 14, 2026 2 minutes read Lack of cohesion of methods (usually shortened to LCOM) is one of those things that sits fairly high up on the software hierarchy of...
Visual Studio Enterprise vs. Professional
May 12, 2026 2 minutes read If you write .NET code for a living, you might spend your day inside Visual Studio. The catch is that “Visual Studio” isn’t one...
Onion Architecture: Going Beyond Layers
April 25, 2026 1 minutes read So you’ve read about the Onion Architecture and think you get it. There are layers in this architecture. They’re onion-like. And they make your...
Hexagonal Architecture: What Is It and How Does It Work?
April 23, 2026 9 minutes read Hexagonal architecture is a model — or pattern, if you prefer — for designing software applications around a simple idea: put inputs and outputs...
Domain-Driven Design Demystified
April 4, 2026 1 minutes read Domain-Driven Design, usually shortened to DDD, is a software design approach that puts the business problem at the center of the code. Instead of...
REST vs. RESTful: The Difference and Why the Difference Doesn’t Matter
April 2, 2026 1 minutes read REST API is one of the most popular APIs in the web development community. Most teams reach for it before anything else, and most...
Software Architecture: The 5 Patterns You Need to Know
February 26, 2026 2 minutes read When I was attending night school to become a programmer, I learned several design patterns: singleton, repository, factory, builder, decorator, etc. Design patterns give...
Layered Architecture: Still a Solid Approach
February 7, 2026 1 minutes read Layered architecture gets a lot of flack. Even though it’s still the most prevalent architecture, we view it as an anti-pattern. It’s old, not...
What the Singleton Pattern Costs You
July 17, 2025 2 minutes read Do you use the singleton pattern? If not, I’m assuming that you either don’t know what it is or that you deliberately avoid it....
Computing Technical Debt with NDepend
February 16, 2025 2 minutes read For years, I have struggled to articulate technical debt to non-technical stakeholders. This struggle says something, given that technical debt makes an excellent metaphor...
NDepend vs. ReSharper
October 14, 2024 1 minutes read Not too long ago, someone asked me for a comparison of ReSharper (commonly and affectionately abbreviated R#) and NDepend. I didn’t really grok the...
Avoid Technical Debt with NDepend
July 14, 2024 2 minutes read The term “technical debt” has become ubiquitous in the programming world. In the most general sense, it reflects the idea that you’re doing something...
A Test Coverage Primer for Managers
May 27, 2024 5 minutes read Managing Blind Let me see if I can get in your head a little bit. You manage a team of developers and it goes...
Improve Your Code Review Game with NDepend
April 21, 2024 3 minutes read Code review is a subject with which I’m quite familiar. I’m familiar first as a participant, both reviewing and being reviewed, but it goes...
Why Should Managers Care About Static Analysis?
March 22, 2024 5 minutes read I’d like to talk a bit today about how, if you’re a dev manager for a team or teams that are responsible for .NET...
Managing to Avoid Cobras
March 3, 2024 2 minutes read Incentives are a funny thing. Done well, they can spur your team to productivity and career-advancing, win-win situations. Done not so well, they can...
Following the Software Architecture Career Path
January 10, 2024 3 minutes read I can recall a certain day in my career with remarkable clarity. I say remarkable because this happened well over a decade ago, when...
Software Architecture Document? Do You Need One?
November 1, 2023 1 minutes read In the spirit of the Agile Manifesto, we’ve reduced our dependence on software documentation. In some ways, this has improved our lives. And in...
Announcing the Singleton Challenge
September 21, 2023 2 minutes read About a month ago, I made a post about what the singleton pattern costs you. Although I stated my case in terms of trade-offs...
Service Oriented Architecture: A Dead Simple Explanation
January 8, 2019 1 minutes read Service-oriented architecture (SOA) has been with us for a long time. The term first appeared in 1998, and since then it’s grown in popularity....
C# Features: An Exhaustive List of the Best Ones
December 18, 2018 1 minutes read The first post I wrote for the NDepend blog was about C# 8.0 features. That post inspired a sequel, followed by the series’ final...
Coupling in Programming: What This Means and How Not to Get Burned
December 4, 2018 1 minutes read What is coupling in programming? Is it something we want to avoid when we design and write code? If so, why? And more importantly,...
Mentoring Software Developers as an Architect
November 27, 2018 1 minutes read A while back we discussed the unique career path architects have to travel. We wrote that article for developers who want to advance their...
Self Documenting Code vs. Comments? Turns Out It’s Both or Neither
November 20, 2018 1 minutes read It’s been about a month since my last research post, and I’ve been musing about the next topic. What should it be? Well, I’ve...
Should Architects Write Code? You Bet They Should!
October 30, 2018 1 minutes read There’s a common misconception that’s permeated our profession: Architects don’t need to write code to do their jobs. Now, this may seem like a...
When Is It Okay to Use a C# Partial Class?
October 16, 2018 1 minutes read Today’s post attempts to answer a very simple and straightforward question: “When is it OK to use a C# partial class?” And the answer as...
Extension Methods and the Decline of Traditional OOP
October 9, 2018 1 minutes read A bunch of years ago, I wrote a post on my own personal blog titled, “Why I Don’t Like C# Extension Methods.” Over the...