Using strongly-typed entity IDs to avoid primitive obsession (Part 2)
In my previous post, I described a common problem in which primitive arguments (e.g. System.Guid or string) are passed in the wrong order to a method, resulting in bugs. This problem is a symptom of...
View ArticleUsing strongly-typed entity IDs to avoid primitive obsession (Part 3)
In a previous post, I described a common problem in which primitive arguments (e.g. System.Guid or string) are passed in the wrong order to a method, resulting in bugs. This problem is a symptom of...
View ArticleStrongly-typed IDs in EF Core: Using strongly-typed entity IDs to avoid...
This is another post in my series on strongly-typed IDs. In the first and second posts, I looked at the reasons for using strongly-typed IDs, and how to add converters to interface nicely with ASP.NET...
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 a...
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
In this post I describe how to run Quartz.NET jobs using an ASP.NET Core hosted service. I show how to create a simple IJob, a custom IJobFactory, and a QuartzHostedService that runs jobs while your...
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...
In a recent .NET Community Standup, a new library was introduced that's being built by the Azure team - Microsoft.FeatureManagement. In this post, I give a brief introduction to the library and how to...
View ArticleFiltering action methods with feature flags: Adding feature flags to an...
In the first post in this series, I introduced the Microsoft.FeatureManagement library, and showed how to use it to add feature flags to an ASP.NET Core app. In this post, I introduce the companion...
View ArticleCreating dynamic feature flags with feature filters: Adding feature flags to...
In the first post in this series, I introduced the Microsoft.FeatureManagement library, and showed how to use it to add feature flags to an ASP.NET Core app. In the second post, I introduced the...
View ArticleCreating a custom feature filter: Adding feature flags to an ASP.NET Core app...
Microsoft.FeatureManagement allows you to add feature flags to an ASP.NET Core app that are controlled by the configuration system. In the previous post I introduced feature filters, and showed how...
View ArticleEnsuring consistent feature flags across requests: Adding feature flags to an...
In the first and second posts in this series, I introduced the Microsoft.FeatureManagement, and Microsoft.FeatureManagement.AspNetCore libraries, and showed how to use them to add feature flags to an...
View ArticleVerifying phone number ownership with Twilio Verify API v2 using ASP.NET Core...
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 ArticleExploring Raygun's new application performance monitoring tool for .NET Core
Raygun are well known in the error/crash reporting space, especially for .NET applications. They also have a relatively new application performance monitoring (APM) product for measuring server-side...
View ArticleGenerating strongly-typed IDs at build-time with Roslyn: Using strongly-typed...
This is another post in my series on strongly-typed IDs. In the first and second posts, I looked at the reasons for using strongly-typed IDs, and how to add converters to interface nicely with ASP.NET...
View ArticleAlternatives to Microsoft.FeatureManagement: Adding feature flags to an...
In this series I've been looking at the Microsoft.FeatureManagement library (which is now open source on GitHub 🎉). This provides a thin layer over the .NET Core configuration system for adding feature...
View ArticleUsing the ReferenceAssemblies NuGet package to build .NET Framework libraries...
In this post I show how you can build .NET projects that target .NET Framework versions on Linux, without using Mono. By using the new Microsoft.NETFramework.ReferenceAssemblies NuGet packages from...
View ArticleHow to build with Cake on Linux using Cake.CoreCLR or the Cake global tool
In this post I show two ways to use the Cake build system to build .NET Core projects on Linux: using the Cake.CoreCLR library, or the Cake.Tool .NET Core global tool. This post only deals with...
View Article