NDepend and .NET Fx v4.7.2: an extension method collision and how to solve it easily
May 17, 2018 3 minutes read In Oct 2017 I wrote about the potential collision problem with extension methods. At that time the .NET Framework 4.7.1 was just released with...
What Makes a Codebase Acquirable?
May 15, 2018 1 minutes read What makes a codebase acquirable? This is the rare question that affects software developers, managers, and executives in a surprisingly similar way. And that’s...
A Look at .NET Core 2.1
May 8, 2018 6 minutes read The .NET Framework has certainly been through many changes since it was introduced by Microsoft in 2002. Arguably, .NET Core is the biggest change....
Null Is Evil. What’s the Best Alternative? Null.
May 1, 2018 1 minutes read “Null is evil.” If you’ve been a software developer for any reasonable length of time, I bet you’ve come across that statement several times....
In Defense of the SOLID Principles
April 24, 2018 2 minutes read From posts that politely offer their criticisms to others that outright deem them “for dummies,” it seems that bashing the SOLID principles is all...
Quickly assess your .NET code compliance with .NET Standard
April 19, 2018 4 minutes read Yesterday evening I had an interesting discussion about the feasibility of migrating parts of the NDepend code to .NET Standard to ultimately run it...
Moq: A Detailed Look at Its Code Quality
April 17, 2018 7 minutes read In case you haven’t seen it, I’ve been doing a series of research-oriented posts for this blog. This is going to be in the...
On the Superiority of the Visual Studio Dark Theme
April 10, 2018 2 minutes read When I downloaded the newest version of NDepend, something wonderful awaited me. Was it support for the latest .NET Core version? The addition of...
C# 8.0 Features: A Final Glimpse Of The Future
April 3, 2018 1 minutes read It was not that long ago when we published our first post about the future of C# 8.0 and the probable features it’s getting....
Starting A Clean Architecture Example in C#
March 27, 2018 1 minutes read It’s time for the second part of our series about clean architecture. As promised in the first post, we’re going to show you a...
Functional C# Improves Your Design Without Making Your Code Cleaner, Exactly
March 20, 2018 2 minutes read Today I offer another one of the code research posts we’ve been doing. If you want more backstory on the series, check out the...
C# Immutable Types: Understanding the Attraction
March 13, 2018 2 minutes read As I’m sure you’re aware, the word immutable means “unchanging.” So, C# immutable types obviously refers to a C# type that can’t change. What...
Checking DDD Ubiquitous Language with NDepend
March 13, 2018 4 minutes read Since NDepend version 2018.1, the tool proposes a default rule to check Domain Driven Design (DDD) Ubiquitous Language validity. DDD Ubiquitous Language Let’s quote Martin Fowler...
New .NET Core 2.1 and ASP.NET Core 2.1 APIs
March 8, 2018 3 minutes read .NET Core 2.1 and ASP.NET Core 2.1 Preview1 have just been released (see here the official announcement) and we are going to explore new...
CQRS: Understanding From First Principles
March 6, 2018 1 minutes read There seems to be no end to the choices you have for architecture when building an application. You don’t want to fall victim to cargo...
How to Measure Lines of Code? Let’s Count the Ways
February 27, 2018 1 minutes read There are a few ways to count lines of code, and they each have their advantages and disadvantages. Much of the differences come down...
Your Guide to Winning Arguments About Code
February 20, 2018 3 minutes read The whole “tabs versus spaces” thing occupies sort of an iconic position in the programmer world. It represents the impossibility of winning arguments that...
Functional Programming Makes Your Code Not OO…And That’s It
February 13, 2018 2 minutes read Over the course of the fall and winter, I’ve been gaining momentum with code research posts. Today, I bring that momentum to bear on...
C# 8.0 Features: Another Glimpse of the Future
February 6, 2018 1 minutes read About two months ago, we talked about some of the (probable) features we’ll be getting with C# 8.0. The post was well received and...
An Introduction to Clean Architecture
January 30, 2018 2 minutes read It seems to me that the topic of software architecture has attracted a lot of interest in the last few years. And among many...
Unit Tests Correlate With Desirable Codebase Properties
January 23, 2018 2 minutes read Today, I give you the third post in a series about how unit tests affect codebases. The first one wound up getting a lot...
Value Objects: A Tool for Self-Documented Code and Fewer Errors
January 16, 2018 1 minutes read Have you ever heard of value objects? I bet you have. Even though they’re talked about a lot less than I’d like, they’re still...
Delegation As a Developer: Building the Next You
January 9, 2018 3 minutes read “I love me some me!” Yes, there’s more than just an ounce of truth in that statement said by the great NFL receiver...
Cargo Cult Programming Is the Art of Programming by Coincidence
December 28, 2017 2 minutes read I first learned about cargo cult programming a few years ago. I remember thinking back then, “What a strange name for a programming-related concept.”...
The Unit Test Effect Study, Refined
December 21, 2017 2 minutes read About a month ago, I wrote a post about how unit tests affect (and apparently don’t affect) codebases. That post turned out to be...
Lack of Cohesion of Methods: What Is This And Why Should You Care?
December 14, 2017 2 minutes read Lack of cohesion of methods (sometimes abbreviated LCOM) is one of those things that occurs fairly high up on the software hierarchy of needs. ...
C# 8.0 Features: A Glimpse of the Future
November 30, 2017 1 minutes read It’s been almost 20 years since Microsoft released the first version of the C# language. From its inception—when some unjustly deemed it a mere...
Unit Testing Doesn’t Affect Codebases the Way You Would Think
November 22, 2017 2 minutes read I’ve just wrapped up another study. (The last one was about singletons, if you’re interested.) This time, I looked at unit testing and the...
5 Tips to Help You Visualize Code
November 16, 2017 2 minutes read Source code doesn’t have any physical weight — at least not until you print it out on paper. But it carries a lot of...
A problem with extension methods
November 13, 2017 2 minutes read We like extension methods. When named accordingly they can both make the caller code clearer, and isolate static methods from classes on which they...