NDepend Blog

Improve your .NET code quality with NDepend

Anatomy of an Open-Source AI Coding Agent Built in .NET: CodeAlta

May 31, 2026 9 minutes read A large language model doesn’t perfom any action. It reads text and writes text. That is the whole contract. So how does an “AI...
NDepend May 31, 2026

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...
Erik Dietrich May 25, 2026

SOLID Design in C#: The Open-Close Principle (OCP)

May 25, 2026 9 minutes read The Open-Closed Principle (OCP) is the “O” in SOLID, the five object-oriented design principles every C# and .NET developer eventually runs into. In one...
NDepend May 25, 2026

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...
Erik Dietrich April 25, 2026

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...
Erik Dietrich April 23, 2026

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...
Erik Dietrich April 4, 2026

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...
Erik Dietrich April 2, 2026

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...
Erik Dietrich February 26, 2026

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

Architecture of a .NET Application: 8 Case Studies

July 10, 2025 8 minutes read This recent question on Reddit’s Number of projects per solution led to interesting debates. The answer depends on the app’s size and domain. In...
NDepend July 10, 2025

Clean Architecture in ASP.NET Core

July 7, 2025 9 minutes read As applications scale, flexibility and maintainability become essential. .NET Core Clean Architecture provides a clear structure with minimal dependencies, making it a popular choice....
NDepend July 7, 2025

Vertical Slice Architecture in ASP.NET Core

June 10, 2025 6 minutes read The organization of code in a solution is a subject of frequent debates. Currently, two prominent approaches have garnered attention: Clean Architecture versus Vertical...
NDepend June 10, 2025

High .NET Code Maintainability: A Case Study

February 13, 2024 8 minutes read High .NET Code Maintainability is the key to achieve both happy management and happy developers: Maintainability lets a product evolve naturally at a sustained...
NDepend February 13, 2024

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

5x Lessons Learned from Migrating a Large Legacy to .NET Core

October 26, 2021 9 minutes read In January 2020 I wrote the post Not planning now to migrate your .NET 4.8 legacy, is certainly a mistake. Hopefully we followed our...
NDepend October 26, 2021

Clean Architecture Refactoring: A Case Study

April 27, 2021 9 minutes read Introduction to Clean Architecture The recent post Clean Architecture for ASP.NET Core Solution: A Case Study explained that one of the most interesting property...
NDepend April 27, 2021

8 Books to Improve as a .NET Developer

March 31, 2021 4 minutes read Nowadays all information a developer needs to know is available online for free. Blogposts and videos authored by experts, giant questions and answers websites,...
NDepend March 31, 2021

How to Plan Large-Scale Refactoring?

February 23, 2021 6 minutes read   The .NET platform exists for two decades and nowadays the technology is evolving faster than ever. It is now time for serious .NET...
NDepend February 23, 2021

How we quickly refactored with Resharper more than 23.000 calls to Debug.Assert() into more meaningful assertions

January 11, 2021 6 minutes read Since the NDepend inception more than 15 years ago, we stuffed our code with calls to Debug.Assert(). This results today in more than 23.000...
NDepend January 11, 2021

Code Smell – Primitive Obsession and Refactoring Recipes

December 1, 2020 5 minutes read Primitives are the real building blocks of your class and its use is obviously inevitable. But the real problem starts when they are not...
NDepend December 1, 2020

Visualize Code with Software Architecture Diagrams

November 10, 2020 9 minutes read The source code is the design. This famous motto means that no matter how many diagrams you draw and discuss with your colleagues, the...
NDepend November 10, 2020

When your brain can’t handle the complexity: NDepend and PostSharp

November 2, 2020 5 minutes read The size and complexity of codebases have exploded in the last decade. What can you do when your codebase no longer fits your brain?...
NDepend November 2, 2020

Architecture of a C# game rendered with Blazor, Xamarin, UWP, WPF, and Winforms

September 15, 2020 5 minutes read When I wrote my last post Blazor Internals you need to know I came across this great project on github: AsteroidsWasm. This project is...
NDepend September 15, 2020

Blazor Internals you need to know

September 3, 2020 9 minutes read Lately the Blazor technology received a lot of attention both from Microsoft and from the .NET community. Blazor is a UI technology. The ASP.NET...
NDepend September 3, 2020

Top 10 Visual Studio Refactoring Tips

July 7, 2020 6 minutes read With the version 2019 Visual Studio is now mature when it comes to refactoring. This post proposes a tour of the top 10 most...
NDepend July 7, 2020

Case Study : Complex UI Testing

April 29, 2020 6 minutes read In the previous post Case Study: 2 Simple Principles to achieve High Code Maintainability I explained that the principles layered code + high coverage...
NDepend April 29, 2020

Mythical man month : 10 lines per developer day

February 10, 2020 4 minutes read The mythical book, Mythical man month quotes that no matter the programming language chosen, a professional developer will write on average 10 lines of code...
NDepend February 10, 2020

Business Complexity vs. Implementation Complexity

September 19, 2019 6 minutes read It is good software design practice to make sure that methods can be entirely viewed in the code editor that typically shows 30 to...
NDepend September 19, 2019

Static Analysis and Dependency Injection

September 3, 2019 4 minutes read For quite some years now, we (the NDepend team) got some demand about resolving Dependency Injection, see this page on our User Voices. Lately...
NDepend September 3, 2019

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