Thomas Ardal

Thomas Ardal

Meet Thomas, the founder and developer behind elmah.io. Thomas blogs about everything technical from C# and ASP.NET Core to machine learning.

Denmark
297 posts
Build and publish Visual Studio extensions with GitHub Actions

A friend of mine asked me how we build and publish our Visual Studio extension. His initial thought was that the process is manual and since the code is in a private repository, here's a quick walkthrough of building and publishing Visual Studio extensions with GitHub Actions. Before I start ...

Polling asynchronous APIs with Azure Durable Functions

I have been building a feature on elmah.io lately that picks up validation results from an external API. Before serverless was a thing, I would probably have done this using a scheduled task or Windows Service using Hangfire or similar. But after having migrated everything to serverless Azure Functions, ...

Best Chrome extensions for web developers

Chrome revolutionized the way to extend browsers with new features. Back in the day, extensions were annoying toolbars (remember the Ask toolbar?) and related spam-like additions. Today, I couldn't live without extensions. Here's a list of our favorite extensions used while developing elmah.io. Let's jump right into the extensions. ...

How to generate header images for blogs and ASP.NET Core

I have been playing with automatically creating header images for some of our sites (like this blog) lately. While looking through different services, I fell in love with Bannerbear. In this post, I'll show you how to automatically create header images for your blog posts and/or website pages using ...

Built-in rate limiting in ASP.NET Core vs AspNetCoreRateLimit

Since I learned that ASP.NET Core 7 and newer come with built-in rate limiting I have wanted to try it out. I finally had some time to check it out and here's what I've found so far. This introduces rate limiting in ASP.NET Core using both the built-in ...

How to download files from ASP.NET Core MVC

I have been implementing a couple of features lately that allow users to download files. During this process, I have visited various namespaces and possibilities with ASP.NET Core. In an attempt not to forget what I have learned and in the hope that this knowledge can be used by ...

How to get base URL in ASP.NET Core

You typically don't and shouldn't need to know where a web app is deployed. At least not from within the code of the web app itself. I keep seeing questions related to this, though. There are a range of reasons why this can still be relevant like if you want ...

Three NuGet packages to improve exceptions in .NET/C#

We love exceptions. Not in the oh-no-my-website-crashed kind of way, but all of the possibilities provided by exceptions and a good exception handling strategy. In this post, I'll introduce you to three different NuGet packages that will help you when dealing with exceptions in C#. .NET comes with a set ...

elmah.io launches two GitHub Actions in the GitHub Marketplace

While developing the ecosystem around the elmah.io API and App Store, we see an increasing interest and adoption of GitHub and the services around it. We have a range of integrations with GitHub that I’ll introduce you to later in this document. But first of all, I’m ...