Singletons

Singletons

The singleton pattern is probably one of the most overused design approaches of all times. Still, there are times when it actually makes sense to take that approach. Because of…
.NET Assembly Loader

.NET Assembly Loader

Back in the day, I remember creating new AppDomain instances to control the scope of loaded assemblies. If I wanted to load some assemblies, then release them, that was the…
Code Map Tool

Code Map Tool

Not too long ago I wrote a simple .NET Core WPF application to read references from a .NET assembly and then graph those relationships visually, using the Syncfusion diagram control…
List Extensions

List Extensions

There are times when I need to filter lists using a white list / black list style approach. For that purpose, I wrote two extensions methods that I'll cover in…
Disposable Pattern

Disposable Pattern

An unofficial pattern that Microsoft follows, for disposing of objects, is one where a class implements the IDisposable interface, along with it's public Dispose method, and then adds a protected…
Finding Extensions

Finding Extensions

Several years ago I was spelunking through the Entity Framework code and came across the implementation for the Include extension method. That method allows a query for a data context…
Email Service

Email Service

Not long ago I wrote about a hosted alert handler I sometimes use. That handler sends emails for error alerts. It does that through the use of an email service…
Friendly Name

Friendly Name

There is a property on the AppDomain type, called FriendlyName that I use often. One thing about it though, I often have to follow up the call to FriendlyName with…
Alerts – Part Two

Alerts – Part Two

Last time I laid out my abstraction for handling alerts. I showed everyone my default alert handler, which, admittedly, doesn't do much. I promised I would follow up by showing…
Alerts – Part One

Alerts – Part One

If you're anything like me, you tend to write your fair share of error handlers. Most of the code I write is on the back-end. That means, for me at…