23 Mar 2020

Azure Private End Points, VPNs and multi-site

Azure Private End Points, VPN clients and multi-region setups.

20 Feb 2020

Retain team members - or not

Another way to think about the relationship between your company and your employees.

07 Dec 2019

Azure Key Vault Secrets

Use Azure Key Vault to safely store secrets and passwords in Azure

16 Oct 2019

Secure your Web App in Azure at DDD14

An overview of how to secure Azure Web Apps, touching on virtual networks, encryption, key vault and monitoring.

25 Sep 2019

Can a SHA256 Hash have a "/" in it?

I was recently asked whether a SHA256 hash could have a "/" in it. If you know how hashes work, you probably know that the question doesn't make sense. But...

14 Aug 2019

AI will fundamentally change how we build software

AI will change how we think about, design and build software. It's a revolution on par with the move to web.

28 May 2019

Azure Security Talk at rg-dev

I did a talk on "How to secure your web-app in Azure" at rg-dev

20 May 2019

Find SELECT N+1 with Application Insights

With ORMs it's very easy to write code that calls SQL many times to serve a single web requests, and it can be hard to find it. Application Insights can...

29 Apr 2019

Everything I thought I knew about Async in C# was wrong

The way Async is being described, it sounds like it will make your code faster and more scalable, whilst solving all your problems and achieving world peace - all before...

11 Apr 2019

Add new user to all my Azure subscriptions

Add a new user to all my Azure subscriptions using Azure CLI

03 Oct 2018

Publish Nuget packages with Azure Dev Ops

Use GitFlow and Azure Devops to automatically publish Nuget packages with sensible version numbers

27 Jun 2018

Hierarchy IDs for Fun and Performance

Storing hierarchies in a database is easy - but applying hierarchical security and configuration can be very difficult and a significant performance problem. Hierarchy IDs can alleviate this, at the...

25 Jun 2018

GDPR for Software and how Azure can help

A video recording I made with Microsoft about how GDPR applies to Software development and how Azure can help.

08 May 2018

CosmosDB token has wrong time

CosmosDB error "The authorization token is not valid at the current time" and how to fix it.

29 Apr 2018

Securing your web app in Azure

A video overview of some of the Azure technologies that you can use to better protect your web applications in Azure - all depending on your required security level, of...

29 Jun 2017

Azure Failover and Resilience

Azure provides a highly resilient hosting platform, with significant built-in redundancy, but it can be hard to understand what resilience you get automatically and what you might have to set...

30 Jan 2017

Combine documents with other data in Azure Search

Azure Search has built-in support for indexing documents in blob storage, which works great. But what if you want to combine the documents with other data, for example if you are...

06 Jan 2017

How many ways can I host a web app in Azure?

I got talking to a colleague about how many ways there are to host web apps in Azure and even managed to surprise myself by just how many ways I...

06 Dec 2016

Find docs with no PartitionKey in Azure DocumentDb

When you are using Partitioned Collections in Azure DocumentDb you need to specify a Partition Key on each Document. At least, I thought you did. But, it turns out that...

29 Sep 2016

Find Documents with missing properties in Azure DocumentDb with the .Net SDK

Azure DocumentDb stores documents as JSON. One of the effects of this is that sometimes you may end up with documents in the database that have missing properties and it...

26 Aug 2016

Auto publish Azure Web Jobs with ASP.Net Core RTM

This is an update of my original post on how to do this with ASP.Net Core RC1At the time of this writing, there is no tooling to auto publish Azure...

25 Aug 2016

InfoSec with SQL Azure

I've been using SQL Azure since 2011 and it's been a journey. One of the big problems I used to have was passing security audits from some of our clients;...

15 Jul 2016

How React.js suddenly clicked

I've been working with Angular 1.0 for a few years and have been looking at other frameworks to move to in the last six months or so, including Angular 2.0,...

12 May 2016

Azure DocumentDb Go-Faster button

"Premature optimisation is the root of all evil."That said, if you are using DocumentDb with the .Net client please do two things in your code right now. They are safe...

29 Mar 2016

Auto deploy Azure Web Job with ASP.Net 5 and source control deploy

UpdateAn updated version of this post that targets ASP.Net Core RTM is now available.The content below here refers to RC1 which is not supported on AzureAt the time of this...

20 Feb 2016

Playing with CORS

I recently had reason to get to understand CORS in a bit more detail and I wanted to share what I learned. I did this with ASP.Net 5 / MVC6...

13 Aug 2015

BT Customer Service Epic Fail

I am posting this here as it may be a useful illustration of how overly optimising processes can lead to incredibly poor customer service. Or maybe I am just ranting....

28 Jul 2015

Using Azure Management Libraries from Azure Web Jobs

In this post I will show how to set up an Azure Web Job to automatically reboot a worker role at certain times. It's just an example, you can schedule...

14 Jul 2014

ng-dataList (working title) wish list

This post is primarily a set of notes to myself on what I would like to see in a new “data list” angular component. It’s here on my blog for...

30 Oct 2013

Hitting the limits in SQL Azure

We use SQL Azure for most of our systems. For the most part, it “just works” and it is dead easy to get set up and start using. The main...

15 Aug 2013

Continuous deployment to Azure Cloud Services

When you use Azure Websites you can do continuous deployment using Git, but with cloud services you can only do it from TFS. Luckily, it is quite easy to set...

06 May 2013

Real-world Corporate Browser Stats

Paul Irish recently said on twitter “Very surprised how many developers actively support IE7 despite it's miniscule usage now. Let's move on!” referencing StatCounter showing IE7 having 0.64% usage. A...

01 May 2013

Hard Windows Workflow Lessons from Azure

This post is about some issues we experienced with Workflows on Windows Azure after running successfully for over a year. We effectively had system down for several days until we...

07 Apr 2013

Testing Web.Config Transforms with ApprovalTests

In this post I will show how you can write a test with your favourite unit test framework that will apply your web.config transformation and compare the result to a...

18 Mar 2013

Using ASP.Net MVC without a MembershipProvider

Most people when they get to securing their ASP.Net MVC applications and managing users look to the MembershipProvider and the RoleProvider – or the new SimpleMembership. For many projects you...

19 Jan 2013

Entity Framework Migrations, seeding and server farms

Entity Framework Migrations offers a way to evolve your database schema over time. The schema is fine, but what about your actual data? You may have configuration settings in the...

10 Jan 2013

How to Mock RestSharp.ExecuteAsync

It took me a while to figure out how to Mock RestSharp’s ExecuteAsync method for unit testing purposes. Once you realise that ExecuteAsync takes a callback which is called when...

25 Apr 2012

Windows Workflow Foundation 4 State Machine and tight loops

I am a big fan of Windows Workflow. Sure, there are a lot of barriers to get started and a lot of idiosyncrasies, but once you get past that, it...

25 Feb 2012

Entity Framework Code First, Inheritance and ComplexType

In one of the applications we are working on, we have a pretty complex inheritance hierarchy which is mapped to SQL Server using Entity Framework 4.3 using Code First. We...

07 Mar 2010

Moving TS Profiles and Home Drives to another server

I recently found myself in the situation of having to move the Terminal Server user profiles and the Home Drives directory from one server to another. There are similar challenges...

28 Feb 2010

File Upload Failed

I have just migrated my blog from FTP publishing to a custom domain on Blogspot. I tend to use Windows Live Writer to write blog posts, but the image publishing...

15 Oct 2009

.URL files and IIS

A client wanted the ability for his users to easily “put an icon on their desktop linking to the site”. Now, that is actually a bit more tricky than it...

28 Sep 2009

New website for NewOrbit goes live

We have just developed and gone live with a new website for NewOrbit Ltd. NewOrbit is the company I run with Sean, where we develop custom-fit, web-based solutions for our...

27 Jul 2009

First employee, first office

Today was a big day in the life of NewOrbit. Our first employee, Technical Director Pete Kendall, joined us and we moved into a joint office. Sean (co-owner of NewOrbit)...

15 Apr 2008

Outlook 2007 stays "disconnected"

Sometimes I do these things just to try them out... For example, I recently got a new laptop and decided to install Vista 64-bit on it and Office 2007. I...

14 Apr 2008

Why write a blog?

Ever since I left Denmark I've maintained a blog in Danish, on and off, to keep my friends and family back home updated on what I am up to. As...