---
title: "Swimburger - Blog - .NET - Page 2"
description: "Swimburger.net is a blog about .NET, cloud, web development, and whatever comes across Swimburger's plate. Swimburger.net is run by Niels Swimberghe."
canonical: "https://swimburger.net/blog/dotnet/page/2"
---

[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/cneohwf1/thumbnail.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/cneohwf1/thumbnail.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.5x0.5/media/cneohwf1/thumbnail.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.5x0.5/media/cneohwf1/thumbnail.png 500w" sizes="250px" width="250" height="250" alt="Twilio SendGrid logo and Azure Functions logo" decoding="async" loading="lazy" style="background-color:#f5f5f5"></picture>

## Send Emails using C# .NET with Azure Functions and SendGrid Bindings

3/2/2022 - .NET

Learn how to send emails from Azure Functions using C# .NET and the SendGrid Bindings



](/blog/dotnet/send-emails-using-csharp-dotnet-with-azure-functions-and-sendgrid-bindings)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/tfxb3k4r/ngrok-square.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/tfxb3k4r/ngrok-square.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.5x0.5/media/tfxb3k4r/ngrok-square.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.5x0.5/media/tfxb3k4r/ngrok-square.png 500w" sizes="250px" width="250" height="250" alt="ngrok logo" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## Integrate ngrok into ASP.NET Core startup and automatically update your webhook URLs

2/15/2022 - .NET

Learn to integrate ngrok into ASP.NET Core's startup process to create secure public tunnels and automatically handle Twilio's webhooks with a single command



](/blog/dotnet/integrate-ngrok-into-aspdotnet-core-startup-and-automatically-update-your-webhook-urls)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/dftnx1t5/umbraco_logo_blue05.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/dftnx1t5/umbraco_logo_blue05.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.5x0.5/media/dftnx1t5/umbraco_logo_blue05.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.5x0.5/media/dftnx1t5/umbraco_logo_blue05.png 500w" sizes="250px" width="250" height="250" alt="Umbraco logo" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## Integrate IndexNow with Umbraco CMS to submit content to search engines

2/7/2022 - Umbraco

Umbraco is very extensible for ASP.NET developers. Learn how to integrate IndexNow into the Umbraco backoffice, so you can easily submit Umbraco content URLs to search engines that they will (re)crawl.



](/blog/umbraco/integrate-indexnow-with-umbraco-cms-to-submit-content-to-search-engines)[

<picture><img class="blog-post-card__image" src="/media/vgye2zpp/twilio-mark-red-e1886ea5f.svg" width="250" height="250" alt="Twilio logo" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## Send Scheduled SMS with C# .NET and Twilio Programmable Messaging

2/4/2022 - .NET

Learn how to schedule SMS with C# .NET and Twilio Messaging's latest feature: Scheduled Messaging!



](/blog/dotnet/send-scheduled-sms-with-csharp-dotnet-and-twilio-programmable-messaging)[

<picture><img class="blog-post-card__image" src="/media/dikleklg/dotnet-bot_builder.svg" width="250" height="250" alt=".NET Bot" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## How to get ASP.NET Core's local server URLs

1/25/2022 - .NET

Learn how to access the ASP.NET Core's local server URLs in Program.cs, in controllers using Dependency Injection, and in IHostedService or BackgroundService.



](/blog/dotnet/how-to-get-aspdotnet-core-server-urls)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/rmdaof2v/thumbnail.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/rmdaof2v/thumbnail.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.5x0.5/media/rmdaof2v/thumbnail.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.5x0.5/media/rmdaof2v/thumbnail.png 500w" sizes="250px" width="250" height="250" alt="Twilio Logo and Azure Functions logo" decoding="async" loading="lazy" style="background-color:#f3f3f5"></picture>

## How to send SMS with C# .NET and Azure Functions using Twilio Output Binding

1/24/2022 - Azure

Twilio posts cloud communications trends, customer stories, and tips for building scalable voice and SMS applications with Twilio's APIs.



](/blog/azure/how-to-send-sms-with-csharp-dotnet-and-azure-functions-using-twilio-output-binding)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/g3cl40tv/sendgrid-logomark.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/g3cl40tv/sendgrid-logomark.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.5x0.5/media/g3cl40tv/sendgrid-logomark.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.5x0.5/media/g3cl40tv/sendgrid-logomark.png 500w" sizes="250px" width="250" height="250" alt="Twilio SendGrid logo" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## How to send recurring emails in C# .NET using SendGrid and Quartz.NET

1/19/2022 - .NET

Learn how to send recurring emails with C# .NET using Quartz.NET and SendGrid's APIs



](/blog/dotnet/how-to-send-recurring-emails-in-csharp-dotnet-using-sendgrid-and-quartzdotnet)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/3hfbcxrc/sendgrid-logomark.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/3hfbcxrc/sendgrid-logomark.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.5x0.5/media/3hfbcxrc/sendgrid-logomark.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.5x0.5/media/3hfbcxrc/sendgrid-logomark.png 500w" sizes="250px" width="250" height="250" alt="Twilio SendGrid logo" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## Send Emails using the SendGrid API with .NET 6 and C#

12/13/2021 - .NET

Learn how to send emails using the SendGrid API with a .NET 6 console application and C#



](/blog/dotnet/send-emails-using-the-sendgrid-api-with-dotnet-6-and-csharp)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.7073276830679059x0.48640382701131335/media/hkljgafp/copy-of-d01-blog-image-round.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.7073276830679059x0.48640382701131335/media/hkljgafp/copy-of-d01-blog-image-round.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.7073276830679059x0.48640382701131335/media/hkljgafp/copy-of-d01-blog-image-round.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.7073276830679059x0.48640382701131335/media/hkljgafp/copy-of-d01-blog-image-round.png 500w" sizes="250px" width="250" height="250" alt="Image of Niels'" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## Introducing .NET Developer Niels Swimberghe

12/8/2021 - .NET

Meet Niels Swimberghe, the newest member of the Developer Voices team at Twilio. Niels is a .NET developer and will be producing technical content for the .NET community.



](/blog/dotnet/introducing-dotnet-developer-niels-swimberghe)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/ql4ck34n/umbraco-9-as-a-linux-docker-container-square.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/ql4ck34n/umbraco-9-as-a-linux-docker-container-square.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.5x0.5/media/ql4ck34n/umbraco-9-as-a-linux-docker-container-square.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.5x0.5/media/ql4ck34n/umbraco-9-as-a-linux-docker-container-square.png 500w" sizes="250px" width="250" height="250" alt="Umbraco logo and Docker logo" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## How to run Umbraco 9 as a Linux Docker container

11/25/2021 - Umbraco

Umbraco 9 has been built on top of .NET 5. As a result, you can now containerize your Umbraco 9 websites in Linux containers. Learn how to containerize Umbraco 9 with Docker.



](/blog/umbraco/how-to-run-umbraco-9-as-a-linux-docker-container)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/gjtmjbmp/umbraco-9-to-azure-app-service-for-linux-square.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/gjtmjbmp/umbraco-9-to-azure-app-service-for-linux-square.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.5x0.5/media/gjtmjbmp/umbraco-9-to-azure-app-service-for-linux-square.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.5x0.5/media/gjtmjbmp/umbraco-9-to-azure-app-service-for-linux-square.png 500w" sizes="250px" width="250" height="250" alt="Umbraco, Azure, and Linux logo" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## Deploying Umbraco 9 to Azure App Service for Linux

11/7/2021 - Umbraco

Learn how to create the Azure infrastructure using the Azure CLI to host an Umbraco 9 website using Azure SQL and Azure App Service for Linux, and how to deploy your Umbraco 9 site.



](/blog/umbraco/deploying-umbraco-9-to-azure-app-service-for-linux)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/52satp20/twilio-mark-red-8e37be43e.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/52satp20/twilio-mark-red-8e37be43e.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.5x0.5/media/52satp20/twilio-mark-red-8e37be43e.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.5x0.5/media/52satp20/twilio-mark-red-8e37be43e.png 500w" sizes="250px" width="250" height="250" alt="Twilio logo" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## Handle No-Answer Scenarios with Voicemail and Callback

10/28/2021 - .NET

With Twilio Programmable Voice you can ask customers to leave a message and their phone number if there's nobody available to take the call so you can give them a callback later



](/blog/dotnet/handle-no-answer-scenarios-with-voicemail-and-callback)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/31pdfsmi/moving-to-umbraco-9-square.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/31pdfsmi/moving-to-umbraco-9-square.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.5x0.5/media/31pdfsmi/moving-to-umbraco-9-square.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.5x0.5/media/31pdfsmi/moving-to-umbraco-9-square.png 500w" sizes="250px" width="250" height="250" alt=".NET Bot on a scooter riding from Umbraco 8 to 9" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## Thoughts and tips on moving to Umbraco 9 from Umbraco 8

10/24/2021 - Umbraco

.NET Core was a groundbreaking change to the .NET platform. It is blazing fast, open-source, and cross-platform across Windows, Linux, and macOS. With Umbraco 9, we finally get to enjoy all the new innovations from .NET Core. Read about my experience upgrading an Umbraco 8 website to Umbraco 9.



](/blog/umbraco/thoughts-and-tips-on-moving-to-umbraco-9-from-umbraco-8)[

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

## Get Your Head Together With Blazor’s New HeadContent and PageTitle

10/14/2021 - .NET

Let’s take a look at the three Blazor components .NET 6 is introducing to help you manage the head of your document—PageTitle, HeadContent, and HeadOutlet.



](/blog/dotnet/get-your-head-together-with-blazors-new-headcontent-and-pagetitle)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/etqdhqzv/dotnet-bot_presenting.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/etqdhqzv/dotnet-bot_presenting.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/etqdhqzv/dotnet-bot_presenting.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/etqdhqzv/dotnet-bot_presenting.png 500w" sizes="250px" width="250" height="250" alt=".NET bot writing on whitebpard" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## Generic Linear Search/Sequential Search for a sequence in C# .NET

8/6/2021 - .NET

To practice algorithms and data structures, I reimplemented Linear Search/Sequential Search for a sequence using C#'s generic type parameters.



](/blog/dotnet/generic-linear-search-sequential-search-for-a-sequence-in-csharp-dotnet)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/uwkijblh/dotnet-bot_presenting.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/uwkijblh/dotnet-bot_presenting.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/uwkijblh/dotnet-bot_presenting.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/uwkijblh/dotnet-bot_presenting.png 500w" sizes="250px" width="250" height="250" alt=".NET bot writing on whitebpard" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## Generic Boyer–Moore–Horspool algorithm in C# .NET

8/6/2021 - .NET

To practice algorithms and data structures, I reimplemented Boyer–Moore–Horspool algorithm for a sequence using C#'s generic type parameters.



](/blog/dotnet/generic-boyer-moore-horspool-algorithm-in-csharp-dotnet)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/dq2fnspy/dotnet-bot_presenting.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/dq2fnspy/dotnet-bot_presenting.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/dq2fnspy/dotnet-bot_presenting.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/dq2fnspy/dotnet-bot_presenting.png 500w" sizes="250px" width="250" height="250" alt=".NET bot writing on whitebpard" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## Generic Binary Search in C# .NET

8/5/2021 - .NET

To practice algorithms and data structures, I reimplemented binary search using C#'s generic type parameters.



](/blog/dotnet/generic-binary-search-in-csharp-dotnet)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/yuojqreb/dotnet-bot_presenting.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/yuojqreb/dotnet-bot_presenting.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/yuojqreb/dotnet-bot_presenting.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/yuojqreb/dotnet-bot_presenting.png 500w" sizes="250px" width="250" height="250" alt=".NET bot writing on whitebpard" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## Generic Insertion Sort in C# .NET

8/4/2021 - .NET

To practice algorithms and data structures, I reimplemented insertion sort using C#'s generic type parameters.



](/blog/dotnet/generic-insertion-sort-in-csharp-dotnet)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/hz3pd4p2/dotnet-bot_presenting.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/hz3pd4p2/dotnet-bot_presenting.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/hz3pd4p2/dotnet-bot_presenting.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/hz3pd4p2/dotnet-bot_presenting.png 500w" sizes="250px" width="250" height="250" alt=".NET bot writing on whitebpard" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## Generic Quick Sort in C# .NET

8/4/2021 - .NET

To practice algorithms and data structures, I reimplemented Quick Sort using C#'s generic type parameters.



](/blog/dotnet/generic-quick-sort-in-csharp-dotnet)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/xphezdes/dotnet-bot_presenting.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/xphezdes/dotnet-bot_presenting.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/xphezdes/dotnet-bot_presenting.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.4981684981684982x0.4981684981684982/media/xphezdes/dotnet-bot_presenting.png 500w" sizes="250px" width="250" height="250" alt=".NET bot writing on whitebpard" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## Generic Merge Sort in C# .NET

8/3/2021 - .NET

To practice algorithms and data structures, I reimplemented merge sort using C#'s generic type parameters.



](/blog/dotnet/generic-merge-sort-in-csharp-dotnet)

[Previous Page](/blog/dotnet#main-content)[Show All Posts](/blog/dotnet/all#main-content)[Next Page](/blog/dotnet/page/3#main-content)

[Prev](/blog/dotnet#main-content)[Next](/blog/dotnet/page/3#main-content)
