I’ve always wanted to have a blog; this is where I write about my adventures of the technical kind. Mostly.
This is a long form blog post about how I added support for IndieAuth as an authentication method for a .NET 6 application.
It’s not supported out of the box (yet) despite being quite popular (e.g. GitHub API) but it’s super simple to add if you need it.
Spoiler alert: you don’t need an Action contributed by a third party.
In this article we look at the method of automating the NuGet packaging process using GitHub Actions that we used for GuidOne.
After upgrading a .NET 3.1 ASP.NET Web Application to .NET 6 and Entity Framework from 3.1.1 to 7.0.8 the schema applied using the table data annotation was no longer respected
In this article we look at the method of automating the NuGet packaging process using GitHub Actions that we used for JsonPatch.
This blog just turned 10! It’s a strange milestone; so inconsequnetial for everyone in the world bar me. Instead of going down a rabbit hole of irrelevance a better use of my time is to give this blog yet another refresh.
.GitInfo is linked to the current page, this is how we accessed the lastest commit information at build
GitHub Pages are are a great way to host a blog, share your résumé, or even host a website about one of your projects.
Generate the correct request schema for Patch operations in ASP.NET Core 3.1 which use JsonPatchDocument
.NET Core 3.1 is out and it’s a LTS release. Our 4 part multi-tenancy series is already out of date! Here we’ll cover off the breaking changes and the updates we need to make.
This time we are looking at how we can configure authentication on a per-tenant basis.
This time we are looking at how we can configure options on a per-tenant basis any third party service that supports the Options Pattern.
This time we are looking at how we can configure services on a per-tenant basis which allows us to resolve a different service based on which tenant is active. An application isn’t truly multi-tenant unless you can have a different services container for each tenant.
This series of blog posts is an exploration of how to achieve multi-tenancy in an ASP.NET Core web application. In this part of the series we resolve a request to a tenant and introduce the ability to access information about that tenant.
Host your Hugo SSG using Azure Storage and KeyCDN.
The thing I like most about it is that it’s serverless so no infrastructure to maintain and worry about.
Let’s write the script - it’s super simple. It’s designed to be placed in the parent folder of your Git repositories.
I just needed to quickly run a few Python methods… in Azure
In the interest of code-safety I don’t put default values on implementing classes any more.
It turns out Azure App Services have added native Go support.
I’m giving this Go-lang thing a whirl, turns out it’s dead easy to set up on Windows.
Don’t worry if you haven’t noticed the differences, you call them with the exact same syntax.
Then to make it all stick I implemented the spec
Wouldn’t it be great to be able to specify the property to order on at runtime for a LINQ query?
We create an observable that either emits values from the source or the alternate source based on the status of the circuit breaker.
How are GUIDs unique with out a central watch dog?
Following most instructions Apple seemed to think my IIS generated CSR was invalud.
I asked myself some questions and ended up learning a lot about the humble GUID - they really are quite cool.
People won’t give you money if you treat them poorly.
Despite being on the back-burner it’s still the number one quit smoking app on the Windows Phone app store.
Even though you can’t do it from the online interface it, it’s actually pretty simple.
For sites that are read heavy but get updated quite infrequently (like a blog, or marketing site) a static site is ideal.
We’re going to create a formatter that understands JSON Patch.
Is it still required? Or can we just use the “naked” domain?
In this blog post we’ll investigate how to set up an elasticsearch cluster on Windows Azure.
It’s designed to allow an API to support partial updates.
This post looks at performing dependency injection on a WebAPI ActionFilter using Unity.
I don’t want to re-implement the label HTML helper but I would like a way to inspect the model and update the label text based on the presence of the [Required] attribute.
We’ll look at how we implemented XML-RPC services in ASP.NET MVC by creating a custom model binder.
If you’re currently working on a project where all developers are using the same centralized development database, then chances are that’s the way the project has been run since the beginning.
A simple exception handling strategy that enables detailed logging in MVC context but also provides support for general ASP.NET errors such as page not found exceptions.
This is the first post in a two part series, in this part we will look at the options available to us in ASP.NET MVC for Error Handling.
If you don’t bother with correct pluralisation your users will be less likely to appreciate the care you put into the rest of your application.
ACS may not directly support single sign out but you can easily log the user out of their identity provider as well as your website using this technique.