In May 2023, we launched our free monthly webinars. These are 1-hour long webinars that are on topics we like to work with - such as…
Last month, while learning more about the Domain-Driven Design (DDD) community, I saw a post for the [Virtual open Space] Systems Thinking…
Have you ever been on a company project where you had a lot of questions because you felt like there were a lot of unknowns? Have you been…
With social media platforms evolving, communities are moving on to other platforms. How do you find your community when the social media…
As you move from Moq to NSubstitute, you may wonder how they differ code-wise. In a recent lunch-n-learn discussion, Scott DePouw walked us…
The Strengths and Benefits of the Fractional Software Architect Model When we talk about innovation in the tech industry, it’s often tied to…
In an ever-evolving digital landscape, businesses large and small often face challenges keeping pace with technological advancements…
We help some of our clients with migrating from .NET Framework to .NET Core apps. The .NET Upgrade Assistant can assist in the transition…
Have you checked in code that’s misaligned and not formatted cleanly? Have you checked in code with broken tests? What if there was a way…
Have you ever looked at code and felt overwhelmed by the inconsistencies in curly brace placement? Have you felt exhausted trying to follow…
There are projects that developers have nicknamed “Frankenstein” or “a monster”. These nicknames are applied to software applications that…
Note: This post is part of the SciFiDevCon 2023: May the Fourth Be With You event. Ardalis and Sadukie happen to be a part of the Stir Trek…
NimblePros is excited to welcome another new member to our team! Thomas Mullaly is a Senior Consultant who brings a wealth of experience as…
If you are wanting to work with EF Core with Postgres, you may run into a problem where the casing of your tables may cause issues for…
This post is a response to Lætitia Avrot’s triggering prompt for PGSQL Phriday #007. PostgreSQL is one of the many database technologies we…
As March comes to an end, I wanted to feature someone in honor of Women’s History Month, one of the women behind the L of SOLID principles…
LINQ (Language Integrated Query) is a widely used feature in .NET, and it’s great to see that it’s still being built upon and modernized…
Naming things is hard, especially if there are multiple words that make up that name. Remembering names of naming conventions can also be…
NimblePros is pleased to welcome Cameron Young to our team in the role of Consultant. Cameron recently graduated to alumni status in the…
Code coverage analysis is a useful tool for any developer looking to build high-quality, maintainable code. It helps identify gaps in your…
While I was looking at the Ardalis.GuardClauses repo, I noticed that the build process was failing. Talking with Steve, I noticed that the…
We’re continuing to grow our team, and are excited to have Sarah “Sadukie” Dutkiewicz joining us! We have known Sarah through her prolific…
In today’s digital age, having a website or a web application has become a necessity for businesses and individuals alike. But deploying a…
In this quick tutorial, you will learn how to run and debug your application in Linux using WSL (Windows Subsystem for Linux) and Visual…
Compression can be a useful tool for reducing the size of data transmitted over a network or stored on disk. The .NET framework includes…
If you’ve run into an issue with LocalDB or SQL Server where the process fails to start and you see an error message about misaligned log…
This post is part of the F# Advent Calendar 2022 hosted by Sergey Tihon. The goal of this post is to provide a glimpse into the journey of…
Unit Testing Validation of Annotated Models It’s no secret that I like to unit test my code. The more I can decouple from dependencies and…
This is part of my blog post series on AutoMapper. Part 1 Part 2 Part 3 This was something I stumbled across in my work lately, which…
In this article we’ll show how structs and classes have different behaviors when it comes to constructors and why you need to be careful…
Fluent Assertions is a library used to make C# test code more readable and expressive. This frees your tests from syntax heavy assertion…
This is the third part of my blog post series on AutoMapper. First part here! Second part here! AutoMapper Allows Self-Mappings Without Map…
I recently tried a code kata that Steve Smith posted in our devBetter Discord server. The kata is essentially a modelling exercise. The goal…
If you’re coming from another programming language like JavaScript, Rust or Go, you may be familiar with the function found in the standard…
So you’ve set up some benchmarks for some performance critical piece of code in your application. Perhaps you’ve even followed along with my…
In the latest release of Ardalis.Result, a community requested feature was added to convert results from one type to another. This allows…
In this article I will show, step by step, how to set up a .NET benchmarking project. It is a cleaned up transcript from a video I made. We…
This is the second part of my blog post series on AutoMapper. Check out the first part here! AutoMapper: A Very Testable Tool One of the…
In a commencement address Steve Jobs gave to a Stanford graduating class, he said: You’ve got to find what you love… The only way to do…
Over the years, one of the tools I end up setting up / using / maintaining a lot has been AutoMapper. For the uninitiated, AutoMapper is a…
ASP.NET Core has great support for automated integration testing. The docs provide everything you need to get started, and there are many…
We’re pleased to announce our newest team member, Philippe Vaillancourt. Phil has many years of software development experience and is…
I was recently going through the process of installing the developer tooling I use on a fresh, new laptop. I installed the usual suspects…
We’re pleased to announce our newest team member, Jeremiah Cooper. Jeremiah has over a decade of professional software development, spanning…
Earlier this year Microsoft announced a new way to manage dependencies in .NET applications called Central Package Management. This new way…
Specification is a pattern in Domain Driven Design that helps encapsulate domain knowledge in a reusable way. The term Specification was…
A result is an abstraction that allows developers to express the value as well as the outcome of an operation. A basic result can represent…
Monitoring and Logging are critical pieces to the overall health and success of an application. Logging, which we’ll be specifically…
A Smart Enum is an enhancement of the C# enum that provides a strongly typed and object oriented approach to enum types. Smart Enums can be…
In a previous article we covered Getting Started with Guard Clauses. We introduced what guard clauses were, when they should be used as well…
A guard clause is a software pattern that simplifies complex functions by “failing fast”, checking for invalid inputs up front and…
Localization, the process of providing information in multiple languages as specified by the user, is a pretty common requirement for web…
We’re pleased to announce a new member of our team, Kyle McMaster. Kyle is passionate about learning new technology, and he looks forward…
devBetter is a group coaching program and professional software developer community. Its goal is to enable developers to accelerate their…
We hope that this note finds you well. It has been a long and unusual year for us all, and it is nice to finally be seeing some light at the…