Your source of geek knowledge

Join me at the Developer Openspace 2015 in Leipzig

I should not say this in public because I’m a Swiss Guy, but I love the German Community ;). I’ve been giving Usergroup speeches in many German cities over the last few years. Every community event I attended in Germany was fully organized, well-coming, and the community engaged with the speakers and workshop leads. One of the most unusual events in Germany is starting in a few days in Leipzig. It is the Developer Openspace 2015. Here are a few impressions:


Abstract: An Open Space is a conference without speakers or a fixed agenda. Similar to a BarCamp the crowd meets every morning (at a developer-friendly time), and everyone is invited to suggest a session-topic. That can be the latest hot shit from Silicon Valley (or Seattle) everyone has heard about and wants to discuss with others, or something you are highly interested in, so you’re looking for some fellow experts to give you an introduction.

As part of the pre-unconference sessions on Friday, I will be giving a full day workshop about async/await and the Russian Doll model by applying that knowledge to an almost production-ready service bus-library.

Sounds interesting? Don’t miss that community opportunity and visit the official web page, book your flight/train/cab and let’s meet for a beer in Leipzig in October.

Picture shamelessly stolen from Thomas Bandt.

TransactionScope and Async/Await. Be one with the flow!

I’m doing a series of async/await related blog post on the particular blog. This one might also be interesting for you.

You might not know this, but the 4.5.0 version of the .NET Framework contains a serious bug regarding System.Transactions.TransactionScope and how it behaves with  async/await. Because of this bug, a TransactionScope can’t flow through into your asynchronous continuations. This potentially changes the threading context of the transaction, causing exceptions to be thrown when the transaction scope is disposed.

This is a big problem, as it makes writing asynchronous code involving transactions extremely error-prone.

The good news is that as part of the .NET Framework 4.5.1, Microsoft released the fix for that “asynchronous continuation” bug. The thing is that developers like us now need to explicitly opt-in to get this new behavior. Let’s take a look at how to do just that.


  • If you are using TransactionScope and async/await together, you should really upgrade to .NET 4.5.1 right away.
  • A TransactionScope wrapping asynchronous code needs to specifyTransactionScopeAsyncFlowOption.Enabled in its constructor.

If you want to learn more about async/await and how to flow TransactionScopes over continuations, I suggest you read the full blog post originally posted on the particular blog.