C#

Temporary File Stream

Photo by Dil Assi on Unsplash One of the tools I use for generating temporary files is a class I wrote about eight years ago called TempFileStream. The class combines several useful aspects of working with temporary files, including: (1) code to generate […]

Mixed Base Formatter

Photo by Ales Nesetril on Unsplash Introduction The .NET framework provides a variety of options for converting objects, enums and structs into string representations. The trusty ToString method is always handy and, of course, there are plenty of variants that allow for the […]

Plugin – part 3

Review Last time I covered the internals of the CG.Plugin.FileSystem NUGET package, which contains a loader strategy for the CG.Plugin NUGET package. This time I’ll cover another loader strategy, this time one from the CG.Plugin.Reflection package. That package uses reflection […]

Plugin – part 2

Review Last time I covered the internals of the CG.Plugin NUGET package, which contains a plugin mechanism for .NET applications. In that article I left out the implementation of the loader strategies, which is the code that loads the command […]

Plugin – part 1

Background The concept of a software plugin is something that’s been around since at least the early ‘70s – maybe longer. I personally remember writing plugins in C and C++ as far back as the late ‘80s or early ‘90s. […]

Configuration – Part 2

Review Last time we covered the construction of a .NET Core based REST web application that served up a shared collection of configuration values. The service also used a backchannel based on SignalR, for notifying clients about any changes to […]

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 […]