Author Archives:

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# | 45 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

Rebooting Topshelf for Version 3

When we created Topshelf, one of the prime directives was ease of use. It had to be easy for the developer to add a reference and create a service. To keep it easy, we had another prime directive: the developer … Continue reading 

Posted in .net, topshelf | 3 Comments

Benchmarque – Comparative Benchmarking for .NET

Last night, I announced that the first release of my benchmarking library Benchmarque was available on NuGet. This morning, I’d like to share with you what the library is, and how it to use it. What is Benchmarque? Benchmarque (pronounced … Continue reading 

Posted in .net, c# | 5 Comments

MassTransit v2.5.3 Now Supports the TPL

As I’ve started to use MassTransit with SignalR, one of the things that annoyed me was the hoops I had to jump through to get a nice asynchronous request from SignalR into MassTransit. There was a lot of plumbing since … Continue reading 

Posted in masstransit, signalR | 2 Comments

Received my 4th Visual C# MVP Award!

I’m happy to announce that I have been awarded the 2012 Microsoft® MVP award for my technical contributions to the Visual C# community over the past year. This is the fourth consecutive year that I have received the award, and I … Continue reading 

Posted in .net | 4 Comments