NDepend Blog

Improve your .NET code quality with NDepend

Developing an MCP Server with C#: A Complete Guide

February 26, 2026 9 minutes read At NDepend, we’ve built an MCP Server in C# and open-sourced it here: https://github.com/ndepend/NDepend.MCP.Server It leverages both the NDepend.API and the ModelContextProtocol NuGet package...
NDepend February 26, 2026

.NET – 7 Decompiler Compared (2026)

January 5, 2026 9 minutes read Interested in reverse engineering or analyzing .NET code? Luckily, a variety of powerful .NET decompiler tools are available. This article provides a comprehensive list...
NDepend January 5, 2026

C# Pattern Matching Explained (2026)

January 1, 2026 7 minutes read   C# Pattern Matching uses special syntax to simplify code by testing if an expression meets specific conditions, like a type or constant value....
NDepend January 1, 2026

A Guide to Code Coverage Tools for C# in 2026

January 1, 2026 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 1, 2026

C# Async/Await Explained: Complete Guide with Examples [2026]

January 1, 2026 9 minutes read Mastering async / await in C# is key to building fast, scalable .NET apps. Introduced in C# 5 in 2012, these keywords transformed how...
NDepend January 1, 2026

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

December 30, 2025 8 minutes read Despite their similar name, Visual Studio and Visual Studio Code are two distinct products created by Microsoft. Visual Studio is a full-featured Integrated Development...
NDepend December 30, 2025

WPF vs WinForms – Making the Right Decision in 2026

December 29, 2025 8 minutes read If you’re a developer faced with the decision of selecting between Windows Presentation Foundation (WPF) and Windows Forms (WinForms) commonly referred to as WPF...
NDepend December 29, 2025

C# Array and List Fastest Loop in 2026

December 27, 2025 5 minutes read Discussions about the fastest way to loop through an array (T[]) and a List<T> in C# have been ongoing. Results can vary with each...
NDepend December 27, 2025

C# 14 Extension Members: Also Known as Extension Everything

November 12, 2025 4 minutes read C# 14 introduces extension members — also known as extension everything. The New C# 14 Extension Method Syntax The example below demonstrates how to...
NDepend November 12, 2025

Modern .NET Reflection with UnsafeAccessor

November 10, 2025 4 minutes read Reflection in .NET has traditionally been powerful but slow. Starting with .NET 8, the [UnsafeAccessor] attribute provides a zero-overhead alternative for accessing private members,...
NDepend November 10, 2025

.NET 10.0 dotnet run app.cs or file-based program

November 10, 2025 5 minutes read This post covers a new .NET 10 feature that lets you build and run a single C# file without creating a .csproj project file....
NDepend November 10, 2025

Improve C# code performance with Span<T>

October 28, 2025 9 minutes read C# Span<T> and ReadOnlySpan<T>, introduced in C# 7.2 (2017) and fully supported in .NET Core, are highly efficient structures for working with contiguous memory...
NDepend October 28, 2025

C# Optional Parameters Explained

October 27, 2025 3 minutes read In C#, optional parameters are not mandatory—they can be omitted at call site. They allow you to skip providing arguments for certain parameters. Thus...
NDepend October 27, 2025

Boxing in C#: What It Costs You and How to Get Rid of It

October 22, 2025 5 minutes read Boxing in C# happens when a value (int, struct, etc.) is converted to an object reference or an interface reference. This wraps the value...
NDepend October 22, 2025

Interesting Facts about Visual Studio 2026 Preview Insider

September 10, 2025 4 minutes read After four years of waiting since Visual Studio 2022, the Visual Studio 2026 Preview Insider is finally here! You can download it today here....
NDepend September 10, 2025

Visual Studio Next Version: What’s Coming and What to Expect

September 1, 2025 6 minutes read In mid-August 2025, Mads Kristensen, lead designer of the C# programming language, discussed with his team The Future of Visual Studio in a YouTube...
NDepend September 1, 2025

C# Record Explained

August 26, 2025 7 minutes read A C# record is a lightweight, data-centric type designed primarily for storing and representing values rather than implementing behavior. Introduced in C# 9, the...
NDepend August 26, 2025

C# 15 Unions

August 25, 2025 6 minutes read In an August 2025 video, Mads Torgersen -lead designer for the C# Programming Language- outlined the C# team’s plans for C# unions. The team...
NDepend August 25, 2025

Modern C# Hello World

August 11, 2025 6 minutes read With Visual Studio 2022 when you create a new console project based on .NET 6 or upper, the Hello World source code generated is ...
NDepend August 11, 2025

.NET Native AOT Explained

August 5, 2025 7 minutes read Within the realm of software development, optimizing performance and streamlining efficiency remain essential. The .NET platform has been innovating for 2 decades to provide...
NDepend August 5, 2025

C# ValueTuple Full Guide

July 28, 2025 9 minutes read C# 7.0 introduced ValueTuple in 2017, making it easier to work with lightweight data structures.Here’s an example using ValueTuple with the () syntax to...
NDepend July 28, 2025

What the Singleton Pattern Costs You

July 17, 2025 2 minutes read Do you use the singleton pattern?  If not, I’m assuming that you either don’t know what it is or that you deliberately avoid it....
Erik Dietrich July 17, 2025

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

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

July 3, 2025 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 July 3, 2025

C# DateTime Format In A Nutshell

June 16, 2025 7 minutes read This article covers C# DateTime Format, addressing both of its main aspects: Obtain a date-formatted string. Use a pattern like "yyyy-MM-dd HH:mm:ss" to extract and...
NDepend June 16, 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

C# Index and Range Operators Explained

May 24, 2025 3 minutes read In this post, we comprehensively demystify the C# index ^ and range .. operators. The index operator ^ Let’s start with the index ^...
NDepend May 24, 2025

Abstract Class vs Interface in C#

May 21, 2025 7 minutes read In C# object-oriented programming (OOP), understanding the difference between Abstract Class vs Interface is essential for designing flexible and maintainable code. Both abstract classes...
NDepend May 21, 2025

C# String Interpolation Explained

May 14, 2025 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 May 14, 2025