Posts from 2021
2021-12-30 The Books I Read in 2021
2021 was better than 2020. Not great, but better. My Mum was in the hospital so I went up to Canada to visit my family. I had a pretty productive garden, and continued to adjust to working from home. And again, fortunately, my wife and I enjoyed good health.
As this year comes to a close, I want to list all the books I read. I read a few more (I think?) than last year. Some of them I didn’t finish (for reasons I’ll explain below).
Here is the list of them and a brief mention of the effect they had on me.
2021-12-18 How to organize service registration with the Microsoft Dependency Injection Container
Sometimes the number of Dependency Injection services registered by your .NET application can grow to a size that means you should start splitting them out into separate pieces. This post discusses ways you may consider doing that.
2021-12-17 The Return of the Blog!
I am glad to get the opportunity to write blob posts again. The additional work I have been doing has subsided and I feel I can commit to my weekly post schedule again.
It feels good.
2021-11-07 Recognizing Patterns
I was called in on the weekend to diagnose an issue with an application I wrote. I was very lucky to spot something in the application logs that led to correcting the issue. Recognizing patterns is pretty important in my job.
2021-10-03 Exploring Test-Driven Development - Fooling Yourself
Test-Driven Development, is a fascinating topic. Robert C. Martin heralds it as a foundational discipline of software development. Others, aren’t so convinced. Even though I have written my thoughts on this topic once or twice over the years, I was inspired by Martin’s recently released “Clean Craftsmanship” to explore it further. This is the first exploration, focused on how you can fool yourself into thinking your way is better.
2021-08-08 Throttling Async Tasks with SemaphoreSlim
Recently we had a situation where we thought we were throttling tasks correctly. Turns out we weren’t.
2021-07-03 Blog Update
I’ve missed a few blog posts recently.
2021-06-13 DateOnly/TimeOnly Types in .NET 6
In the latest preview of .NET 6.0, two new struct types were introduced:
TimeOnly. They fill a gap for use cases long asked for in .NET.
2021-05-30 Background Polling Tasks Using IHostedService
Often I encounter processing scenarios that require a background tread to process tasks. In .NET application, using the IHostedService can make it easier.
2021-05-23 The Humble Architect
Recently I re-read The Mythical Man-Month and one section resonated with me. It described how an architect of a software development system should deal with the people that develop his or her vision. I think it defines The Humble Architect.
2021-05-22 The Mythical Man-Month - A Review
Written in 1975, it was 20 years old when I bought my copy of The Mythical Man-Month 25 years ago. What can a book more than 45 years old tell me today? Quite a lot actually.
2021-05-09 Using C# Extension Methods
Extension methods in C# are very powerful and I like them a lot. But I have found that I tend to only use them under certain circumstances.
2021-05-02 Reusing Object in Unit Tests
Writing unit tests sometimes involves creating complex objects to test with. Reuse these object carefully.
2021-04-18 Problem Details with ASP.NET Core
I read this the other day and it made total sense to me:
If there is an existing standard, we should look into using it.
2021-04-11 Wicked Problems, Righteous Solutions
I had forgotten how Wicked Problems, Righteous Solutions was way ahead of its time. Let me explain.
2021-04-04 Using Application State in ASP.NET Core
“Classic” ASP.NET applications would use the built-in
Applicationobject to store values that were cached across the entire application. In ASP.NET Core, this was removed. Let’s look at alternatives.
2021-03-28 Reviewing Programming Pearls, 21 Years Later
Are the principles laid out in the book Programming Pearls still relevant today? Let’s find out.
2021-03-21 Software Development Echo Chamber
Sometimes people get caught in an echo chamber, and software developers are no different.
2021-03-14 Using Elasticsearch with Docker
Hosting software with Docker is a great way to setup your development environment. Using Docker to host a local instance of Elasticsearch is no different. Here are my notes on how to set things started.
2021-03-07 IIS Config Locations
When modifying IIS sometimes i forget where the config files are located. Let’s write them down so I don’t have to hunt for them in the future.
2021-02-28 Clarity Over Cleverness
I read a tweet this week that made me think. It was from Seth Juarez, a manager at Microsoft.
Most of our problems in tech stem from our desire to be clever as opposed to simply being clear. Cleverness over clarity is our Achilles heel
2021-02-21 Using ASP.NET Core Health Checks
After using a custom health check solution I was curious to see what the new HealthChecks library from Microsoft can offer.
2021-02-14 Costs of Unit Testing
Some people question whether unit testing is worth the cost. Others use the cost of unit testing as an excuse to not write the tests.
2021-02-07 Changing Default Time-outs for ASP.NET Core
Sometimes you may need to change the default time-outs. I often have to search numerous articles to find the answers. I hope in the future I’ll know to come here for all the details.
2021-01-31 The Theory of Agile Refactoring
I feel refactoring my code is one of the best ways to maintain a well-designed, readable codebase. I also think helps the most when you perform the refactorings while you are developing your code, not after.
2021-01-24 Avoiding Null Obsession with Maybe in C#
In the previous blog post I wrote about using a Result class. In this post I want to explore a companion called Maybe.
2021-01-18 Using Result Classes
Over and over I have found cases where returning a single value from a function is not enough. Enter the Result class.
2021-01-09 The Power of the Compose Method Refactoring
The Compose Method Refactoring is one of the more powerful refactorings I use. Let’s explore what it is and why it can make such a difference it your code.
2021-01-02 Memory Leaks using Dependency Injection with .NET Core
I inherited a .NET Core application that had a memory leak. I found the source to be the way the application used the Dependency Injection framework. It was something I could have easily done myself so I figured I better write down the details to remind my future self to avoid the same issue.