NDepend Blog

Improve your .NET code quality with NDepend

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

Architecture of a .NET Application: 8 Case Studies

January 30, 2024 9 minutes read This recent question on Reddit’s Number of projects per solution led to interesting debates. Of course, the answer depends largely on the overall size...
NDepend January 30, 2024

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

November 20, 2023 7 minutes read The Open-Close Principle (OCP) is one of the five essential SOLID design principles. These principles are guidelines for the proper usage of object-oriented features....
NDepend November 20, 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

Vertical Slice Architecture in ASP.NET Core

October 20, 2023 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 October 20, 2023

Clean Architecture in ASP.NET Core

October 20, 2023 9 minutes read The Clean Architecture approach has gained significant popularity for the design and development of software applications, emphasizing key principles such as maintainability, testability, and...
NDepend October 20, 2023

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

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

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

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

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

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

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

Software Architecture: The 5 Patterns You Need to Know

June 26, 2018 1 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 June 26, 2018