An Immutable Asynchronous State Holder in C#

Managing state in a clean way is probably one of the most challenging aspects of many software projects. When using asynchronous programming technologies such as .NET’s async/await functionality or the Reactive Observable pattern, the problem of state management is exacerbated and often becomes a source of errors. In several projects that I have worked on […]

I Hate #regions

As software consultants, we work in many environments. Most of the time we are working in our own environment on a brand new project, but sometimes we work with a team of client developers on existing software. In the later case, we have to be mindful of their coding standards. One practice that drives me […]

Testing C#.Net Async Code

Writing C#.Net async code can be a bit of a challenge, and writing tests around the code can frequently cause much pain and agony. In fact, conventional wisdom around the Internet seems to be that writing async tests is hard enough that it’s okay to avoid it. I disagree. Writing tests has enough benefits (most […]

IEnumerable, for a More Elegant C#

I’ve recently had the chance to dig in deeper than ever before in C#. There are a lot of things I like about C#, one of them being LINQ (Language-Integrated Query). I’ve started to rely heavily on one aspect of LINQ, Enumerables. What is LINQ? At first glance, LINQ expressions look like SQL queries. Expressions […]

C#: (a few of) The Good Parts

After any prolonged dive into a particular technology stack, I end up with a set of tools and features I feel most comfortable with—the ones that most naturally fit how the rest of the team and I choose to build. Being part of a team at Atomic Object means those tools will be the ones […]