Dev Corner
Diving deep into the code to solve your challenges and offer up expert tipsVertical slice architecture example updated to .NET 5
With the release of .NET 5, I wanted to update my Vertical Slice code example (Contoso University) to .NET 5, as well as leverage all the C# 9 goodness. The migration itself was very simple, but updating the dependencies along the way proved to be a bit more of a...
Streamlining your automated tests, Pt. 2
In our last article, we looked at how the builder pattern increases the readability of our tests while simultaneously decoupling us from the construction details around the objects we’re testing. Sometimes this pattern by itself isn’t sufficient. Occasionally, we need...
Building, signing, and publishing Electron Forge applications for Windows
TL;DR: We dig into the different types of code signing certificates, coding the updater, configuring your package.json, and how to initiate a build/deployment when using Electron with Electron Forge. Have you found yourself signing an Electron app lately? The process...
Better than passwords: Securing cloud infrastructure with Azure Managed Identities
TLDR; Contrary to rumor, cloud infrastructure can be made as secure as on-premise—and, with a little work, even more so. Azure Managed Identity does away with the need for keys, passwords, or other secrets entirely and is a breeze to set up and add to your...
Streamlining your automated tests, Pt 1
TL;DR Writing automated tests for your complex scenarios is important, but it’s easy for the tests to become difficult for other developers (including your 6-month future-self) to read and understand. Using a builder method for the “happy path” that returns an object...
Electron tutorial: Successful updates with Electron Forge
TL;DR: Electron is awesome, but Electron updating needs to be configured to work well. In this Electron tutorial, we show you how to configure a warning that tells the user not to shut down an application when it’s updating—proactively eliminating problems and saving...
Vertical Slice testing done right: a tutorial
When exploring best practices for automated testing and Test-Driven Development (TDD), our software consultants refer to the Test Pyramid. This diagram describes the different kinds of tests, and the relative number of them we should aim for. The general idea is that...
Modernizing an MVC application with multiple React features
Most developers have experienced working with an application that has grown significantly over the years, getting very hard to maintain. We keep spending hours trying to understand the patterns, if any. There is never enough time or budget to modernize the app and get...
Using Airflow to run tasks in parallel in AWS
TL;DR AWS doesn’t provide a dashboard or user interface to efficiently run multiple Fargate tasks against a container with different inputs. Apache Airflow allows you to define your tasks via Python scripts programmatically. Using the AWS API via an ECS operator will...
Don’t chase the warning! Applying Nullable Reference Types in Fixie
TLDR; As you enable the C# 8 Nullable Reference Types feature, you may find that applying the ? and ! type hints isn’t enough. You may see that the compiler needs a few extra clues in order to make accurate conclusions about your code. Thankfully, a number of special...
Introducing ETL pipelines in the Bulk Writer Library 3.0
TL;DR A new version of the Bulk Writer library has been released. One of the major enhancements is the addition of a new helper class for creating ETL pipelines. With some fluent configuration, you can put fast, memory-efficient processing pipelines ahead of...
Organizing Razor Pages with Vertical Slice Architecture
As software developers and consultants we are always on the lookout for a better way. It’s what we have been doing since the invention of computer and software programming. The pioneers of software development laid a strong foundation and throughout the years we have...