NServiceBus, Sagas and events

In the last few weeks, I’ve been spending some time with NServiceBus, as part of my prototyping a new system we’re working on at work. The system encompasses quite a few moving parts, and using a Bus made sense. One of the expected services will be using the concept of Saga’s – long running processes. … Read more

LongPath and UNC paths

A colleague of mine started using the LongPath package provided as part of the Base Class Libraries project in CodePlex. This package seemed to be working just fine when trying to access local folders, both long and short. However, the provided code does not work with UNC paths – paths that are in the format … Read more

jQuery and MVC together – URLs resolving

Lately I’ve found myself working on a website, that is based on MVC3, and is using some jQuery. I found a beautiful template in ThemeForest.net – no shame in admitting I’m no designer. The first few steps of setting up a new MVC project, using the downloaded theme in the Layout.chtml file, and adding all … Read more

WinForms: ListView with Multi-lined tool-tips for SubItems

If you’ve worked with ListViews in WinForms before, you might have encountered the discouraging fact that the default ListView does not support multi-lined tool-tips for SubItems. For this to work, you have to create a custom control that inherits from ListView, and make some nasty calls to P/Invoke. Here’s how this can be achieved: As … Read more

Windsor: Loading installers from the execution folder

When using Windsor, it is necessary to load the various IWindowsInstallers into the container. One standard way of doing this is using a code similar to the below: The above code will load all the Installers that are located in the execution folder. However, in certain cases, when your code is running in different contexts, … Read more

Windsor Factories and Obfuscation

I love Windsor – it’s simplicity yet versatility amazes me every time I use it. In my last project, I’ve used it, along with the TypedFactoryFacility in order to late-resolve some objects. The resolved object required some parameters to be passed to the CTOR – nothing too complex – you just create an anonymous type … Read more

IRibbonExtensibility needs to be ComVisible

When developing an Outlook add-in using VSTO 4, if you are implementing the IRibbonExtensibility interface (for customizing a Ribbon, for example) you might encounter cases where your Ribbon or menu items don’t appear in Outlook’s UI. In those cases, you should check the following things first: Your XML is valid – invalid Ribbon XML will … Read more

TFS: Undo another user’s check-out files

In order to undo files that are checked-out by another user, you can use the TF.EXE command-line tool: For example: You can find the TF.EXE tool in the following locations: For TFS 2008: C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\TF.exe For TFS 2010: C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\TF.exe