.NET Boxed
.NET Boxed is a set of project templates with batteries included, providing the minimum amount of code required to get you going faster. Right now it includes API and GraphQL project templates. ASP.NET...
View ArticleMigrating to Entity Framework Core Seed Data
I was already using Entity Framework Core 2.0 and had written some custom code to enter some static seed data to certain tables. Entity Framework 2.1 added support for data seeding which manages your...
View ArticleOptimally Configuring Entity Framework Core
Lets talk about configuring your Entity Framework Core DbContext for a moment. There are several options you might want to consider turning on. This is how I configure mine in most microservices:...
View ArticleASP.NET Core Hidden Gem – QueryHelpers
I discovered a hidden gem in ASP.NET Core a couple of weeks ago that can help to build up and parse URL’s called QueryHelpers. Here’s how you can use it to build a URL using the AddQueryString method:...
View ArticleOptimally Configuring ASP.NET Core HttpClientFactory
Update (20-08-2018): Steve Gordon kindly suggested a further optimisation to use ConfigureHttpClient. I’ve updated the code below to reflect this. In this post, I’m going to show how to optimally...
View ArticlePluralSight vs LinkedIn Learning vs FrontendMasters vs Egghead.io vs YouTube
I use a lot of video resources to keep up to date with .NET, JavaScript and other tech like Docker, Kubernetes etc. I’ve compiled here a list of these resources and my impressions of using them and...
View ArticleIs ASP.NET Core now a Mature Platform?
The Upgrade Train I started using ASP.NET Core back when it was still called ASP.NET 5 and it was still in beta. In those early days every release introduced a sea change. The beta’s were not beta’s at...
View ArticleA Simple and Fast Object Mapper
I have a confession to make…I don’t use Automapper. For those who don’t know Automapper is the number one object to object mapper library on NuGet by far. It takes properties from one object and...
View ArticleSecuring ASP.NET Core in Docker
Some time ago, I blogged about how you can get some extra security when running Docker containers by making their file systems read-only. This ensures that should an attacker get into the container...
View ArticleGit Cloning the Windows OS Repo
Disclaimer: I’m a Microsoft employee but my opinions in this personal blog post are my own and nothing to do with Microsoft. The information in this blog post is already publicly available and I talk...
View Article.gitattributes Best Practices
.gitignore If you’ve messed with Git for long enough, you’re aware that you can use the .gitignore file to exclude files from being checked into your repository. There is even a whole GitHub...
View ArticleUnit Testing dotnet new Templates
Part 1 – Custom Project Templates Using dotnet newPart 2 – dotnet new Feature SelectionPart 3 – Unit Testing dotnet new Templates As I talked about in my previous post some time ago about dotnet new...
View ArticleWhat dotnet new Could Be
The ‘dotnet new‘ CLI command is a great way to create projects from templates in dotnet. However, I think it could provide a much better experience than it currently does. I also suspect it isn’t used...
View ArticleASP.NET Core Integration Testing & Mocking using Moq
If you want to run an integration test for your ASP.NET Core app without also testing lots of external dependencies like databases and the like, then the lengthy official ‘Integration tests in ASP.NET...
View ArticleJust Start - The First Blog Post
I thought I should begin this first blog post with a few words on what I hope to achieve. I started creating this website because I wanted to create a space where I could post interesting things I...
View ArticleConfigureAwait in Task Parallel Library (TPL)
The Task Parallel Library in conjunction with the async and await keywords are great but there are some subtleties which you should consider. One of these is the use of the ConfigureAwait method. If I...
View ArticleStop The Brace Wars, Use StyleCop
There is an on-going war among developers. This silent war has claimed countless hours of developer time through hours wasted in pointless meetings and millions of small skirmishes over the style of...
View ArticleReactive Extensions (Rx) - Part 1 - Replacing C# Events
Reactive Extensions (Rx) - Part 1 - Replacing C# Events Reactive Extensions (Rx) - Part 2 - Wrapping C# Events Reactive Extensions (Rx) - Part 3 - Naming Conventions Reactive Extensions (Rx) - Part 4...
View ArticleReactive Extensions (Rx) - Part 2 - Wrapping C# Events
Reactive Extensions (Rx) - Part 1 - Replacing C# Events Reactive Extensions (Rx) - Part 2 - Wrapping C# Events Reactive Extensions (Rx) - Part 3 - Naming Conventions Reactive Extensions (Rx) - Part 4...
View ArticleReactive Extensions (Rx) - Part 3 - Naming Conventions
Reactive Extensions (Rx) - Part 1 - Replacing C# Events Reactive Extensions (Rx) - Part 2 - Wrapping C# Events Reactive Extensions (Rx) - Part 3 - Naming Conventions Reactive Extensions (Rx) - Part 4...
View Article