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.
I was listening to the SILY Episode 322 where Darrel talks about setting goals. That reminded me of a goal I had and failed to reach until a took counter measures. But let’s rewind back for a second. Continue reading
In my last post, I introduced the topic of cleaning up queues and exchanges in RabbitMQ. In this post, I’m going to walk you through the cleanup code. Continue reading
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
async/await together, you should really upgrade to .NET 4.5.1 right away.
TransactionScope wrapping asynchronous code needs to specify
TransactionScopeAsyncFlowOption.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.
During my day to day work, we are running a number of integration tests against various queuing systems. In order to have a clean slate after and/or before each integration test run, we need to clean up the queueing system. With RabbitMQ cleaning up, the broker is usually very simple. Continue reading