Why you need Reliable Messaging

You might have heard the phrase "there's no such thing as reliable messaging". It's an interesting statement, but aside from being completely untrue, the statement is also entirely unhelpful. What you can't have is "completely reliable messaging", but the real question is how…

Automatic ModelState Validation for ASP.NET Core

Model State Validation for a JSON API isn't too hard because you only need to send back validation errors, especially with the attribute. However, for all those that are still using server-side rendering and Razor, it's still a bit challenging. It's challenging because you need…

Running .NET on the Raspberry Pi

I recently got my hands on an older Raspberry Pi , which was a great excuse to see if I could get .NET running on it! If you're interested in playing around with a Pi or just want to see what it's like to get one running, then you're in the right place. I'll take you through…

cURL to Postman

Postman is a fantastic tool for testing any HTTP endpoint. But if you're using your browser to look around and you find something of interest it can be a pain to recreate the request in Postman and copy across all the headers. There must be a better way! Turns out there is…

Dynamically calling a Function in FSharp

Sometimes you just want to make a dynamic call. There is no equivalent for in so I guess we'll have to roll our own. In this post I'll go though how to build a function called which you use like this: The example above starts off with a normal FSharp function that takes a…

Comparing MicroBus and MediatR

Mediators are an excellent addition to the developer toolbox. Allowing you to define a pipeline that is decoupled from any particular framework. Having a pipeline makes it easy to deal with cross cutting concerns like security, transaction, validation and others. For these…

Event Sourcing: What properties should Domain Events have?

What I learned since last time A while ago I wrote about Generating Read Models with Event Sourcing where I suggest adding derived properties to the persisted domain events also known as Enriched Events. Since writing that post, I have been using this approach. However, over…

Links to Get Started with React and Redux

Getting started to React and want to get right to it? These are the links you're looking for. What you need! First up you’ll need Node: https://nodejs.org.au/ You can get the React tooling here: https://github.com/facebookincubator/create-react-app Once you have React you’ll…

There is always time to write clean code

The number one most important thing you can do in software development. Always leave the code base cleaner than when you found it. Always aim to improve things. I recently stumbled on a fantastic podcast by Joshua Wulf featuring Damian Maclennan who brilliantly described…

Announcing MicroBus 3

Awesome! MicroBus 3, what does that mean? Well, I've been using Semver (mostly, sometimes a little Ferver creeps in) for my package versions so it means in this release there's a few breaking changes. Now, first off, this is a much bigger update than 2.0 was and redefines a few…