Building a Sports-Themed MCP Server Using .NET

Building a Sports-Themed MCP Server Using .NET

I’ve lived in Melbourne for almost two years now, and throughout that time I’ve been trying to get my head around Australian rules, or AFL. I live pretty close to where Carlton Football Club train, so I’ve decided to support them (or as the Australians say “Go for them” 🤷). The more I learn about the game, the more I’m realizing that I may have set myself up for a lifetime of pain and dissappointment, but being an Arsenal fan since I was 6, I’m more than prepared for it 😂 ...

April 16, 2025 · 10 min · Will Velida
Using GitHub Models with Semantic Kernel

Using GitHub Models with Semantic Kernel

I’m making a conscious effort to deepen my knowledge on Semantic Kernel, and I just want an easy way to access LLMs and SLMs without having to go through Azure OpenAI (and pay for it). GitHub Models provides a number of AI models that you can use to build GenAI applications, particularly within Semantic Kernel. Semantic Kernel provides a lightweight framework for us to build AI applications and agents that use LLMs and other cloud services. Using Semantic Kernel, we can define workflows, apply reasoning over LLM outputs, and create complex AI workflows. ...

April 15, 2025 · 6 min · Will Velida
Implementing Dapr Pub/Sub in ASP.NET Core Web APIs

Implementing Dapr Pub/Sub functionality to ASP.NET Core Web APIs

In event-driven architectures, communicating between different microservices via messages can be enabled using Publish and Subscribe functionality (Pub/Sub for short). The publisher (or producer) writes messages to a message topic (or queue), while a subscriber will subscribe to that particular topic and receives the message. Both the publisher and subscriber are unaware of which application either produced or subscribed to the topic. This pattern is useful when we want to send messages to different services, while ensuring that they are decoupled from each other. ...

August 15, 2023 · 9 min · Will Velida
Using Assertion Scopes to execute multiple Assertions in C#

Using Assertion Scopes to execute multiple Assertions in C#

Fluent Assertions is a .NET library that provides use with a bunch of useful extension methods that allow us to test our C# code in a more natural way. Let’s say for example we are testing the output of a string. Without Fluent Assertions, we might write something like this: string testString = "hello"; string expectedOutput = testString.ToUpper(); Assert.Equal(expectedOutput, "HELLO"); If we were to write this test using Fluent Assertions, we could do so like this: ...

June 27, 2023 · 4 min · Will Velida
Building Simple Dapr Cron Jobs with ASP.NET Core Web APIs

Building Simple Dapr Cron Jobs with ASP.NET Core Web APIs

I’ve been thinking about migrating one of my side projects from Azure Functions to the Dapr framework to make it more portable. One of the most important components of this architecture is the ability to refresh an authentication token that enables each Function app to retrieve data from an external API. In an Azure Functions architecture, we can use timer triggers to perform scheduled jobs simply. The issue here is that Functions have an opinionated programming model. While this does make integrations between components simple, this can lock us into the Azure Functions hosting model, limiting the portability that I’d like my architecture to achieve. ...

June 19, 2023 · 5 min · Will Velida