NDepend Blog

Improve your .NET code quality with NDepend

Reporting ReSharper Code Inspections from Your CI/CD Pipeline

October 11, 2024 4 minutes read JetBrains ReSharper is an awesome well-established tool now over two decades old! It offers hundreds of code inspections for C# and VB.NET. These inspections...
NDepend October 11, 2024

C# 13 ref struct interfaces and the ‘allows ref struct’ generic anti-constraint

July 17, 2024 3 minutes read C# 13 will allow interfaces on ref struct. Until now, without this possibility ref struct missed out on abstraction. For example, while Span<T> acts...
NDepend July 17, 2024

C# 13 Semi-Auto Properties

July 8, 2024 2 minutes read C# 13 will introduce an exciting feature to boost developer productivity and code clarity: semi-auto properties. This new feature solves the trade-off between the...
NDepend July 8, 2024

Enterprise Architecture with .NET [Book Presentation]

July 2, 2024 6 minutes read Introducing the brand new book, Enterprise Architecture with .NET. This comprehensive 772-page guide is designed to elevate your career from a regular .NET developer...
NDepend July 2, 2024

C# 13 params collections

June 19, 2024 3 minutes read Here is a quick post to explain how the upcoming C# 13 params collections feature will free your code from many allocations. C# params...
NDepend June 19, 2024

Interview of our Team Lead Patrick Smacchia at WebsitePlanet

May 6, 2024 1 minutes read Here is an interview of our Team Lead Patrick Smacchia at WebsitePlanet, enjoy 🙂
NDepend May 6, 2024

.NET Native AOT Explained

April 24, 2024 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 April 24, 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

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

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

.NET Build Improvement: Stop Wasting Resources

February 4, 2023 5 minutes read I am working on .NET development full-time since 2002 and there is a point that still annoys me after all these years: the default...
NDepend February 4, 2023

The NDepend GitHub Action is now available!

January 25, 2023 3 minutes read NDepend is a tool for .NET developers and teams that assesses the code quality within the IDE and the CI-CD process. With 17 years...
NDepend January 25, 2023

C# 11 Raw String Literals Explained

August 25, 2022 3 minutes read C# 11 introduces Raw String Literals. Undoubtedly this feature will become very popular because it represents an elegant way to solve some issues with...
NDepend August 25, 2022

Modern C# Hello World

November 23, 2021 6 minutes read With Visual Studio 2022 when you create a new console project based on .NET 6, the Hello World source code generated is now as...
NDepend November 23, 2021

Implementing a Domain with POCO (Plain Old CLR Objects)

April 8, 2021 5 minutes read Here is a remark I noticed on my recent post Clean Architecture for ASP.NET Core Solution: A Case Study and I’d like to detail...
NDepend April 8, 2021

Is Artificial Intelligence Assisted Coding the Next Developer Productivity Silver Bullet?

January 26, 2021 9 minutes read The famous Fred Brooks paper “No Silver Bullet – Essence and Accident in Software Engineering“ published in 1987 stated that: “there is no single development,...
NDepend January 26, 2021

The proper usages of the keyword ‘static’ in C#

December 8, 2020 6 minutes read The keyword static is somewhat awkward in a pure Oriented-Object world. I would like to explain here what are the right usages of static I...
NDepend December 8, 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

New C#9 keywords ‘and’ ‘or’ ‘not’

October 5, 2020 4 minutes read HoweverThe C#9 language introduces new controversial keywords: and keyword: Conjunctive patterns. Require both patterns to match or keyword: Disjunctive patterns. Require either pattern to...
NDepend October 5, 2020

.NET 5.0 App Trimming and Potential for Future Progress

September 28, 2020 7 minutes read In this article we will: go through the various ways to publish a .NET 5.0 application, play with .NET 5.0 app trimming to reduce...
NDepend September 28, 2020

10 Visual Studio Files and Layout Productivity Tips

July 21, 2020 3 minutes read Nowadays most developers are working remotely. Hence the monitor(s) configuration might have changed, and might change frequently. In this context, it does matter to...
NDepend July 21, 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

12 Visual Studio Debugging Productivity Tips

June 30, 2020 7 minutes read In this post we assume the the reader knows the basics of debugging with Visual Studio: F5 to start running with the debugger F9...
NDepend June 30, 2020

Not planning now to migrate your .NET 4.8 legacy, is certainly a mistake

January 16, 2020 4 minutes read 2020 will see the achievement of the massive remodeling of the .NET platform initiated by Microsoft in November 2014 with the introduction of .NET...
NDepend January 16, 2020

Ensure that your classes are declared as sealed when possible

July 10, 2019 3 minutes read Inheritance is one of the pillar of OOP. However, in the real world, most classes are not designed to be properly inheritable. Properly designing...
NDepend July 10, 2019