A Robust INotifyPropertyChanged Implementation

Today I’d like to share with you one of my most valued base classes when developing a WPF or WinRT application. Given that WPF applications are intrinsically designed to work well with the MVVM pattern (or perhaps the other way around) it should come as no surprise that every project that implements this pattern has some implementation of the INotifyPropertyChanged interface. I’ve seen a few different variations (all generally very simple) and, in this article, I’d like to present my latest iteration on this crucial base class. Let’s first start by identifying the problems we are trying to solve.


  • We need an implementation of the INotifyPropertyChanged interface to allow for data binding
  • We need some safe and convenient syntax for calling the event handler for PropertyChanged
  • We need to make this call thread safe
  • We need to reduce the memory footprint of this call
  • *BONUS* Can we factor a pattern out of our code?
A Robust INotifyPropertyChanged Implementation

Creating an Ideal Logging System

This is the first article I am writing and decided to tackle a fairly straightforward topic. Every application I’ve worked on that was larger than a proof-of-concept benefited from some form of logging. The problem always was one of the following:

  • There was no logging system at all
  • The logging system was cumbersome to actually use
  • The logging system logged way too much information
  • The logging system wasn’t used in the most critical areas

So the first point is going to be solved simply by reading this article. We are going to walk through creating a simple yet useful logging system that is extendible and solves the above problems. Without further ado, let’s begin!

Continue reading “Creating an Ideal Logging System”

Creating an Ideal Logging System