NDepend Blog

Improve your .NET code quality with NDepend

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,...
Erik Dietrich January 11, 2024

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...
Erik Dietrich January 10, 2024

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...
Erik Dietrich November 8, 2023

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...
Erik Dietrich November 2, 2023

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...
Erik Dietrich November 1, 2023

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...
Erik Dietrich September 3, 2023

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...
Erik Dietrich August 27, 2023

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...
Erik Dietrich July 22, 2023

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...
Erik Dietrich April 21, 2023

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...
Erik Dietrich February 25, 2023

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....
Erik Dietrich January 8, 2019

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...
Erik Dietrich December 18, 2018

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,...
Erik Dietrich December 4, 2018

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...
Erik Dietrich November 27, 2018

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...
Erik Dietrich November 20, 2018

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...
Erik Dietrich November 6, 2018

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...
Erik Dietrich October 30, 2018

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...
Erik Dietrich October 23, 2018

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...
Erik Dietrich October 16, 2018

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...
Erik Dietrich October 9, 2018

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...
Erik Dietrich October 2, 2018

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...
Erik Dietrich September 25, 2018

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...
Erik Dietrich September 18, 2018

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...
Erik Dietrich September 11, 2018

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...
Erik Dietrich August 21, 2018

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...
Erik Dietrich August 14, 2018

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...
Erik Dietrich August 7, 2018

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...
Erik Dietrich July 31, 2018

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...
Erik Dietrich July 10, 2018

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...
Erik Dietrich July 3, 2018