JWT Authentication in ASP.NET Core 3.1 is very easy to implement with native support, which allows you to authorize endpoints without any extra dependencies. The middleware handles all the hard work, and all you have to do is add a few lines of code! However, there is one bit of documentation that may not be […]
In my last post, Setting Up an Azure Functions Dependency Injection Context for Request Tests, I started working on request testing an Azure Functions project. The intent is to run through as much production code as possible. Last time, I got the dependency injection context configured with the functions, configuration, and logging. In this post, […]
Hot Chocolate is a GraphQL server that can integrate with ASP.NET Core, but it doesn’t participate in the same dependency injection you may be used to. That means it’s not immediately clear how to get at the Session or User objects. Normally, you can access these things through an HttpContext. On a controller, you read […]
The .NET framework has had several different patterns for doing asynchronous work — the Task Parallel Library (TPL), the Event-based Asynchronous Pattern (EAP), and the Asynchronous Programming Model (APM), to name a few. Since they build on each other, if you’re not familiar with all of them, it can be difficult to understand how they […]
Having spent most of my time doing web development, when I was asked to add some scalable vector graphics (SVGs) into our WPF application, I thought, “No problem! That will be quick.” Naturally, I was getting ahead of myself. While adding SVGs into our WPF windows wasn’t too painful overall, it took a little more […]
As generalists, we can and do work across many platforms and frameworks. But that doesn’t mean that we’re immediately comfortable when we have to pack up and move from the platform we typically call home, where we’ve got things arranged just the way we like it. When moving from a Unix-like platform to Windows, things […]
Deleting data in any software system can be a tricky problem. Often, instead of deleting data and permanently losing it, it may be preferable to keep the data, but make it invisible to users.
How does reactive programming work? “It’s all streams,” our program manager explained. “When you update a property in one part of the system, it causes another property in a different part of the system to update, too. It will take a bit to wrap your mind around.” In my head, I pictured properties all over […]
While trying to figure out the best way to structure my “reducer” functions in a Redux-style Xamarin app, I found out that C# 7.0 introduced pattern matching support in switch statements!
Last December, I wrote about using F#’s interactive REPL to facilitate TDD. Since then, enough interesting developments have happened that I think the topic is worth revisiting.