DataProtector

DataProtector

I've migrated quite a bit of my .NET code to non-Windows platforms, this past year. As I've done so, I've re-discovered the fact that DPAPI, which is what I've traditionally…
Business Extensions

Business Extensions

Since I write so many NUGET packages, I also tend to write more than a few extension methods containing startup / construction logic. Each library typically has at least two…
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…
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…