Simplify code by using composition

In my post about software simplicity I talked about how we introduce complexity in software without realizing it. In this post I want to discuss a pattern that allows you to get rid of the complexity introduced by using annotations or aspect oriented concepts. Let’s take a look at a basic example: public class TaskService […]

Simplicity in software: what you see is not what you get

As software developers we put a lot of focus on simplicity. And rightly so, because making code readable and understandable keeps it from becoming a maintenance nightmare. Simplicity is often confused though with how many lines of code there are. When you use lines of code to measure complexity, you’re likely just hiding complexity behind […]

Deploying cloud services to Azure with Powershell

Recently I was asked to create an automated deployment from TeamCity for an Azure web role. I had done this before with Azure websites so I figured the process was going to be similar. For websites you can use msdeploy  which is relatively easy to configure. This is another reason why, if possible, you should […]

Introduction to Domain Driven Design, CQRS and Event Sourcing

I recently started learning about domain driven design, CQRS and event sourcing. Up until now, I have been mostly involved in projects that use a ‘classic’ N tier/layer architecture with a relational database. As projects become more complex, I noticed that this model doesn’t always work well.  A while ago, I wrote an article about […]