Retry Helper

One of the smaller NUGET packages I’ve published in the last few years is CG.Retry. This package contains a single utility class, named RetryHelper, which simplifies the process of retrying blocks of code. Here’s a quick example:

  So, […]

Email Package

Introduction The ability to send email from a .NET program has been around for about as long as .NET itself has been around. The abstractions in the System.Net.Mail namespace do a great job, but, they could be better. For instance, […]

Repository Extension

Photo by Sharon McCutcheon on Unsplash Last time I wrote about a Strategy extension for my Builder library that makes it easier to separate my algorithm implementations from my Providers. The Strategy / Builder combination is a good fit, but, things could be […]

Strategy Extension

The last few articles I’ve posted have been about my Builder library. That library is a great tool for simplifying the process of configuring and creating complex objects. But, even though I extended the classic GOF Builder pattern to include […]

Builder Part 3

In the last two articles I covered the high-level architecture of my Builder library. I then went into detail, describing how the library did what it does. I finished by promising that I would lay out several different strategies for […]

Builder Part 2

As a refresher, here is the high level overview of my Builder library: What’s not on this diagram are the base classes that correspond to each interface. I left the base classes off to simplify the diagram, but, I’ll cover […]

Builder Part 1

If you’re like me, a .NET developer, and you occasionally have to build-up complex objects, then you’ve probably tried one or more of the creational design patterns to isolate that builder code from the rest of your project. Design patterns […]

Disposable pattern

Most .NET developers already know that the common language runtime requires all resources to be allocated from a managed heap. Since .NET developers are forced to live with managed memory from the start, most of us quickly learn to cleanup […]