Last week we released our new Service Bus SDK for .NET and we want to publish a series of blogs about it addressing the major changes. This may end up being a fairly long series… but we’ll see.
First and foremost was the move away from the Asynchronous Programming Model (APM) pattern. This pattern, which dates from the earliest days of .NET, required Begin and End operations for all asynchronous methods. APM was a very useful model and was fairly easy to work with considering what it enabled. All scalable systems are asynchronous in nature and Service Bus has always supported asynchronous programing. It’s the only way to get really good performance.
The move to the Task-based Asynchronous Pattern (TAP) uses a single method to represent both the initiation and completion of asynchronous operations. TAP, which was introduced in .NET Framework 4 is the recommended approach to asynchronous programming in the .NET Framework. The async and await keywords were added to support TAP within the C# language.
This provides several key advantages; performance and ease of use being the most compelling.