NDepend Blog

Improve your .NET code quality with NDepend

Will Visual Studio Be Migrated to .NET Core and Become Multi-Platform?

April 22, 2024 7 minutes read I came across comments on a recent Reddit post and thought it would be intriguing to analyze the DLLs of Visual Studio 2022 (version...
NDepend April 22, 2024

C# String Interpolation Explained

April 17, 2024 4 minutes read C# String Interpolation is a powerful feature that simplifies the syntax for embedding variables and expressions within strings to construct strings dynamically. String interpolation...
NDepend April 17, 2024

Clean Architecture in ASP.NET Core

April 16, 2024 9 minutes read The Clean Architecture pattern has gained significant popularity for the design and development of software applications. It emphasizes key principles to better maintain, scale,...
NDepend April 16, 2024

C# Async Await Explained

April 16, 2024 9 minutes read If your application involves I/O-bound operations like network requests, database access, or file system reads and writes, asynchronous programming is essential. Similarly, for CPU-bound...
NDepend April 16, 2024

Visual Studio vs Visual Studio Code: The Ultimate Guide (2024)

April 15, 2024 8 minutes read In the world of .NET development, two popular tools stand out: Visual Studio and Visual Studio Code. Visual Studio is generally recognized as a...
NDepend April 15, 2024

Class vs Struct in C#: Making Informed Choices

April 15, 2024 9 minutes read In C# programming, choosing the right data type between classes and structs is a crucial decision that impacts application performance and design. This article presents...
NDepend April 15, 2024

C# Optional Parameters Explained

April 12, 2024 3 minutes read C# optional parameters allow methods, constructors, and indexers to be invoked without providing arguments for those optional parameters. This feature is particularly useful when...
NDepend April 12, 2024

C# Pattern Matching Explained

April 11, 2024 7 minutes read   Since the C# version 7, C# has support for pattern matching. C# pattern matching is here to simplify complex if-else statements into more...
NDepend April 11, 2024

Abstract Class vs Interface in C#

April 5, 2024 7 minutes read Abstract Class vs Interface in C# is a fundamental trade-off to master. Understanding the distinction between each option is fundamental for crafting flexible and...
NDepend April 5, 2024

Understand Directory.Build.props: Centralizing .NET Project Configurations

April 4, 2024 4 minutes read In the world of .NET development, managing project configurations and properties efficiently can significantly streamline your development process. One powerful but often underappreciated feature...
NDepend April 4, 2024

The .editorconfig files for .NET developers

March 29, 2024 4 minutes read In software development, ensuring uniform coding styles across different editors and IDEs is challenging. .editorconfig files offer a universal solution to this problem, transcending...
NDepend March 29, 2024

Reporting Roslyn Analyzers

March 26, 2024 4 minutes read Introduction Roslyn Analyzers offer significant value to .NET developers. They identify code issues and vulnerabilities and inform developers about necessary fixes directly in the...
NDepend March 26, 2024

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

C# Record Explained

January 23, 2024 7 minutes read A C# record is a data-centric type that usually doesn’t contain behaviors.  C# 9 introduced the keyword record to quickly declare a class primarily...
NDepend January 23, 2024

C# ValueTuple Full Guide

January 18, 2024 9 minutes read In 2017 C# 7.0 introduced ValueTuple. This feature makes it convenient to handle lightweight data structures. Here is an example of relying on the...
NDepend January 18, 2024

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

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

SOLID Design in C#: The Interface Segregation Principle (ISP) with Examples

November 13, 2023 6 minutes read The Interface Segregation Principle (ISP) is one of the five essential SOLID design principles. These principles are guidelines for the proper usage of object-oriented features. The...
NDepend November 13, 2023

SOLID Design in C#: The Liskov Substitution Principle (LSP)

November 13, 2023 7 minutes read The Liskov Substitution Principle (LSP) is one of the five essential SOLID design principles. These principles are guidelines for the proper usage of object-oriented features. Named after...
NDepend November 13, 2023

SOLID Design in C#: The Single Responsibility Principle (SRP)

November 9, 2023 7 minutes read The Single Responsibility Principle (SRP) is one of the five essential SOLID design principles. These principles are guidelines for the proper usage of object-oriented features....
NDepend November 9, 2023

SOLID Design in C#: The Dependency Inversion Principle (DIP) with Examples

November 8, 2023 8 minutes read The Dependency Inversion Principle (DIP) is one of the five essential SOLID design principles. These principles are guidelines for the proper usage of object-oriented...
NDepend November 8, 2023

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

Improve Visual Studio Build Performance

August 11, 2023 7 minutes read Time is your most precious asset and slow build is high in the list of developer’s productivity killers. With slow build the penalty is...
NDepend August 11, 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