Building a component that works with different versions of a library

It’s common to want to build a .NET component that works with different versions of a particular library. It is also common for newer versions of the library to introduce new methods that your component might want to call. However, if you build your component against the oldest version of the library you support, then…

Paraffin 3.13 and an Ask for Help

Before I get into the quick new features for Paraffin 3.13 (download here), I need to ask for your help. Pretty much from the first day I released Paraffin, I’ve been consistently getting the following question: I want to be able to uninstall obsolete components during minor upgrades. For this I would like to have…

Super Cool MSBuild Debugging In the VS IDE!

Have you ever tried to figure out why your MSBuild-based build is failing? While the diagnostic output is OK, it really isn’t an each task (no pun intended) to debug what’s going on in an MSBuild file with the traditional means of <Message> tasks. Fortunately, Dan Mosely, one of the MSBuild developers, had some time…

Updated PowerShell Script for Setting Your Symbol Paths

Here’s my latest script for setting up a user’s_NT_SYMBOL_PATH environment variable as well as Visual Studio 2010’s symbolsettings. In a previous version of this script, I wasn’t setting the publicsymbol server cache directory in Visual Studio so you could end up with downloadedsymbols in C:SYMBOLSPUBLIC instead ofC:SYMBOLSPUBLICMICROSOFTPUBLICSYMBOLS. #requires -version 2.0 #Wintellect .NET Debugging Code#(c) 2009-2010…

Customer IApplicationService for Silverlight Applications

In my experience working with Silverlight applications, probably one of the most underused features I’ve witnessed is the ability to abstract application-level functionality using the IApplicationService and IApplicationLifetimeAware interfaces. This, in turn, results in the over-use (and abuse) of the Startup and Exit events in the Application object. Before you get angry with me shaking…

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, and wondering how on earth you would actually test something like that? It is possible, and here’s a quick post to show one way you…

Dynamic Page Loading in Silverlight

A while back, I blogged about the INavigationContentLoader interface introduced in Silverlight 4. INavigationContentLoader is an extensibility point in Silverlight’s navigation framework that lets you provide your own plug-in for loading pages. Silverlight 4 comes with one INavigationContentLoader implementation in a class named PageResourceContentLoader, which loads pages from assemblies in an application’s XAP file. I…

Dynamic Localization in Silverlight

Localization is (and has always been) a hot topic in Silverlight. There are many ways to do it, but most solutions that I’ve seen use some variation of the technique described in the Silverlight documentation, which puts localization resources in RESXes and uses data binding to bind XAML elements to localized resources. It works, but…

How to Capture a Minidump: Let Me Count the Ways

As I was waiting for a minidump I was grabbing on a very large and busy server application to finish writing, my mind wandered and I realized there were quite a few ways to grab a minidump today. Back in the old Windows days, when we had to program up hill in the snow both…

Dynamic XAP Discovery with Silverlight MEF

I’ve spent copious amounts of time lately digging into Silverlight 4’s new Managed Extensibility Framework (MEF) and seem to find new uses for it every day. I love the fact that you can download a remote XAP file and import all of its exported parts with basically two lines of code: DeploymentCatalog dc = new…