Author: Carlos Schults
Carlos Schults is a .NET software developer with experience in both desktop and web development, and he’s now trying his hand at mobile. He has a passion for writing clean and concise code, and he’s interested in practices that help you improve app health, such as code review, automated testing, and continuous build. You can read more from Carlos at carlosschults.net.
C# Features: An Exhaustive List of the Best Ones
The first post I wrote for the NDepend blog was about C# 8.0 features. That post inspired a sequel, followed by the series’ final chapter. Those posts dealt with the...
Visual Studio Enterprise vs. Professional: Essential Differences
If you’re a .NET developer, then it’s overwhelmingly likely that you’re a Visual Studio user. There are alternatives to it, sure. But the product from the Redmond giant is the...
When Is It Okay to Use a C# Partial Class?
Today’s post attempts to answer a very simple and straightforward question: “When is it OK to use a C# partial class?” And the answer as straightforward as this: “When you need...
What Is a Good Unit Test? 5 Must-Haves
In this day and age, unit testing isn’t as controversial as it once was. Sure, you still see the occasional inflammatory, clickbait-y, confrontational “unit testing is garbage” type of post...
3 Design Patterns That Have Aged Poorly
Design patterns seem to be a controversial topic. On one hand, many developers seem to love them and treat the famous book by the Gang of Four like sacred scripture. On...
Continuing Our Clean Architecture Example in C#
After a somewhat long delay, it’s time to finally continue our series on clean architecture. This is the second post in the inner series in which we show you a...
Use NDepend to Measure How SOLID Your Code Is
Not that long ago, we published a post defending the SOLID principles of object-oriented design. In today’s post, we take it a step further: we’re going to present NDepend’s rules that will...
Imperative Programming in Depth
Programming languages come in all shapes and sizes: interpreted vs. compiled, weak vs. strong typing, low-level vs. high-level, terse vs. expressive… There are many buckets you can put a programming...
Separation of Concerns, Explained
Software development is a very young field, particularly when you compare it to, say, medicine or law. Despite this, there’s no shortage of wisdom pearls, which accumulated in the decades...
Null Is Evil. What’s the Best Alternative? Null.
“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. I’d say it’s also very likely...
In Defense of the SOLID Principles
From posts that politely offer their criticisms to others that outright deem them “for dummies,” it seems that bashing the SOLID principles is all the rage nowadays. The fact that...
C# 8.0 Features: A Final Glimpse Of The Future
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. On the first post, we covered...
Starting A Clean Architecture Example in C#
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 sample application in C#, to demonstrate...
C# Immutable Types: Understanding the Attraction
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 would be the attraction of such...
C# 8.0 Features: Another Glimpse of the Future
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 generated some buzz, which encouraged me...
An Introduction to Clean Architecture
It seems to me that the topic of software architecture has attracted a lot of interest in the last few years. And among many different flavors and styles of software...
Value Objects: A Tool for Self-Documented Code and Fewer Errors
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 talked about enough that many developers have...
Cargo Cult Programming Is the Art of Programming by Coincidence
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.” If you share my past self’s...
C# 8.0 Features: A Glimpse of the Future
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 Java copycat—until now with the upcoming...