Removing Secret Strings from Your .NET Aspire Project

If you’re building modern .NET Aspire apps, you’re probably familiar with how service names and resource identifiers are often passed around as string literals, things like "apiservice" or "storage". But these magic strings can lead to headaches: typos, duplication, poor discoverability, and painful refactoring. Thankfully, there’s a clean and safe way to centralize and manage these identifiers using a shared constants class, removing “secret strings” from your Aspire project. 💥

Developing with ARM-based Surface Laptop Copilot+PC

This week I was excited to finally get my hands on a new PC for my personal use. I purchased one of the new ARM-based Surface Laptop Copilot+ PCs. As a developer focused on .NET and Azure, I was eager to see how well this sleek new machine could handle my day-to-day workflow. While performance and battery life have impressed me so far, I’ve run into a few bumps in the road when it comes to local development, especially in areas that rely on platform-specific tooling or containerized environments.

User Group Events in July and August 2025

It’s shaping up to be a fun summer of sharing and learning, and I’d love for you to be part of it! I’ve got three user group presentations lined up through the end of August, and whether you’re into Azure development, curious about agentic workflows, or just enjoy free pizza and great conversation (who doesn’t?), there’s something here for you. Here’s where you can find me: July 24: Getting Started with Azure Durable Task Scheduler 📆 Thursday, July 24th @ 5:30pm

Navigating Microsoft's AI Landscape: From Microsoft.Extensions.AI to Semantic Kernel

It seems increasingly clear that Semantic Kernel is where Microsoft is investing for building modern, robust AI applications. In fact, Microsoft has stated as much: “Semantic Kernel (is) central to Microsoft’s enterprise AI story”. In typical Microsoft fashion, they offer several seemingly competing options for developers to choose from, such as AutoGen, Microsoft.Extensions.AI, and probably a few others I’m forgetting right now. This variety doesn’t make it any easier for .

Dotnet Run App

Have you ever had a moment of inspiration, an idea you wanted to test in C#, but didn’t want to spin up a full project just to run a few lines of code? Same here. Well, with .NET 10 Preview 4, that pain is going away. Say hello to the new dotnet run app.cs feature. It’s like C# finally took a page from Python and JavaScript, languages that have long made it easy to run a file with a single command.

Microsoft Build 2025 Recap

Microsoft Build 2025 centered on the future of intelligent agent-based applications. This post recaps my four-day experience in Seattle attending Build, covering keynotes, developer sessions, GitHub Copilot updates, .NET Aspire insights, and hands-on labs. Get a firsthand look at emerging trends and tools shaping how we build AI-powered solutions in the Microsoft ecosystem.

New Year and Back to Blogging

It has been over 2 years since I’ve posted an update to this blog. I miss writing. It’s time I get back to writing about what I’ve been working on and what’s on my mind. The start of a new year is as good of time as any to get back to blogging.

While I’m at it, I might as well share my New Year’s resolutions for 2024.

Azure Functions Zip Deploy with Azure AD Authentication

I was recently faced with a scenario where I needed a script to deploy an Azure Function. Specifically, there was a desire to use a REST API to deploy a .zip file of the Function app. The documentation for “Deploy ZIP file with REST APIs” indicates this is possible via a HTTP POST request to https://{APP-NAME}.scm.azurewebsites.net/api/zipdeploy. One challenge with the current documentation is the stated need to use HTTP BASIC authentication.

Azure Function Secretless Extensions - First Experience

I recently started experimenting with the beta versions of the new Azure Storage and Event Hub extensions for Azure Functions. The new extensions use the new Azure SDK, and as a result, include support for using Azure AD to authenticate to specific Azure resources (a.k.a., managed identities). I’m a fan of having fewer secrets to manage. Less secrets . . . more better. 😉 This intent of this blog post is to share my initial experiences with the extensions.

Azure Podcast Interview

Earlier this month I had the pleasure to join The Azure Podcast team to talk about my experiences with Azure Functions. We discussed how I came to love working with Azure, my journey from classic Cloud Services to Azure Functions, and the current state of virtual networking with Azure Functions. This was my second time on the podcast. My first appearance was a little more than 5 years ago after the release of a book I co-authored, Fundamentals of Azure.