I recently found myself writing a desktop app, and realised that for the first time in my career I could actually implement the Model View Controller design pattern as it was originally intended (as opposed to the disjointed approximations we use in web apps).