---
title: "Swimburger.net: .NET, cloud, and web development"
description: "Swimburger.net is Niels Swimberghe's technical blog about .NET, cloud, and web development."
canonical: "https://swimburger.net/"
---

[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover/media/mvjniefb/thumbnail.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover/media/mvjniefb/thumbnail.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover/media/mvjniefb/thumbnail.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover/media/mvjniefb/thumbnail.png 500w" sizes="250px" width="250" height="250" alt="OpenAI logo" decoding="async" loading="lazy" style="background-color:#6c0a51"></picture>

## Create a chatbot in the console with Azure OpenAI and C#

5/5/2023 - .NET

Learn how to create an Azure OpenAI instance and deploy a model to it, how to integrate the Azure OpenAI SDK into your .NET application, and how to use the chat completions APIs to create a chatbot.



](/blog/dotnet/create-a-chatbot-in-the-console-with-azure-openai-and-csharp)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover/media/5ezl35cf/dotnet-logo.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover/media/5ezl35cf/dotnet-logo.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover/media/5ezl35cf/dotnet-logo.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover/media/5ezl35cf/dotnet-logo.png 500w" sizes="250px" width="250" height="250" alt=".NET logo" decoding="async" loading="lazy"></picture>

## Change the ServiceLifetime after the service has been added to the .NET ServiceCollection

3/31/2023 - .NET

Learn how to change the lifetime of services already added to a service collection.



](/blog/dotnet/change-the-servicelifetime-after-the-service-has-been-added-to-the-net-servicecollection)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover/media/c3thcerb/e5fgllibudqmqzrhto24l1mwmelv9nvhm2tidiepbro1twidth-1616.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover/media/c3thcerb/e5fgllibudqmqzrhto24l1mwmelv9nvhm2tidiepbro1twidth-1616.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover/media/c3thcerb/e5fgllibudqmqzrhto24l1mwmelv9nvhm2tidiepbro1twidth-1616.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover/media/c3thcerb/e5fgllibudqmqzrhto24l1mwmelv9nvhm2tidiepbro1twidth-1616.png 500w" sizes="250px" width="250" height="250" alt="Build a URL Shortener with .NET and Redis" decoding="async" loading="lazy"></picture>

## How to build a URL Shortener with C# .NET and Redis

3/21/2023 - .NET

Learn how to build a link shortener using C#, .NET, and Redis. You'll be using ASP.NET Core to build the URL forwarder and the System.CommandLine libraries to manage the data.



](/blog/dotnet/how-to-build-a-url-shortener-with-csharp-dotnet-and-redis)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover/media/amcdy2bu/nhbh0ijxx-eey-suh0uc9bntcduzv37zgy37ngzb2u6x8width-1616.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover/media/amcdy2bu/nhbh0ijxx-eey-suh0uc9bntcduzv37zgy37ngzb2u6x8width-1616.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover/media/amcdy2bu/nhbh0ijxx-eey-suh0uc9bntcduzv37zgy37ngzb2u6x8width-1616.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover/media/amcdy2bu/nhbh0ijxx-eey-suh0uc9bntcduzv37zgy37ngzb2u6x8width-1616.png 500w" sizes="250px" width="250" height="250" alt="Announcing the Webhook Plugin: Validate your webhooks with the new webhook plugin for the Twilio CLI" decoding="async" loading="lazy"></picture>

## Announcing the Webhook Plugin: Validate your webhooks with the new webhook plugin for the Twilio CLI

3/14/2023 - Twilio

Emulate webhook requests to test your Twilio webhook applications using the new webhook plugin for the Twilio CLI.



](/blog/twilio/announcing-the-webhook-plugin)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover/media/ba0ptlme/c366rsbrnwusvkwu5tlhiednf2u_upsgflernhmxdlncswidth-1616.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover/media/ba0ptlme/c366rsbrnwusvkwu5tlhiednf2u_upsgflernhmxdlncswidth-1616.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover/media/ba0ptlme/c366rsbrnwusvkwu5tlhiednf2u_upsgflernhmxdlncswidth-1616.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover/media/ba0ptlme/c366rsbrnwusvkwu5tlhiednf2u_upsgflernhmxdlncswidth-1616.png 500w" sizes="250px" width="250" height="250" alt="Use XML Literals in Visual Basic .NET to generate TwiML" decoding="async" loading="lazy"></picture>

## Use XML Literals in Visual Basic .NET to generate TwiML

3/14/2023 - .NET

Learn how to generate TwiML instructions to respond to texts and voice calls using XML Literals in Visual Basic .NET and ASP.NET Core Minimal APIs.



](/blog/dotnet/use-xml-literals-in-visual-basic-dotnet-to-generate-twiml)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover/media/g20lioy2/tj9v5o0oobs8fux5ohohkjcuqxnjk-nyjawidth-1616format-png.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover/media/g20lioy2/tj9v5o0oobs8fux5ohohkjcuqxnjk-nyjawidth-1616format-png.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover/media/g20lioy2/tj9v5o0oobs8fux5ohohkjcuqxnjk-nyjawidth-1616format-png.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover/media/g20lioy2/tj9v5o0oobs8fux5ohohkjcuqxnjk-nyjawidth-1616format-png.png 500w" sizes="250px" width="250" height="250" alt="Generate TwiML using Strings in C#" decoding="async" loading="lazy" style="background-color:#121c2d"></picture>

## How to generate TwiML using Strings in C#

2/21/2023 - .NET

Learn how Twilio uses webhooks and TwiML to give you control over how to respond to a call or text message. You can generate TwiML using strings in many ways, and with C# 11 you can now also use Raw String Literals.



](/blog/dotnet/how-to-generate-twiml-using-strings-in-csharp)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover/media/aiddtixz/py9oh53qzeh8edhp301dzk4s05noejgmod-_cncljfkrrwidth-1616.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover/media/aiddtixz/py9oh53qzeh8edhp301dzk4s05noejgmod-_cncljfkrrwidth-1616.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover/media/aiddtixz/py9oh53qzeh8edhp301dzk4s05noejgmod-_cncljfkrrwidth-1616.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover/media/aiddtixz/py9oh53qzeh8edhp301dzk4s05noejgmod-_cncljfkrrwidth-1616.png 500w" sizes="250px" width="250" height="250" alt="Use Raw String Literals to generate TwiML in C# 11" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## Use Raw String Literals to generate TwiML in C# 11

2/15/2023 - .NET

Learn how Twilio uses webhooks and TwiML to give you control over how to respond to a call or text message. You can generate TwiML in many ways, and with C# 11 you can now also use Raw String Literals.



](/blog/dotnet/use-raw-string-literals-to-generate-twiml-in-csharp-11)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover/media/lyung0ju/use_visual_studio_port_tunneling.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover/media/lyung0ju/use_visual_studio_port_tunneling.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover/media/lyung0ju/use_visual_studio_port_tunneling.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover/media/lyung0ju/use_visual_studio_port_tunneling.png 500w" sizes="250px" width="250" height="250" alt="Use Visual Studio dev tunnels to handle Twilio Webhooks" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## Use Visual Studio dev tunnels to handle Twilio Webhooks

2/8/2023 - .NET

Learn how to develop webhooks on your local machine using Visual Studio dev tunnels and ASP.NET Core.



](/blog/dotnet/use-visual-studio-dev-tunnels-to-handle-twilio-webhooks)[

<picture><img class="blog-post-card__image" src="/media/j0idt3az/vb-net_logo.svg" width="250" height="250" alt="Visual Basic logo" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## How to create an ASP.NET Core Minimal API with Visual Basic .NET (there's no template)

8/25/2022 - .NET

Visual Basic .NET (VB) is not dead, but it's not getting the same amount of love as C# or even F#. Luckily, all that is .NET can be used by all .NET languages including VB, so you can still use ASP.NET Core and Minimal APIs with the VB language.



](/blog/dotnet/create-an-aspdotnet-core-minimal-api-with-vbdotnet)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.25765433625642226/media/fbubucw4/ios-screenshot_iphone13red_portrait.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.25765433625642226/media/fbubucw4/ios-screenshot_iphone13red_portrait.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.5x0.25765433625642226/media/fbubucw4/ios-screenshot_iphone13red_portrait.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.5x0.25765433625642226/media/fbubucw4/ios-screenshot_iphone13red_portrait.png 500w" sizes="250px" width="250" height="250" alt="Conversation between an iPhone user and the SMS bot. The user says &quot;Hi&quot; and the bot responds with &quot;Welcome to the U.S. Representative lookup bot. Respond with your address. The user sends an address and the bot responds with &quot;Your representative is Gerald E. Connolly (Democratic Party) representing Virginia&quot;s 11th congressional district. Then the bot sends an image of the representative." decoding="async" loading="lazy" style="background-color:#0f1038"></picture>

## Find your US Representatives and Congressional Districts with SMS and ASP.NET Core

8/2/2022 - .NET

Learn how to create an SMS bot that looks up U.S. Congressional Districts and Representatives using the Google Civic Information API, C#, ASP.NET Core Minimal API, and Twilio SMS.



](/blog/dotnet/find-your-us-representatives-and-congressional-districts-with-sms-and-aspdotnet-core)

[Read more posts](/blog)
