Using TimeProvider and FakeTimeProvider in WinForms Testing .NET code involving time has always been a pain, but the TimeProvider class (backported to the .NET Framework) gives us awesome new tools.
SSRS won't show the updated default value for a parameter Changed the default value for a report parameter, but it's not actually updating in SSRS? That's by design. Let's find a way around it.
TGIF vol.1 I often come across articles, tutorials, videos, etc that I'd like to share, but in a short format without dedicating a whole post to each one. And so.. the inaugural TGIF post (when I've got enough to share, maybe weekly, maybe not). A long-distance Voyager update
How to use (and test) TimeProvider timers in .NET Testing timers in C# is difficult, but .NET 8 (C# 12) adds an abstract TimeProvider class that makes it easier. Let's take a closer look.
How to use TimeProvider and FakeTimeProvider (time abstraction in .NET) Testing time in C# is difficult, but .NET 8 (C# 12) adds an abstract TimeProvider class that makes it easier. Let's take a closer look.
Similar endpoints, swagger pages, and a DevOps fail After an unexpected debugging session, some thoughts on APIs, similar endpoints, swagger, and an ugly DevOps fail.
Diligence, laziness.. or both? Funny how a little due diligence mixes so well with a healthy interest in avoiding unnecessary future work.
A swirly mass of shared code I heard a story recently, where a team was asked, after spending months adding a set of features to a codebase, to remove a specific feature from very early on in the project, right before the release date. Other features had been built around it and on top of it.
If/else vs switch/case pattern matching A look at if/else, switch/case, pattern matching, other options ... and which is best. (spoiler: none ;) )
What are list patterns in C#? C# has been getting a lot of pattern matching love in recent years, like with list patterns in C# 11. The problem is knowing where and how to use it.
Even in failure, an increase in understanding is a win When what we're trying to accomplish fails, the extra knowledge and clarity we get just by making the attempt is a win all by itself.
What are generic attributes in C# 11? Generic attributes increase the flexibility of a very early .NET feature. Let's try using them and see how it keeps our code DRY.
Simple ways to notify a user without a MessageBox in WinForms When sending notifications in a WinForms app, a MessageBox is the only way to go... or is it? Let's get creative and see what else we might do.
How to call an async method from a synchronous one, without deadlocking Writing async code whenever possible is great, but how do we do it when we're stuck with legacy (and very synchronous) code?