Finished thesis

I actually finished my thesis in November 2009, but haven’t just put it up anywhere for others to read. Reading it now, over a year later with some more experience, there are a few things that I might do different, but on the whole, I’m still quite satisfied with the end result.

Please, if you’re interested, read it and if you have any comments, please share them here.

The PDF is downloadable from

Tools for WPF development

Just a short note about a few tools that could be useful when developing WPF applications. Refer to the links for more information about the tools.

Snoop provides visual debugging of WPF applications at runtime.

Crack.NET is a runtime debugging and scripting tool. Also supports Windows Forms applications.

Mole is a Visual Studio visualizer allowing unlimited drilling into objects and sub-objects.

Check them out!


OJ points out in the comments that neither Snoop or Crack.NET will work with 64-bit processes due to the way the hooks are written. However, there is an x64 version of Snoop available on Dan’s IK Blog.

WPF Model-View-ViewModel Toolkit

A couple of weeks ago, version 0.1 of the WPF Model-View-ViewModel Toolkit was released over at CodePlex. I have not checked it out yet, but according to documentation it contains a project template for VisualStudio 2008, documentation about MVVM and a demo application showing how MVVM is used in practice. I will check it out some day soon and let you know what I think.

For those of you that have not heard about MVVM, it is a “pattern” that can be used when developing an application in WPF. It allows for separating UI implementation from business logic, and thus facilitating unit testing of the main functionality. I chose to put “pattern” in citation marks, because in the traditional sense, a pattern should not be tied to a special implementation language or technology, but describe a commonly encountered problem and a possible solution to the problem. The architecture of MVVM perhaps mostly resembles Presentation-Abstraction-Control, adding stuff and principles to utilise WPF to the fullest.