Cyclomatic complexity and its cousin Cognitive Complexity are subjects every developer and tester should understand because bad code lets bugs multiply.
C#
WPF Core with F# Libraries
Learn to create a WPF Core app that can talk to a F# class library in .NET 3.0. This is part of a series on simulating squirrels with genetic algorithms.
Caller Member Info, C#, and You
Caller Member Info attributes allow you to simplify your code by providing more information to individual methods without having to pass in explicit values. Let’s see how they work.
How C# 8 Helps Software Quality
Take a look at how new C# 8.0 language features available now in .NET Core 3 can help improve the quality of released software.
Discriminated Unions in C# using OneOf
Ever wish you could act on different types of variables — effectively switching by object type and taking different action depending on which class is present? Discriminated Unions from functional programming languages offer an answer to this. In this article I explore the good and bad of Discriminated Unions in C# and […]
Creating a .NET Core API
This article will walk you through some simple steps in creating, running, and testing a new ASP .NET Core Web API. Prerequisites I will be using .NET Core 2.1 as it’s what I have installed on my machine, though today Release Candidate 1 of .NET Core 3 came out. To get started: Download […]
Action-Oriented C#
Five years ago I hit a plateau. My code hit a certain level of quality and flexibility and stopped improving. Here’s how I used aspects of functional programming to keep climbing. My code was pretty SOLID, but there was still a lot of very similar code, despite actively trying to […]
Safer Code with C# 8 Non-Null Reference Types
Null reference exceptions are one of the most frequent errors encountered in .NET applications. As powerful as the framework is, it’s built around a core assumption that reference types can point to null, so any code that works with a reference type needs to either know already that the object is […]
Annotating Nulls in C#
In my prior post I talked about using functional programming null handling features. While this is a valid approach, it is also one that requires a lot of code changes to achieve. If you don’t want to make that drastic of a level of changes, there are a few other […]
Eliminating Nulls in C# with Functional Programming
This is a short and sweet article showing how the Option class can bring functional programming concepts to C# codebases and prevent null reference exceptions.