All Posts

22 Mar

Versioning is a tool which allows microservices to gain independence from each other while being able to grow and change. Its critical that when we make changes to a microservice we can do so in a way that we are confident will not break our consumers.

7 Mar

Microservices and libraries both have benefits in terms of providing reusable components. This article looks at the differences between microservices and libraries and looks at why you might choose one over another.

7 Mar

Microservices are a SOA architecture which focuses on breaking a system down into smaller independant systems. I have been working with them for a while and in this article I will talk about some of the different aspects of microservices which

Nov 2016

SOA and Microservices promote API centric applications where we can build complex sophisticated systems out of smaller simpler ones. When we break down systems duplication and boiler plate drastically increases complexity. Authentication is one area where complexity can be introduced across all of our services at once. In this post I look at a pattern to decouple authentication from your system and allow a richer authentication experience without introducing complexity to every API in the system.

Oct 2016

A look at several problems with nesting extension methods in LINQ and how to get around these issues with and expression visitor.

Oct 2016

A look at the issues I faced writing UI tests for dotdev and why I built NoAuth to make testing easier

Oct 2016

On why continuous deployment is better than continuous delivery

Sep 2015

This post discusses some issues I have with traditional repository pattern implementations and how I use extension methods to get around them.

May 2015

When I started working for myself on dotdev I spent quite a bit of time thinking about testing, and test automation as it's likely the only barrier between me missing something (which humans do) and that bug going live and annoying people. So I designed my test strategy around taking me missing things out of the picture (ie automation). Below are some of my thoughts around good and bad tests and how to get the best bang for your time when building automated tests.

Apr 2015

DotDev is a site which aims to help developers make better tool choices through asking your peers about the best tool to use in a given scenario.

Feb 2015

In the last few years web applications have been increasingly built in JavaScript.This provides rich interactive UI's but introduces problems with non-js search crawlers and initial page load performance. In this post I will look at server-side rendering of a JS application to mitigate these problems.

Feb 2015

Today I started a new job and a new project. I'm going to be blogging much more about this over the coming months.

Jul 2014

NServiceBus is a great messaging technology, in this post we look at how the message handshaking interacts with MSMQ under the the scenes to provide durable messaging.

Jul 2013

I have always liked the abstraction provided by a repository pattern. This article aims to articulate why I use generic repositories and what benefits I feel are most important from this approach. I also examine exactly how I use generic repositories in my applications with some practical examples.

Dec 2012

Blogs are an important way we as developers can contribute to the development of our industry and grow our own personal skill sets. For this reason I believe development companies should invest in blogging as a way of developing their employees. This software is about doing this in a way that promotes writing for personal blogs as well as a company blog.

Sep 2012

While patterns and practices are an important part of producing quality software, its important that as developers we don't just blindly follow such patterns. Having a hack day and breaking some rules is a great way of having some fun and learning to work outside some of our regular practice. This is my hack day making a twitter bot to tweet Entity Framework questions from Stack Overflow.

Sep 2012

In my previous post I tested the effect of latency on MSSQL insert performance. This post discusses how I built my test harness which allows me to test with multiple levels of latency from the same application.

Aug 2012

SQL is a network application and according to The Fallacies of Distributed Computing tells us that in any network application latency is non-zero. In this article we will explore the effect of latency on SQL insert performance from the scenarios in my last post.

Aug 2012

There are several different ways of inserting data in MSSQL. In this post I explore several ways of inserting data and examine how they perform.

Aug 2012

Performance is important in our applications, this cheat sheet gives tips to improve the Big O performance of your Entity Framework applications and suggestions for when and what to optimise.

Jul 2012

Navigation properties are Entity Frameworks way of representing Foreign Key relationships in databases as C# object references. In this post I explore the basics of how to use Navigation Properties with C# and how they work.

May 2012

Entity Framework change tracking performs well when using small sets of data however as the number of changes grows it becomes inefficient. In this post we look at what causes this degradation and how we can tune EF to perform better with large data sets.

Apr 2012

Transactions are an often neglected component of how we access databases. They are important when we are writing to databases as they affect how and how often tables are locked. In this post we will examine what kind of difference transactions make in practice.

Apr 2012

Entity Framework change tracking allows the framework to persist only changed data to the database, however this comes at a performance cost. This post discusses the performance impacts of change tracking and when its appropriate to switch it off.

Mar 2012

I have heard many claims that specific ORMs far outperform others, so I built my own ORM performance testing framework to test some of these results for myself. What I found is there is less difference in performance between ORMs than I expected.

Feb 2012

WCF WebAPI allows REST support within WCF. This post discusses some of the gotchas of building REST services with WCF and provides a simple tutorial for creating a basic WCF REST service.

Jan 2012

I've been wanting to have a play with GitHub for a while now given so many open source projects seem to be using it. So i finally gave it a go and pushed my Repository Pattern stuff to a public GitHub repository.

Oct 2011

Repositories are all about decoupling our application from our chosen storage mechanism. This is my take on a Generic Repository with Entity Framework.

May 2011

Managed paths in SharePoint are a confusing beast, so here's my explanation of how and when to use them.