Richard Banks' Blog

Software Development and Agility

Improving performance with .NET Core 3.0

The week I gave a talk at the Sydney Alt.Net Meetup about using .NET Core 3.0, Span, stackalloc, and other newer .NET features to improve performance of an application. In it I showed a specific scenario where I used a PDF library (PdfPig) to count the words in a PDF file, and in less than an... Read more

Code splitting in Vue

I have a small personal project I’m building with Vue and Webpack v4. I noticed that the production bundle size was starting to get a bit large (3.4 Mb). A bundle of this size will be slow to load and people on slow connections might think the web app is failing to load and leave the... Read more

Securing a Vue.js app and API with IdentityServer - Part 9

This is part 9 of a series showing you how to secure a Vue.js app with IdentityServer and call an ASP.NET Core Web API. Part 1 - Overview and Solution Structure Part 2 - Creating and Configuring your IdentityServer Part 3 - Adding Google Authentication to IdentityServer Part 4 - Creating and securing an ASP.NET Core... Read more

Securing a Vue.js app and API with IdentityServer - Part 8

This is part 8 of a series showing you how to secure a Vue.js app with IdentityServer and call an ASP.NET Core Web API. Part 1 - Overview and Solution Structure Part 2 - Creating and Configuring your IdentityServer Part 3 - Adding Google Authentication to IdentityServer Part 4 - Creating and securing an ASP.NET Core... Read more

Securing a Vue.js app and API with IdentityServer - Part 7

This is part 7 of a series showing you how to secure a Vue.js app with IdentityServer and call an ASP.NET Core Web API. Part 1 - Overview and Solution Structure Part 2 - Creating and Configuring your IdentityServer Part 3 - Adding Google Authentication to IdentityServer Part 4 - Creating and securing an ASP.NET Core... Read more

Securing a Vue.js app and API with IdentityServer - Part 6

This is part 6 of a series showing you how to secure a Vue.js app with IdentityServer and call an ASP.NET Core Web API. Part 1 - Overview and Solution Structure Part 2 - Creating and Configuring your IdentityServer Part 3 - Adding Google Authentication to IdentityServer Part 4 - Creating and securing an ASP.NET Core... Read more

Securing a Vue.js app and API with IdentityServer - Part 5

This is part 5 of a series showing you how to secure a Vue.js app with IdentityServer and call an ASP.NET Core Web API. Part 1 - Overview and Solution Structure Part 2 - Creating and Configuring your IdentityServer Part 3 - Adding Google Authentication to IdentityServer Part 4 - Creating and securing an ASP.NET Core... Read more

Securing a Vue.js app and API with IdentityServer - Part 4

This is part 4 of a series showing you how to secure a Vue.js app with IdentityServer and call an ASP.NET Core Web API. Part 1 - Overview and Solution Structure Part 2 - Creating and Configuring your IdentityServer Part 3 - Adding Google Authentication to IdentityServer Part 4 - Creating and securing an ASP.NET Core... Read more

Securing a Vue.js app and API with IdentityServer - Part 3

This is part 3 of a series showing you how to secure a Vue.js app with IdentityServer and call an ASP.NET Core Web API. Part 1 - Overview and Solution Structure Part 2 - Creating and Configuring your IdentityServer Part 3 - Adding Google Authentication to IdentityServer (this post) Part 4 - Creating and securing an... Read more

Securing a Vue.js app and API with IdentityServer - Part 2

This is part 2 of a series showing you how to secure a Vue.js app with IdentityServer and call an ASP.NET Core Web API. Part 1 - Overview and Solution Structure Part 2 - Creating and Configuring your IdentityServer (this post) Part 3 - Adding Google Authentication to IdentityServer Part 4 - Creating and securing an... Read more

Securing a Vue.js app and API with IdentityServer - Part 1

People regularly ask me how authentication should be performed when calling a secured HTTP API from a Single Page Application. This blog series provides a worked example, from beginning to end, showing you how to build a SPA with Vue.js, connect it to an HTTP API built with ASP.NET Core and to secure it with IdentityServer... Read more

Reignite your desire to improve

NDC Sydney, 2018 is on as I write this and yesterday I gave a talk titled “Reigniting your desire to improve” I’ve embedded the slides here for you, and I’ll do the same for the video once it’s available. Here’s the abstract for the talk: “We’re doing pretty well. There’s not much to improve on” #sigh... Read more

DDD: Entity Framework and the Memento Pattern

I worked with a team using Domain Driven Design recently that wanted to use Entity Framework Core (EF Core) for persistence and wanted to ensure that EF concepts didn’t leak into their core domain logic. The first approach was to use mapping code in the infrastructure layer (repositories) to convert between domain entities and EF entities;... Read more

How to debug a .NET Core app in Docker with VSCode

Let’s assume: that you’re building an ASP.NET Core web application you want to deploy and debug this in a Linux container some of your team use Visual Studio 2017+ on Windows others want to use Visual Studio Code on Mac the entire application is more than just a single web app in a container. You use... Read more

A simpler git status

Following on from my last git related post about reviewing pull requests I thought I’d quickly let you know of an approach I use when checking the status of my local git repo. Here’s your typical, lengthy, verbose output from git status λ git status On branch master Your branch is up to date with 'origin/master'.... Read more

Reviewing VSTS pull requests locally

Many teams review their pull requests (PRs) by looking at the code in the PR branch. This can be risky at times because it assumes that the source branch has pulled the most recent copy of the target branch (typically master) into it. In an active team you’ll often find many PRs being approved in quick... Read more

Using docker to avoid installing cli utilities

With Docker, and containers in general, becoming more and more prevalent I’m finding there’s no longer a compelling reason to install command line utilities anymore. Instead, I now look for docker images containing a CLI utility I want to use, and I simply pull that image locally and run a container for it instead. Why? A... Read more

The challenges of being a solo developer in a small community

I delivered a talk about on technical debt at NDC Sydney yesterday. In it I talk about the problem with bad code is not the code itself, it’s us. The people who create it. I also talk about the fact that we need others around us to help us spot the problems we don’t see, and... Read more

Fixing a raised trackpad on a Dell XPS 15 (9550)

–UPDATE, Oct 18th, 2017– Dell have just started a free battery replacement program for affected laptops. Check the Dell Product Bulletin page and enter your service tag number to see if you can get a free replacement. If you wish to replace the battery yourself, this post will show you how. I’ve had a Dell XPS... Read more

How to connect to a Windows SQL Server running in Docker

This is just a quick one and if it helps you, that’s great! I was asked for a little help in connecting to SQL Server running in a Docker windows container on Windows 10. Here’s the steps. Note: I’m assuming you already have Docker for Windows installed and have switched to Windows Server containers. Pull the... Read more