Future-proofing .NET Tests with NUnit Values Attributes

Future-proofing .NET Tests with NUnit Values Attributes

In this article, I'll propose a C# solution to a common testing problem with enums using a special NUnit attribute. I'll also introduce you to ... Read More
Quick Tip: Modern Arrows in your Editor

Quick Tip: Modern Arrows in your Editor

Languages like JavaScript, TypeScript, C#, and others offer similar syntax for their operators. With the use of font ligatures, you can represent these languages features ... Read More
The Myth of Code Coverage

The Myth of Code Coverage

In this article I'll discuss what Code Coverage is and its usefulness and limitations. I'll advocate for a risk-aware approach to software quality and give ... Read More
Create an ASP .NET Core Site with Entity Framework

Create an ASP .NET Core Site with Entity Framework

In this tutorial we'll create an ASP .NET Core 3.0 web application using MVC, Entity Framework, and a restful Web API ... Read More
F# Genetic Algorithm - Defining Squirrel Genes

F# Genetic Algorithm – Defining Squirrel Genes

In this article, we'll implement the chromosome of a digital squirrel. Our ultimate goal is to set ourselves up for implementing a full genetic algorithm ... Read More
Tracking .NET Code Quality with NDepend

Tracking .NET Code Quality with NDepend

Let me introduce you to my go-to code visualization and analysis tool for .NET: NDepend. NDepend lets me see dependencies, issues, and quality over time ... Read More
Safer C# with the nameof operator

Safer C# with the nameof operator

C# 6 introduced an operator that can prevent several issues. Let's look at the nameof operator and how it improves maintainability while reducing defects ... Read More
Cyclomatic Complexity is the Mind Killer

Cyclomatic Complexity is the Mind Killer

Cyclomatic complexity and its cousin Cognitive Complexity are subjects every developer and tester should understand because bad code lets bugs multiply ... Read More
WPF Core with F# Libraries

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 ... Read More
F# Unit Testing - Refining the Squirrel Simulation

F# Unit Testing – Refining the Squirrel Simulation

Ever wondered about using F# Unit Testing to build a simulation of a squirrel's world? No? Probably a good sign ... Read More
Caller Member Info, C#, and You

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 ... Read More
The Worst Bug I Ever Caused

The Worst Bug I Ever Caused

Causing a production bug is a right of passage for new developers. Let me tell you about the worst bug I've ever caused - and ... Read More
How C# 8 Helps Software Quality

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 ... Read More
F# Squirrel Brains: Adding Actors and Getting Functional

F# Squirrel Brains: Adding Actors and Getting Functional

This is part two of a tutorial series on using F# to build a genetic algorithm in .NET Core. By the end of the article ... Read More
Creating a .NET Core 3.0 F# Console App

Creating a .NET Core 3.0 F# Console App

This is part 1 in a new tutorial series on creating a genetic algorithm in F# and .NET Core 3.0. This tutorial is focused on ... Read More
A Love Letter to .NET

A Love Letter to .NET

With Microsoft’s official release of .NET Core 3 today, I want to give you my perspective on .NET and tell you how the platform continues to innovate ... Read More
Discriminated Unions in C# using OneOf

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 ... Read More
Safe .NET Feature Flags with FeatureToggle

Safe .NET Feature Flags with FeatureToggle

Yesterday I wrote on Feature Flags in a largely language-neutral overview article. Today I want to discuss my library of choice for Feature Flags in .NET ... Read More
Mocking Data with Bogus

Mocking Data with Bogus

Ever needed a bunch of random data for testing, UI prototyping, or even as part of an application? I did, and I found a good ... Read More
Creating a .NET Core API

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 ... Read More
Action-Oriented C#

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 ... Read More
Safer Code with C# 8 Non-Null Reference Types

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 ... Read More
Annotating Nulls in C#

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 ... Read More
Eliminating Nulls in C# with Functional Programming

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 ... Read More
Neural Nets in C# vs F#

Neural Nets in C# vs F#

This is a comparison of C# and F# implementations of programming a simple neural network library I wrote for use in a side project. A ... Read More
We are the Borg

We are the Borg

Recently, I’ve been thinking more about our programming languages and even us as engineers as not too dissimilar to The Borg. Let me explain ... Read More
Common .NET Gotchas

Common .NET Gotchas

.NET Development and C# in particular have come a long way over the years. I’ve been using it since beta 2 in 2001 and I ... Read More
Refactoring C# Unit Tests

Refactoring C# Unit Tests

Unit tests are often treated like second class citizens and not given the same level of polish and refactoring as our production code. As a ... Read More
Snapshot Testing in JavaScript & .NET

Snapshot Testing in JavaScript & .NET

Earlier this year I discovered the fantastic Jest JavaScript unit testing library made by Facebook and commonly associated with React. Jest is built on top ... Read More
Making Defects Impossible

Making Defects Impossible

Certainly we can’t eliminate all types of issues, but the types of issues we can strategically address at the design or language level is growing ... Read More
Victimless Canary Testing with Scientist

Victimless Canary Testing with Scientist

Scientist offers a way to improve existing code without introducing users to new bugs. Learn how Scientist offers a safer alternative to canary testing ... Read More