A blog about software development, DevOps, and delivering value.
The simplicity of Azure Functions makes it tempting to avoid following good design practices like dependency injection. The default project template doesn’t even support it. This may be fine for learning and quick experiments but would be a mistake for production code. Simplicity is not an excuse for bad engineering. Luckily, setting up dependency injection […]
The new Azure.Identity library hit GA this month. I’ve been wanting to modify a lot of our services to use managed identities and this library, through the use of DefaultAzureIdentity, finally streamlines the experience between local development and running in Azure. So far only the most common Azure SDK packages have first-class support for it, […]
I recently read a post on a career advice board from a software engineer who was worried his job was hurting his career. He worked with “legacy code” at a boring company where nothing ever changed. They were stuck with outdated systems and poor development/IT practices. He felt behind in the industry and was worried […]
Record paging is a really common requirement for APIs that expose a lot of data. Paging in Azure Cosmos DB SQL API is done using continuation tokens. This post demonstrates how to use them to implement a paged API. When querying Cosmos DB through the REST API you can specify a maximum count to return in […]
I’ve been working on a project where we’re migrating a data access layer from an old ORM to Entity Framework Core. The old ORM has some features that EF Core doesn’t support, so I was tasked with seeing if the SQL generation in Entity Framework Core’s SQL Server provider could be extended to support what […]
It’s a good practice to always test your EF migration code when you create a new migration, especially if you are manually tweaking the Up() or Down() code. If that code doesn’t apply the changes properly it could put the database in a bad state and break migrations if you try to run it again. […]
I often find myself switching between regular and administrator PowerShell sessions. If you have one of each session open, the only way to tell the difference between them is to look for the word “Administrator” in the title bar. I’m not sure if it’s the poor contrast in the title bar or if I’m slowly […]
Message handlers are a very powerful yet underutilized part of the ASP.NET Web API framework. In this post, I’ll demonstrate their usefulness in keeping your API clean, maintainable, and testable. Before I get into how to write a message handler you need to know where they fit into the Web API request pipeline and how […]
The Problem Cloud applications depend on a lot of interconnected services and resources. These services are generally reliable, but transient failures are simply a reality of the Internet. While providers like Azure and AWS try their best to make sure their services are available they can’t mitigate the risk entirely. Not accounting for this in the […]
Imagine you’ve built and deployed an incredible new application that is taking the Internet by storm. At first, you were amazed at the horde of new users that were registering every day. Now after seeing how taxed your compute and data store resources are you wish it hadn’t happened quite so fast. Even after scaling up resources, you’re […]