Building a MicroBus application

I often like to think of software architecture as the art of structuring software. It's goal being to meet requirements while at the same time being resistant to falling into the state most commonly referred to as a Big Ball of Mud. To fight back against this, applications can…

Generating Read Models with Event Sourcing

Event sourcing is a very powerful tool that allows you to capture information you didn't even know you wanted. One of the things you usually find yourself doing when event sourcing is applying the principle of CQRS. CQRS effectively splits your application into two parts, a read…

The Perfect Pot

Whether it's building software, a business, or some other project, chances are you'll almost never get it right the first time. Years ago, I heard a story of a pottery teacher that tried an experiment on the class to find out the best way to teach pottery to the students. A high…

Calling a Rest (Json) API with PowerShell

PowerShell makes working with rest API's easy. In PowerShell version 3, the cmdlets and where introduced. These cmdlets are a huge improvement coming from the .NET model you had to work with previously turning a request into a concise one liner similar to curl (Which is also an…

MVC Architecture

The typical scaffolding tool and sample applications for MVC web apps are usually based on simple CRUD like systems. They'll, usually, have Views written in a templating language, with some kind of ORM and Models for persistence and Controllers to tie the two together. But there…

Avoid null with Containers

In C# It's often recommended that you should avoidi using nulls wherever possible. Avoiding nulls is a great concept that can simplify your code. Even so, nulls (or some such equivalent concept) will always have their place, such as to convey data is not available. However, one…

Example Web.Config files (3.5 and 4.5)

These are the default generated Web.Config files from Visual Studio 2013 Update 3. Web.Config for .NET Framework 4.5.1 Web.Config for .NET Framework 3.5 Other variations are all quite similar but if you think I'm missing one that's useful leave a comment. Web.Config for .NET…

Unlocking locked files in Windows

Every developer has run into this issue at least once. There are a few different tools you can use to find out what process is locking a file. In the past I've used a few different tools. My favorite tool today is Lock Hunter which is powerful and easy to use. It's packed with a…

Debugging Rx with Seq

Debugging Reactive Extensions can sometimes be a bit tricky. When you have a few stream to watch, pinpointing failures is time consuming, and a can easily become a burden. Catching first-chance exceptions can be extremely helpful when debugging Rx. However, it's much more useful…

Making great Octopus PowerShell step templates

Step templates, introduced in Octopus Deploy 2.4, are a great way to share and reuse useful PowerShell scripts. Anyone can make a step template and submit it via a pull request over at Github. I've come up with a few tricks to make writing step templates easier. I wanted to make…