Blog

Looking back on C# 6: String interpolation

With C# 8 on our doorstep, I figure it is a good time to reflect on recent additions to the language that have come before. There are some great improvements you may have missed, some that I really enjoy using, and some I consider have reached canonical usage status that I think are all worth some reflection. String …

Looking back on C# 6: Static Imports

With C# 8 on our doorstep, I wanted to go through some of the C# 6 and 7 language features I have been using that you may have missed. Another feature that I avoided for a while, but have really starting to use a lot more. using brings a namespace into the scope of the file. This allows us to write …

Looking back on C# 6: nameof expressions

With C# 8 on our doorstep, I wanted to go through some of the C# 6 and 7 language features I have been using that you may have missed. This is such a small feature but I use it everywhere. The nameof expression keyword acts like a function, that takes any reference as its argument, and evaluates to the string …

Silverlight 6 with .NetStandard support Announced

Published on April Fools Day, 2019 Microsoft announced today that they are working on Silverlight 6, which is to include .NetStandard support up to at least NetStandard 2.0. Development Manager Loof Lirpa on the Silverlight Development team has confirmed that there is a Silverlight version 6 in the works, and it will …

Looking back on C# 6: Elvis Operator

With C# 8 on our doorstep, I wanted to go through some of the C# 6 and 7 language features I have been using that you may have missed. We start with the Elvis Operator from C# 6. The real name is Null Conditional Operator I believe, but I prefer the former. It is always good to first look at what the simplest, common …

Looking back on C#

With C# 8 on our doorstep, I figure it is a good time to reflect on recent additions to the language that have come before. There are some great improvements you may have missed, some that I really enjoy using, and some I consider have reached canonical usage status that I think are all worth some reflection. It was …

So you wanna be a Rockstar (Developer)?

Have you been to see rock bands perform live? There are a lot of subtleties to their performance that you might not have noticed. And it is relevant to software…

Looking forward to dotnet in 2019

It’s a new year, and we already have a bunch of dotnet releases to look forward to, thanks to the open development processes that Microsoft is using these days with dotnet. The three big releases I am looking forward to are C# 8 and .Net Core 3.0, and a NetStandard2.1. (Not to mention there is a .Net Framework …

Sharing audio to Google Hangouts (or Meets)

I work remotely, and I’ve used a bunch of solutions over the last few years to be able to route audio from my computer into a meeting call in Google Hangouts. From hardware to virtual audio cable software, every solution has been finicky at best, and wrecks day-to-day audio and video at worst, and requires a …

Speciality NuGet Packing on .Net Core

I recently wrote about NuGet packing on linux specifically, and want to continue the theme with other things you can do with NuGet packaging. As a quick recap you can use a .Net Core *.csproj as a wrapper around a *.nuspec file and use dotnet pack to pack it, cross-platform, without needing nuget.exe. <Project …

NuGet Packing on Linux

For anyone who has been cutting-edge with .Net for a while will know that the nuget.exe runs under mono. And that you can use nuget.exe to package *.nuspec files into *.nupkg files. Anyone who has been doing dotnet cross-platform will also know that you can use dotnet pack on both Windows and Linux to package your …

My first DDD Event and how I made the decision to work a 16 hour Saturday

In my hand, I have a couple of train tickets. The reservations indicate that I left the house at 5 am Saturday morning to make the first train from Birmingham to Cambridge, and wouldn’t get home again until 9 pm. And that is exactly what I did. I’ve been making more of an effort this year to attend …

HostBuild your dotnet Consoles like you WebHostBuild your web apps.

I wrote a while back on getting your Windows Services building with .Net Core which is a nice way to use the new SDK pipeline but still host on Windows without much fuss. But what If you like the approach but want to run on Linux? Well after some stumbling around in the dotnet core docs, I found information about …

Agile Jogging to complement your Sprinting

Way back when I was first introduced to everything agile from Jezz Santos, we complemented the terminology of our “sprint” with that of a “jog”. Sprinting Sprinting or sprints are the idea of a (usually) timeboxed length of real-world time (5 days, 3 weeks etc) that produces a cadence of focused …

Time-tracking Analysis - Parsing and Presenting a Heatmap of your working week from Toggl Data

As a remote worker, I need to keep myself honest. This is as much “Make sure I do my hours” as it is “Don’t overwork!”. Anyone who has worked from home or remotely for a period of time understands what I mean completely. To monitor this, I use Toggl. Toggl is time-tracking as a service, …

Method calls. Less chaining, more Functional.

It came up in a recent code review that we had a method that did stuff, then called a method that did stuff, that then called a method. Eventually, the last method in the chain bubbled back up and out. This is a bit of an anti-pattern in my eyes. Essentially you are coupling these methods (functions) together. As a …

Retry Policies with Polly

I originally set out to write about Polly. Then I started reading their documentation. I quickly realised that I couldn’t write anything as detailed and accurate as they already had available. So instead, I’m going to give more of a super high level, with links to relevant reading. You can find their …

Beefeater - Guard your methods' Ins and Outs.

A little while back I started paying attention to Rust and got all inspired to have a bit of that it C#. The result was this library I called Beefeater. This library contains helpers to add semantics to the optionality of your parameters and results from method calls. I built it on NetStandard1.0 for maximum …

A Little Town called Milton

There is a small town in the South Island of New Zealand called Milton. The main road runs right through the town in one side and out the other. Its a nice enough place to stop on a road trip. There is a unique feature to this main road in Miton, you see. When you get to the middle of the town and the road has a …

.Net on Docker - What's in my Dockerfile? Tips and Tricks

I’ve started getting into building Docker Containers as deployment packages. These are some learnings that I want to share, hopefully helping countless others with a better build, test and debug cycle with .Net on Docker with Visual Studio. Start with the defaults Use the built-in tools in Visual Studio to …