Author Archives:

Sagas, State Machines, and Abandoned Carts

A few weeks ago, there was a post on how to use a saga to coordinate the business requirement of sending an email when a shopping cart is abandoned by a user. The use case demonstrated is fairly common, particularly … Continue reading 

Posted in masstransit | Leave a comment

MassTransit v3 Update

MassTransit v3 Update It has been nearly six months since the first alpha of MassTransit v3 was released, and a lot of progress has been made. It turns out that rewriting an entire code base takes time and attention. Nonetheless, … Continue reading 

Posted in masstransit | Leave a comment

MassTransit 3 API Changes

When MassTransit 3 was announced, it was also stated that many of the APIs have changed. This post covers some of the most data types, and describes how they are used as well as how they compare to previous version. … Continue reading 

Posted in masstransit | Leave a comment

MassTransit ]|[

This article describes an upcoming release of MassTransit. This release is still under development and will be pushed in various pre-release forms before the final release is finished. Early feedback is valuable, and you are encouraged to check out the … Continue reading 

Posted in masstransit | Leave a comment

Separating Concerns – Part 2: Services

In the previous article on Separation of Concerns, libraries were explained as a way to decompose an application into separate sets of functions, resulting in code that is easier to maintain and has higher cohesion. This article continues the subject, … Continue reading 

Posted in Uncategorized | Leave a comment

CRUD is Not a Service

Introduction Many systems implement CRUD (create, read, update, and delete) using a repository pattern. An entity is loaded using a Get method, some business layer logic makes changes to the entity, and ultimately saved using a Put method. This exact … Continue reading 

Posted in Development | 5 Comments

Implementing Routing Slip with MassTransit

This article introduces MassTransit.Courier, a new project that implements the routing slip pattern on top of MassTransit, a free, open-source, and lightweight message bus for the .NET platform. Introduction When sagas were originally conceived in MassTransit, they were inspired by … Continue reading 

Posted in masstransit | 6 Comments

IDisposable, Done Right

IDisposable is a standard interface in the .NET framework that facilitates the deterministic release of unmanaged resources. Since the Common Language Runtime (CLR) uses Garbage Collection (GC) to manage the lifecycle of objects created on the heap, it is not … Continue reading 

Posted in c# | 42 Comments

Separating Concerns – Part 1: Libraries

Introduction In large applications, particularly in enterprise applications, separation of concerns is critical to ease maintainability. Without proper separation of concerns, applications become too large and too complex, which in turn makes maintenance and enhancement extremely difficult. Separating application concerns … Continue reading 

Posted in Uncategorized | 8 Comments

Interview on .NET Rocks Episode 798 Published

Last weekend, the guys from .NET Rocks! interviewed me for the show, and the show is now available from the usual outlets (iTunes, etc.). You can read the summary on their web site, as well as listen to the show! … Continue reading 

Posted in .net | Leave a comment