---
title: "Swimburger - Blog - Page 3"
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/3"
---

[

<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/zmodsodz/social-default-image.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/zmodsodz/social-default-image.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.5x0.5/media/zmodsodz/social-default-image.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.5x0.5/media/zmodsodz/social-default-image.png 500w" sizes="250px" width="250" height="250" alt="Power Apps Logo" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## Collaborating on Power Apps Using Personal Environments, Power Platform CLI, Git, and Azure DevOps

10/5/2021 - Dynamics

It can be hard to collaborate on Power Apps with other developers. Sometimes you can overwrite each other's work or break things; however, each developer can safely make their changes by using personal environments instead of a shared development environment. They can then merge their work together into the shared environment. A developer can track changes to solutions using git and move solutions between environments using the Power Platform CLI and SolutionPackager tool.



](/blog/dynamics/collaborating-on-power-apps-using-personal-environments-power-platform-cli-git-and-azure-devops)[

<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/ayegg5ro/social-default-image.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/ayegg5ro/social-default-image.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.5x0.5/media/ayegg5ro/social-default-image.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.5x0.5/media/ayegg5ro/social-default-image.png 500w" sizes="250px" width="250" height="250" alt="Power Apps Logo" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## Delaying JavaScript Execution Until HTML Elements are Present in Power Apps and Dynamics CRM

10/4/2021 - Dynamics

Learn how to customize forms using JavaScript in Model-Driven Power Apps forms and Dynamics CRM forms.



](/blog/dynamics/delaying-javascript-execution-until-html-elements-are-present-in-power-apps-and-dynamics-crm)[

<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/h5xlm5oh/social-share-post-ignite.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/h5xlm5oh/social-share-post-ignite.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.5x0.5/media/h5xlm5oh/social-share-post-ignite.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.5x0.5/media/h5xlm5oh/social-share-post-ignite.png 500w" sizes="250px" width="250" height="250" alt="Power Apps logo" decoding="async" loading="lazy" style="background-color:#474fe2"></picture>

## How to Create Dataverse Activities using Power Automate

9/22/2021 - Dynamics

In this Power Platform tutorial, you will set up an HTTP webhook using the "When an HTTP request is received" action. With the HTTP request JSON, you will calculate the duration between two timestamps and fetch a contact and user by finding matching phone numbers. Then, you will create a phone call and update the status of the phone call.



](/blog/dynamics/how-to-create-dataverse-activities-using-power-automate)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.4994245760319632x0.4994245760319632/media/oplhpf0z/power-apps-solutions-azure-pipelines-square.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.4994245760319632x0.4994245760319632/media/oplhpf0z/power-apps-solutions-azure-pipelines-square.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.4994245760319632x0.4994245760319632/media/oplhpf0z/power-apps-solutions-azure-pipelines-square.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.4994245760319632x0.4994245760319632/media/oplhpf0z/power-apps-solutions-azure-pipelines-square.png 500w" sizes="250px" width="250" height="250" alt="Azure Pipelines and Power Apps logo" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## How to deploy Power Apps Portals using Azure Pipelines

9/5/2021 - Dynamics

Learn how to automatically deploy Power Apps portals using the Microsoft Power Platform CLI and Azure DevOps.



](/blog/dynamics/how-to-deploy-power-apps-portals-using-azure-pipelines)[

<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/qx1nilik/power-apps-solutions-azure-pipelines-square.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/qx1nilik/power-apps-solutions-azure-pipelines-square.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.5x0.5/media/qx1nilik/power-apps-solutions-azure-pipelines-square.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.5x0.5/media/qx1nilik/power-apps-solutions-azure-pipelines-square.png 500w" sizes="250px" width="250" height="250" alt="Azure Pipelines and Power Apps logo" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## How to deploy Power Apps Solutions using Azure Pipelines

8/29/2021 - Dynamics

Learn how to automatically deploy Power Apps solutions using the Power Platform Build Tools and Azure DevOps.



](/blog/dynamics/how-to-deploy-power-apps-solutions-using-azure-pipelines)[

<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)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover/media/415kogkd/dotnet-bot_presenting.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover/media/415kogkd/dotnet-bot_presenting.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover/media/415kogkd/dotnet-bot_presenting.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover/media/415kogkd/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 Bubble Sort in C# .NET

8/1/2021 - .NET

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



](/blog/dotnet/generic-bubble-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.5x0.5/media/31mbsxts/twilio-phone-number-square.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/31mbsxts/twilio-phone-number-square.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.5x0.5/media/31mbsxts/twilio-phone-number-square.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.5x0.5/media/31mbsxts/twilio-phone-number-square.png 500w" sizes="250px" width="250" height="250" alt="Incognito person using a rotary phone with the Twilio logo" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## Proxy your phone number with Twilio Programmable Voice and Twilio Functions

7/20/2021 - Twilio

You'll learn how to turn a Twilio phone number into a proxy phone number using Twilio Functions as webhooks for your Twilio phone number.



](/blog/twilio/proxy-your-phone-number-with-twilio-programmable-voice-and-twilio-functions)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover/media/2crmmamu/discord-bot-using-the-dotnet-square.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover/media/2crmmamu/discord-bot-using-the-dotnet-square.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover/media/2crmmamu/discord-bot-using-the-dotnet-square.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover/media/2crmmamu/discord-bot-using-the-dotnet-square.png 500w" sizes="250px" width="250" height="250" alt=".NET Bot, Azure, and Discord are together in a Discord server" decoding="async" loading="lazy" style="background-color:#32353b"></picture>

## How to create a Discord Bot using the .NET worker template and host it on Azure Container Instances

7/11/2021 - Azure

Learn how to develop a Discord bot using the .NET worker template, containerize it using Docker, push the container image to Azure Container Registry, and host it on Azure Container Instances.



](/blog/azure/how-to-create-a-discord-bot-using-the-dotnet-worker-template-and-host-it-on-azure-container-instances)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.6080352198975559x0.5/media/aqwjy45w/e3s921dwuaeaft.jpg" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.6080352198975559x0.5/media/aqwjy45w/e3s921dwuaeaft.jpg 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.6080352198975559x0.5/media/aqwjy45w/e3s921dwuaeaft.jpg 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.6080352198975559x0.5/media/aqwjy45w/e3s921dwuaeaft.jpg 500w" sizes="250px" width="250" height="250" alt="Picture of Niels—white male with long blond hair— with a shocked expression" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## Guest on .NET Docs Show: Making Phone Calls 📞 from Blazor WebAssembly with Twilio Voice

6/11/2021 - .NET

Earlier this week, the folks at the .NET Docs Show invited me over to talk about Twilio, .NET, and Blazor WebAssembly. We discussed different architectures, workflow diagrams, Twilio capabilities, and how to integrate them using ASP.NET WebAPI's and Blazor WebAssembly.



](/blog/dotnet/guest-on-dotnet-docs-show-making-phone-calls-from-blazor-webassembly-with-twilio-voice)[

<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/eyzjad3q/azure.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/eyzjad3q/azure.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.5x0.5/media/eyzjad3q/azure.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.5x0.5/media/eyzjad3q/azure.png 500w" sizes="250px" width="250" height="250" alt="Azure logo" decoding="async" loading="lazy" style="background-color:#090e17"></picture>

## Download the new Azure logo as SVG, PNG, or JPEG here (high-res/transparent/white background)

6/2/2021 - Azure

Here's the new logo as SVG (scalable), PNG (transparent background), and JPEG at the high resolution of 3000x3000 pixels. (I copied to SVG code from the Azure Portal, modified, and exported it to PNG/JPEG)



](/blog/azure/azure-has-a-new-logo-but-where-do-you-download-it-here)[

<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/p5zpm4uh/recaptcha-s-selenium-ui-tests-square.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/p5zpm4uh/recaptcha-s-selenium-ui-tests-square.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.5x0.5/media/p5zpm4uh/recaptcha-s-selenium-ui-tests-square.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.5x0.5/media/p5zpm4uh/recaptcha-s-selenium-ui-tests-square.png 500w" sizes="250px" width="250" height="250" alt=".NET Bot surfing a wave" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## How to bypass Captchas in Selenium UI tests

5/19/2021 - .NET

Captchas are often used as a way to combat spam on website forms. Unfortunately, this also makes it harder to verify the functionality of the forms using UI tests like Selenium. To work around this you can extend your website with a bypass form.



](/blog/dotnet/how-to-bypass-recaptchas-in-selenium-ui-tests)[

<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/alanyim4/smtp4dev-selenium-email-capture-square.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/alanyim4/smtp4dev-selenium-email-capture-square.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.5x0.5/media/alanyim4/smtp4dev-selenium-email-capture-square.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.5x0.5/media/alanyim4/smtp4dev-selenium-email-capture-square.png 500w" sizes="250px" width="250" height="250" alt=".NET Bot holding a letter" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## Capture emails during development using smtp4dev and UI Test with Selenium

4/21/2021 - .NET

You can use smtp4dev during development to prevent emails from going out to real customers. This tool also supports IMAP which you can use to query emails for automated testing.



](/blog/dotnet/capture-emails-during-development-using-smtp4dev-and-ui-test-with-selenium)[

<picture><img class="blog-post-card__image" src="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5002501250625312/media/5j2pvfql/aspdotnet-zip-square.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5002501250625312/media/5j2pvfql/aspdotnet-zip-square.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.5x0.5002501250625312/media/5j2pvfql/aspdotnet-zip-square.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.5x0.5002501250625312/media/5j2pvfql/aspdotnet-zip-square.png 500w" sizes="250px" width="250" height="250" alt=".NET Bot holding a package with &quot;ZIP&quot; on it. " decoding="async" loading="lazy" style="background-color:#fff"></picture>

## Create ZIP files on HTTP request without intermediate files using ASP.NET MVC Framework

4/5/2021 - .NET

The ZipArchive wraps any stream to read, create, and update ZIP archives. You can send the result to the client using ASP.NET MVC Framework.



](/blog/dotnet/create-zip-files-on-http-request-without-intermediate-files-using-aspdotnet-mvc-framework)[

<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/lrdndfux/blazor-digitalocean-app-square.png" srcset="/cdn-cgi/image/width=250,format=auto,quality=90,height=250,fit=cover,gravity=0.5x0.5/media/lrdndfux/blazor-digitalocean-app-square.png 250w, /cdn-cgi/image/width=375,format=auto,quality=90,height=375,fit=cover,gravity=0.5x0.5/media/lrdndfux/blazor-digitalocean-app-square.png 375w, /cdn-cgi/image/width=500,format=auto,quality=90,height=500,fit=cover,gravity=0.5x0.5/media/lrdndfux/blazor-digitalocean-app-square.png 500w" sizes="250px" width="250" height="250" alt="Blazor logo pointing to the GitHub logo pointing to the DigitalOcean logo" decoding="async" loading="lazy" style="background-color:#fff"></picture>

## How to deploy Blazor WebAssembly to DigitalOcean App Platform

3/30/2021 - .NET

Blazor WebAssembly can be served as static files. These files can be hosted in static hosting services such as DigitalOcean App Platform.



](/blog/dotnet/how-to-deploy-blazor-webassembly-to-digitalocean-app-platform)

[Previous Page](/blog/2#main-content)[Show All Posts](/blog/all#main-content)[Next Page](/blog/4#main-content)

[Prev](/blog/2#main-content)[Next](/blog/4#main-content)
