TheSharperDev

A site containing some of Morgan’s thoughts

26 Dec 2019

Getting Started with Elmish

I’ve been learning F# lately and have been wondering what the F# in the browser experience is like. There are seve...
20 Dec 2019

Introduction to F# Type Providers

This post is one of many in the FSAdvent Calendar. A December’s worth of blog articles all about FSharp. Many than...
14 Dec 2019

The Cost of Abstracting a List in C#

In software development, there’s a tradeoff between design and optimization. As a general rule of thumb, most abst...
03 Dec 2019

The Difference Between IEnumerable and IQueryable Explained

This post is part of this year’s C# Advent Series. Which counts down to Christmas with two C# articles published e...
30 Nov 2019

Functional Fundamentals: Currying

This is the second article on this blog discussing functional programming concepts. Here is a link to the first, Pure v....
23 Nov 2019

Benchmarking For Loop Variants

I read Thomas Levesque’s recent post about Using foreach with an index. I’ve definitely run into the problem...
16 Nov 2019

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....
14 Nov 2019

Under the Hood of C# Alias Types and Namespaces

C# has two different ways to refer to a lot of its fundamental types. String or string, Boolean or bool, Int32 or int, c...
09 Nov 2019

Explaining Async Programming With Pizza

Asynchronous programming. It means so many things to so many people. When first learning async programming, it’s e...
02 Nov 2019

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...