Author: Erik Dietrich
I'm a passionate software developer and active blogger. Read about me at my site.
A Guide to Code Coverage Tools for C# in 2024
January 11, 2024 3 minutes read In this post, we’ll go through 8 different .NET code coverage tools and list their features to help you make a decision. But first,...
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...
Visual Studio Enterprise vs. Professional: Essential Differences in 2023
November 8, 2023 1 minutes read If you’re a .NET developer, chances are you’re using Visual Studio, the go-to product for developing .NET applications. However, with several versions available, it...
REST vs. RESTful: The Difference and Why the Difference Doesn’t Matter
November 2, 2023 1 minutes read REST API is one of the most popular APIs in the web development community. What’s the difference between a REST API and a RESTful...
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...
Managing to Avoid Cobras
September 3, 2023 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...
A Test Coverage Primer for Managers
August 27, 2023 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...
Why Should Managers Care About Static Analysis?
July 22, 2023 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...
Improve Your Code Review Game with NDepend
April 21, 2023 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...
NDepend vs. ReSharper
February 25, 2023 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...
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...
Domain-Driven Design Demystified
November 6, 2018 1 minutes read Domain-driven design, or DDD, is a software design methodology aimed at producing better software. Engineers achieve this by working closely with domain experts during...
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...
Hexagonal Architecture: What Is It and How Does It Work?
October 23, 2018 2 minutes read Hexagonal architecture is a model or pattern for designing software applications. The idea behind it is to put inputs and outputs at the edges...
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...
Shotgun Surgery: What It Is and How to Stop It
October 2, 2018 1 minutes read I really love the name “shotgun surgery” for describing a code smell. It’s sort of an interesting mix of aggressive and comical, and so...
Onion Architecture: Going Beyond Layers
September 25, 2018 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...
Linq Tutorial: A Complete Beginner’s Gentle Introduction
September 18, 2018 1 minutes read There was a time when Linq was a mystery to me. But, now that I’ve learned how to use it, I don’t know how...
You Should Favor Software Products That Include Support in the Price
September 11, 2018 1 minutes read Quite often we talk about architectural concerns on this blog, with topics like application layering or the merits of design patterns. But today I’m...
Programming to an Interface: A Simple Explanation
August 21, 2018 1 minutes read As an architect, you know that programming to an interface is good. It’s what everyone should do. But what does that mean? And why...
What Is a Good Unit Test? 5 Must-Haves
August 14, 2018 1 minutes read In this day and age, unit testing isn’t as controversial as it once was. Sure, you still see the occasional inflammatory, clickbait-y, confrontational “unit...
Layered Architecture: Still a Solid Approach
August 7, 2018 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...
Autofac: A Detailed Look Under the Hood at Its Code Quality
July 31, 2018 1 minutes read In case you haven’t seen it, I’ve been diving ever-further down the code research rabbit hole. Today it brings me to the Autofac codebase...
3 Design Patterns That Have Aged Poorly
July 10, 2018 1 minutes read Design patterns seem to be a controversial topic. On one hand, many developers seem to love them and treat the famous book by the Gang...
Declarative Programming in Depth
July 3, 2018 1 minutes read Most people that start programming learn to program in an imperative way. Shortly after, they will probably learn a declarative language too. Many developers...