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…

Silverlight UI Automation and Full VS 2010 Integration

OK, so it’s not exactly “out of the box” but the most recent PRISM 4.0 Drop (drop 2) seems to contain something Silverlight developers have been begging for … for quite some time. It’s buried within the “QuickStart” folder under the “BasicMVVM” project. This project provides guidance for the Model-View-ViewModel pattern and is worth a…

VS Remote Debugging Across Workgroups or Domains

Remote debugging in Visual Studio works great if both machines are on the same domain and/or workgroup. It also works dreamily if you’re doing straight native C++ where you can use the TCP/IP as the debugging transport. The problem comes in when you need to do remote debugging for managed code across domains or workgroups.…

Upcoming PowerShell Podcast Interview

If you haven’t guessed by now from my blog, I have a little bit of a passing interest in PowerShell these days. Hal Rottenburg from PowerScripting Podcast will be interviewing me about PowerShell and how it applies to developers. Of course I’ll have to talk about debugging in there somehow. I was honored to be…

Tips and Tricks for INotifyPropertyChanged

As a WPF or Silverlight developer, you know that your models must implement INotifyPropertyChanged and it can be a pain. To do it safely, you really need to check to see if there are any registered handlers, then raise the event. To add insult to injury, the event arguments take a string, so if you…

Managed Extensibility Framework for Line of Business Applications in .NET 4.0

I recently gave a talk for the Atlanta Microsoft Professionals users group about using the Managed Extensibility Framework for Line of Business applications in .NET 4.0. We had a great turnout and I appreciate everyone who attended. The talk was based on my blog post “10 Reasons to use the Managed Extensibility Framework.” While the…

Getting PDBs and Source When You Can’t Access Your Symbol Server

The other day I wrote about using SYMCHK.EXE from the Debugging Tools for Windows (WinDBG) install to pre-populate your symbol server cache. That prompted a question I got in email: Our test lab machines are isolated from the rest of our network and have no internet access. How can I get symbols and source over…

The Secret to Avoiding Debugger Slowdowns

Symbol Servers are one of the best things that have ever happened in Windows debugging. Having a central store for all PDB files makes the debugging experience so much better because you’ll always get exact right symbols with essentially no effort on your part. This means perfect call stacks on native code and if you’ve…