NDepend Blog

Improve your .NET code quality with NDepend

Deconstruction in C#

April 24, 2024 2 minutes read C# 7.0 introduced the deconstruction syntax. It allows developers to extract in a single expression, properties of an object or elements of a tuple...
NDepend April 24, 2024

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

Improve Your Code Review Game with NDepend

April 21, 2024 3 minutes read Code review is a subject with which I’m quite familiar.  I’m familiar first as a participant, both reviewing and being reviewed, but it goes...
Erik Dietrich April 21, 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

Why Should Managers Care About Static Analysis?

March 22, 2024 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 March 22, 2024

Managing to Avoid Cobras

March 3, 2024 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 March 3, 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

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

Announcing the Singleton Challenge

September 21, 2023 2 minutes read About a month ago, I made a post about what the singleton pattern costs you. Although I stated my case in terms of trade-offs...
Erik Dietrich September 21, 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

Improved .NET Debugging Experience with Source Link

June 20, 2023 3 minutes read Source Link is a Microsoft technology that lets .NET developers debug the source code of NuGet packages referenced by their applications. I underlined source...
NDepend June 20, 2023

.NET Micro-Optimization and Refactoring Trick

May 31, 2023 3 minutes read Recently, I made an interesting observation regarding Dictionary<string,T>: the method TryGetValue() is faster when building  with new Dictionary<string,T>(StringComparer.Ordinal). This performance difference can be attributed...
NDepend May 31, 2023

C#12 class and struct Primary Constructors

April 13, 2023 3 minutes read Since C#9 we have the convenient primary constructor syntax for class record (or just record) and struct record: [crayon-68bee34e4461c616912846/] C#12 introduces primary constructor for...
NDepend April 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 required members

November 15, 2022 3 minutes read C# 11 proposes the new keyword required that can apply to an instance property or an instance field declaration within a class, a record...
NDepend November 15, 2022

C# 11 File Scoped Types

October 27, 2022 4 minutes read C#11 added the file scoped types feature: a new file modifier that can be applied to any type definition to restrict its usage to...
NDepend October 27, 2022

Managed pointers, Span, ref struct, C#11 ref fields and the scoped keyword

October 25, 2022 9 minutes read The concept of managed pointer exists in the NET runtime and C# since the inception of the platform in the early 2000. Managed pointers...
NDepend October 25, 2022

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

Visual Studio vs. Jetbrains Rider Performance

June 28, 2022 5 minutes read I work daily with Visual Studio since 1997 but still use Rider from time to time to keep up with progresses since we plan...
NDepend June 28, 2022

WPF / Winforms UI Refactoring: A Case Study

May 11, 2022 4 minutes read WPF and Winforms are still so massively used that Microsoft fully supports those technologies in .NET Core, .NET 5, 6 , 7 and so...
NDepend May 11, 2022