June 2010 Blog Posts

Great video on Channel 9 with Fabian Uhse evangelising the “Vail” SDK. Confirms Microsoft’s commitment to Windows Home Server extensibility.

Fabian hints that retail “Vail” will be running .NET 4.0 and not .NET 3.5, so we won’t have to wait for it to be pushed via Windows Update. Awesome.

Source Control is a basic requirement of any development shop, even one-person teams. The first time a big refactoring operation seriously breaks your project and you can roll-back with just one click, you’ll be sold.

There are a bunch of solutions out there for Visual Studio, but integration with the IDE is almost always going to cost you some money. I use VisualSVN, which costs a few dollars and requires TortoiseSVN to be installed on your local machine.

If you’re after a free solution, Axosoft have just released v1.0 of their Visual Studio Subversion add-in called RocketSVN. It’s free for a limited time, so go grab a copy now.

If you combine RocketSVN with the free VisualSVN Server (a Windows management interface over a traditional Subversion server installation), you’ve got a no-cost source control package with full Visual Studio integration. If you’ve been sitting on the fence on this one, now’s the time to act.

I heart WPF in Visual Studio because it’s incredibly easy to separate business logic from the user interface. However, I don’t really heart the Visual Studio WPF designer.

Expression Blend 4 is out now, so I just loaded up our latest secret Windows Home Server Add-In project (it’s WPF, did I mention how much I love WPF?). And I was greeted with this lovely error message:

Exception: An error occurred while finding the resource dictionary “/PresentationFramework.Aero;V3.0.0.0;31bf3856ad364e35;component\themes/aero.normalcolor.xaml”.

StackTrace: Empty

InnerException: None

Which is helpful. Obviously, we’re forcing WPF to use the Aero theme (because Windows Home Server is based on Windows Server 2003, and the default theme is horrid), and Expression Blend is having issues finding that theme file. It works fine in Visual Studio and at runtime, but not in Expression Blend.

The solution is to stop specifying the specific version of the use syntax that Expression Blend understands, and to add an explicit reference in the project to PresentationFramework.Aero.dll.

We go from this:

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="/PresentationFramework.Aero;V3.0.0.0;31bf3856ad364e35;component/themes/aero.normalcolor.xaml" />
</ResourceDictionary.MergedDictionaries>
To this:

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="/PresentationFramework.Aero,Version=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35,ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />
</ResourceDictionary.MergedDictionaries>

And everyone is happy.

Edit: Actually, everyone was not happy. The Add-In threw some nasty exceptions when I loaded it up with the version number removed. The solution has been amended above.

Andreas has found himself what looks like a great alternative to WiX for building Add-In packages, Advanced Installer. It ticks all the boxes:

  • Free (as in beer)
  • Wizard-driven
  • No dependencies on a particular version of Visual Studio
  • Can be run using build scripts in your project

Best of all, the freeware version’s EULA includes this clause:

Caphyon grants you an unlimited license to use the Freeware Features of the Software. The install packages created using only the Freeware Features can be freely redistributed and used both in commercial and non-commercial purpose.

Now, I love WiX. It’s powerful, has a million knobs and dials, and is configured using plain XML. However, it doesn’t integrate with Visual Studio Express, and it has a steep learning curve. If you just want to create an installer for your Add-In and not worry about its innards, Advanced Installer looks great.

Search

Site Sections

Recent Posts

Archives

Post Categories

WHS Add-In Tutorial

WHS Blogs

WHS Development