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.
I recently modified some connection strings and settings across multiple ASP.NET web applications in a large solution. It (only) took an hour, but in the process I found multiple incorrect and stale settings. The code violated the DRY principle. The fix involved referencing the common shared settings from a single source instead of repeating them […]
I’ve done a lot of C# development over the past three years. I’m very happy with how the language has evolved. During that time, my coding style in C# has also evolved. Here are some simple techniques I’ve found that have increased the quality of my C# code.