Building Messaging Endpoints in Azure: WebJobs

Posts in this series: Evaluating the Landscape A Generic Host Azure WebJobs In the last post, I looked at creating a generic host endpoint that many of the deployed versions in Azure can share. By using a hosted service, we can then host NServiceBus in just about anything that can work with the .NET Core generic host. The differences then come to hosting and scaling models. First up is the [Read More]

Integration Testing with xUnit

A few years back, I had given up on xUnit in favor of Fixie because of the flexibility that Fixie provides. The xUnit project is highly opinionated, and geared strictly towards unit tests. It's great for that. A broader testing strategy includes much more than just unit tests. With Fixie, I can implement any of the XUnit Test Patterns to implement a comprehensive automated test strategy (rather than, say, having [Read More]

AutoMapper LINQ Support Deep Dive

My favorite feature of AutoMapper is its LINQ support. If you're using AutoMapper, and not using its queryable extensions, you're missing out! Normal AutoMapper usage is something like: var dest = _mapper.Map<Dest>(source); Which would be equivalent to: var dest = new Dest { Thing = source.Thing, Thing2 = source.Thing2, FooBarBaz = source.Foo?.Bar?.Baz }; The main problem people run into here is that typically that source object is [Read More]

AutoMapper 9.0 Released

As with the other major releases of AutoMapper, this one introduces breaking API changes with relatively few other additions. The major breaking changes (see upgrade guide for details) include: Removing the static API Removing "dynamic" maps (automatically created maps) Fix on IMappingAction to include a ResolutionContext parameter The motivation behind removing the static API is that most new users to AutoMapper will do so through the DI extensions packages, using [Read More]

Immutability in Message Types

In just about every custom I've worked with, eventually the topic of immutability in messages comes up. Messages are immutable in concept, that is, we shouldn't change them (except in the case of document messages). Since messages are generally immutable in concept, why not make them immutable in our applications dealing with the messages themselves? Immutabilty has a number of benefits, ask Mark Seemann laid out in a discussion question [Read More]