How to get the full public URL of ASP.NET Core
Learn how to get the public full URL of your ASP.NET Core application
How to generate absolute URLs in ASP.NET Core
Learn how to generate full absolute URLs in C# and ASP.NET Core web applications.
How to prevent email HTML injection in C# and .NET
Learn how bad actors can inject HTML into your emails in your C# .NET applications and how to mitigate it.
How to send ASP.NET Core Identity emails with Twilio SendGrid
Learn how to use SendGrid to send account verification and password recovery emails in ASP.NET Core
Integrate ngrok into ASP.NET Core startup and automatically update your webhook URLs
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
Integrate IndexNow with Umbraco CMS to submit content to search engines
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.
How to get ASP.NET Core's local server URLs
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.
How to run Umbraco 9 as a Linux Docker container
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.
Deploying Umbraco 9 to Azure App Service for Linux
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.
Handle No-Answer Scenarios with Voicemail and Callback
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
Thoughts and tips on moving to Umbraco 9 from Umbraco 8
.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.
Get Your Head Together With Blazor’s New HeadContent and PageTitle
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.
Guest on .NET Docs Show: Making Phone Calls 📞 from Blazor WebAssembly with Twilio Voice
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.
How to bypass Captchas in Selenium UI tests
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.
Capture emails during development using smtp4dev and UI Test with Selenium
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.
Create ZIP files on HTTP request without intermediate files using ASP.NET MVC Framework
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.
How to deploy Blazor WebAssembly to DigitalOcean App Platform
Blazor WebAssembly can be served as static files. These files can be hosted in static hosting services such as DigitalOcean App Platform.
Don't use HttpContext.Current, especially when using async
Avoid using HttpContext.Current if possible, especially in asynchronous code. Use the properties provided on the Page or Controller instead and pass them on to the asynchronous code.
Create ZIP files on HTTP request without intermediate files using ASP.NET MVC, Razor Pages, and endpoints
The ZipArchive wraps any stream to read, create, and update ZIP archives. You can send the result to the client using ASP.NET MVC, Razor Pages, and endpoints.
How to deploy Blazor WebAssembly to Cloudflare Pages
Blazor WebAssembly can be served as static files. These files can be hosted in static hosting services such as Cloudflare Pages.