One step past Assert.Throws<>

If you’re not using xUnit (and you should be), at least consider adopting the practices they have for dealing with exceptions in unit tests. From the very first release, they moved us from this:[ExpectedException(typeof(InvalidOperationException))] public void WithdrawingMoreThanBalanceThrows() {     Account account = new Account();     account.Deposit(100);     account.Widthraw(200); } to the far-better: public void WithdrawingMoreThanBalanceThrows()…


Can you take the single responsibility principle too far?

This morning, I had a conversation with a colleague of mine who has recently started using EDD about “exposing things just for the purpose of testing.” Although I have run across the odd occasion where I may need to add a get property to a class in order to verify a value, usually I find…


Gatineau Beta upgrade goes live!

The main reason for my lack of blogs posts recently has been the final push to get Gatineau (adCenter Analytics) out the door and I’m happy to say that it’s gone live 🙂 I’ll try to get a few screenshots up next week. You’ll need an adCenter account to see our stuff, but the main site…

Le Web 3 (Day one)

Dark Side of the Web Panel with Jaewoong Lee (Daum), Dan Rose (Facebook), Chris Alden (SixApart) and a lawyer. Anonymity allows people to be expressive/rude; if you’re rude in real life you probably will be online too. South Korea developed government-run program for Internet identity which is used by top 35 websites. However, 80,000 identities…

XAML : XAMLPad :: LINQ : ?

One of my teammates just sent a link to LINQPad, a small application written by the authors of C# 3.0 in a Nutshell. Looks like a great tool for anyone that wants to learn LINQ or needs to execute queries on a regular basis.

Now you can fool your xUnit tests

Back in the ‘early days’ of xUnit, I posted an example of how to use the BeforeAfterTestAttribute to modify a test’s current identity. Now that there is an official Extensions project, I’ve cleaned it up and submitted the code in change set 7569. I’m looking forward to seeing what the community will contribute to…

Task Parallel Library goes public

If you’re interested in taking advantage of multiple processors and code in .NET with a minimal amount of effort then this is the library for you. The introductory MSDN article is here. Long live Parallel.For() 🙂


The cool stuff is starting to surface (introducing Graffiti)

It’s been tough not being able to write about anything that we work on here in Dublin, but slowly the details are starting to come out. Ian’s latest post on what we presented at e-Metrics includes a demo video of Graffiti, an automatic tagging module that’s included in Gatineau Beta 2. It was completely designed,…

Come join us!

Our team here in Dublin has launched a recruiting site at It’s got information on what it’s like to work here, some of the many benefits, and first-hand interviews with members of our team. As well, we’re starting a MSDN blog at Go check them out!

ReSharper and

Those of you who have switched over to xUnit.Net may have a received a nasty surprise with the ‘type members layout’ feature of ReSharper: it doesn’t respect method attributes. Namely, you can tell it to not reorder methods in an NUnit fixture like this:  <Pattern>   <Match>       <HasAttribute CLRName=”NUnit.Framework.TestFixture”/>     </Match>   </Pattern> But you cannot…