A site containing some of Morgan’s thoughts
C#’s WhenAll and Exception Handling
C#’s WhenAll method helps save time when processing lists of tasks. When thinking about exceptions, I couldn&rsquo...
Getting Started With BenchmarkDotNet
BenchmarkDotNet is a great library for performance testing on the dotnet platform. On this blog I’ve used it to be...
Explaining Implicit Conversion Operators in C#
Sometime ago at work, I discovered a class that could automatically convert to and from a string whenever it was needed....
How to Create a .NET Core API CI Action Using Github Actions
Github Actions is a new tool from Github designed to automate workflows for github projects. There are numerous things t...
Add Swagger to a .NET Core 3.0 API
If you’ve ever interacted with an API, you know that it can be messy. Does it support json or xml? How should I co...
.Net Core 3.0 AddControllers() Method
In case you haven’t heard, .Net Core 3.0 has now been released! So many things are now available as part of this r...
An Introduction to C# Expression Trees
Expression Trees are an interesting C# language feature that you might not have knowingly used before. Expression Trees ...
The Cost of Synchronous Async Methods
C# 5 introduced the async/await keywords and dramatically increased how easy it was to program asynchronously. The first...