Design-Time Friendly ViewModels with MEF
The Managed Extensibility Framework (MEF) is a very powerful tool for building modular, extensible Silverlight applications. If you’ve followed this blog, you’ll know that it is not just for applications […]
Unit Testing XAML Data-Bindings in Silverlight

In an interview earlier this year with MSDN geekSpeak, I discussed unit testing for Silverlight and some of the frameworks that are available. One audience member raised a very important […]
Using Reactive Extensions (Rx) to Simplify Asynchronous Tests
Reactive Extensions (Rx) is a product from Microsoft Research that simplifies the management and composition of asynchronous events. If you read my earlier post on Asynchronous Workflows, you’ll understand why […]
Silverlight UI Automation Testing using Prism 4.0
One popular gripe about Silverlight has been the lack of integrated testing tools. There are several types of tests you may perform against a software project. Unit tests can be […]
Performance Profiling Silverlight 4 Step-by-Step
It turns out you can profile Silverlight 4 applications. Really! But the steps are scattered about the web in bits and pieces, so I wrote this to pull them all […]
Unit Testing Dynamic XAP Files
By now, you probably are aware that you can dynamically load XAP files using the Managed Extensibility Framework (MEF) within your Silverlight applications. Have you been scratching your head, however, […]
MVVM Coding by Convention (Convention over Configuration)

Convention-based programming is an interesting model. In essence, it attempts to reduce the potential for error by handling most scenarios based on conventions or standards, and allowing the developers to […]
Silverlight Out of Browser (OOB) Versions, Images, and Isolated Storage

This is a quick and simple post to address three very common questions I receive about Silverlight Out-of-Browser (OOB) applications. In case you haven’t heard, applications made with Silverlight version […]
Transactions with MVVM

One objection to MVVM I often hear is that it doesn’t manage transactions well. I’m not talking about database transactions or “true atomic” transactions, but those short-lived transactions that happen […]