An introduction to ASP.NET Core Razor Pages
Razor pages is a new aspect of ASP.NET Core MVC introduced in ASP.NET Core 2.0. It offers a "page-based" approach for building server-side rendered apps in ASP.NET Core and can coexist with...
View ArticleCreating a GitHub app with create-probot-app: Creating my first GitHub app...
This is the first post in the series: Creating my first GitHub app with Probot. Part 1 - Creating a GitHub app with create-probot-app (this post) Part 2 - Creating the auto-assign-issues bot Part 3 -...
View ArticleCreating the auto-assign-issues bot: Creating my first GitHub app with Probot...
This is the second post in the series: Creating my first GitHub app with Probot. Part 1 - Creating a GitHub app with create-probot-app Part 2 - Creating the auto-assign-issues bot (this post) Part 3 -...
View ArticleDeploying a GitHub app to Glitch: Creating my first GitHub app with Probot -...
This is the third post in the series: Creating my first GitHub app with Probot. Part 1 - Creating a GitHub app with create-probot-app Part 2 - Creating the auto-assign-issues bot Part 3 - Deploying a...
View ArticleWhy isn't my session state working in ASP.NET Core? Session state, GDPR, and...
In this post I describe a problem that I've been asked about several times related to session state. The scenario goes something like this: Scaffold a new ASP.NET Core application Set a string in...
View ArticleCreating a not-empty GUID validation attribute and a not-default validation...
In this post I describe a handy validation attribute used during ASP.NET Core model binding for verifying that a GUID doesn't have the default value of Guid.Empty. I always find myself re-creating it...
View ArticleCreating my first Azure Functions v2.0 app: a WebHook and a timer
In this post I show how to create your first Azure Functions app, consisting of a timer that runs on a schedule to trigger a build on Netlify, and a WebHook that runs in response to an HTTP request...
View ArticleExploring the .NET Core MCR Docker files (updated): runtime vs aspnet vs sdk
This is an update to my previous post explaining the difference between the various Linux .NET docker files. Microsoft recently moved its Docker images to Microsoft Container Regitsry (MCR) instead of...
View ArticleUsing Lambda@Edge to handle Angular client-side routing with S3 and CloudFront
In this post I show how to a handle an issue you get when hosting a SPA on AWS with S3 and CloudFront, where reloading the app gives a 403 or 404 response. I'll show how to use Lambda@Edge to handle...
View ArticleAn introduction to strongly-typed entity IDs: Using strongly-typed entity IDs...
This is the first post in the series: Using strongly-typed entity IDs to avoid primitive obsession. Part 1 - An introduction to strongly-typed entity IDs (this post) Part 2 - Adding JSON converters to...
View ArticleAdding JSON converters to strongly typed IDs: Using strongly-typed entity IDs...
This is the second post in the series: Using strongly-typed entity IDs to avoid primitive obsession. Part 1 - An introduction to strongly-typed entity IDs Part 2 - Adding JSON converters to strongly...
View ArticleUsing strongly-typed entity IDs with EF Core: Using strongly-typed entity IDs...
This is the third post in the series: Using strongly-typed entity IDs to avoid primitive obsession. Part 1 - An introduction to strongly-typed entity IDs Part 2 - Adding JSON converters to strongly...
View ArticleStrongly-typed IDs in EF Core (Revisited): Using strongly-typed entity IDs to...
This is the fourth post in the series: Using strongly-typed entity IDs to avoid primitive obsession. Part 1 - An introduction to strongly-typed entity IDs Part 2 - Adding JSON converters to strongly...
View ArticleValidating phone numbers with Twilio using ASP.NET Core Identity and Razor Pages
ASP.NET Core Identity is a membership system that adds login and user functionality to ASP.NET Core apps. It includes many features out of the box and has basic support for storing a phone number for...
View ArticleSafely migrating passwords in ASP.NET Core Identity with a custom PasswordHasher
Some time ago I wrote a post on the default ASP.NET Core Identity PasswordHasher<> implementation, and how it enables backwards compatibility between password hashing algorithms. In a follow up...
View ArticleVerifying phone number ownership with Twilio using ASP.NET Core Identity and...
ASP.NET Core Identity is a membership system that adds user sign in and user management functionality to ASP.NET Core apps. It includes many features out of the box and has basic support for storing a...
View ArticleCreating a Quartz.NET hosted service with ASP.NET Core
There is a newer version of this post that uses the new Quartz.Extensions.Hosting package which implements most of the code in this post for you. In this post I describe how to run Quartz.NET jobs...
View ArticleUsing scoped services inside a Quartz.NET hosted service with ASP.NET Core
In my previous post I showed how you can create a Quartz.NET hosted service with ASP.NET Core and use it to run background tasks on a schedule. Unfortunately, due to the way way the Quartz.NET API...
View ArticleSerializing a PascalCase Newtonsoft.Json JObject to camelCase
In this post I describe one of the quirks of serializing JSON.NET JObject (contract resolvers are not honoured), and show how to get camelCase names when serializing a JObject that stored its property...
View ArticleIntroducing Microsoft.FeatureManagement: Adding feature flags to an ASP.NET...
This is the first post in the series: Adding feature flags to an ASP.NET Core app. Part 1 - Introducing Microsoft.FeatureManagement (this post) Part 2 - Filtering action methods with feature flags...
View Article