Supporting Multiple Microsoft Teams Bots in One ASP.NET Core ApplicationSince the advent of Large Language Models (LLMs), we have been leveraging the technology to streamline processes and improve staff…Dec 26, 2024Dec 26, 2024
Should You Use Shared Models or Separate Sets of Models?In the past, I’ve worked on software projects where there were many model classes with very similar properties. I often questioned the…Apr 14, 2024Apr 14, 2024
Understanding Message Flow in Microsoft Teams Bot Development.In this post, I share my knowledge and experience in developing a bot application for Teams using the Microsoft Teams Bot Framework. I will…Apr 1, 2024Apr 1, 2024
Reflections on ‘The Phoenix Project’: IT, Innovation, and the Path Forward”I recently finished reading “The Phoenix Project,” a novel that illustrates typical problems hindering the productivity and growth of…Feb 26, 2024Feb 26, 2024
Enhancing ASP.NETIn this post, I share an example of how I use a HttpMessageHandler to automatically attach a bearer token when calling a web API from an…Dec 24, 2023Dec 24, 2023
Displaying PDFs in Blazor.In this post, I go over a few options for displaying a PDF in a Blazor app, from the straightforward iframe src attribute embedding to…Nov 24, 2023Nov 24, 2023
My experience in using GitHub Copilot in Visual Studio and Visual Studio Code.Published October 1, 2023 in ToolsOct 1, 2023Oct 1, 2023
Cache angular components using RouteReuseStrategyThe project I have worked on has several pages that load data in Angular Material tables. The application’s user interface consists of a…Apr 8, 20231Apr 8, 20231
Using MSAL angular to authenticate a user against azure ADB2C via authorization code flow with…Previously, I switched from using oidc-client to MSAL Angular to integrate an Angular app with Azure AD for authentication. If you’re…Mar 2, 2023Mar 2, 2023
Using Azure Application Insights for centralized loggingA typical enterprise system usually runs on multiple servers behind a load balancer. The simplest logging option could be logging locally…Feb 1, 2023Feb 1, 2023