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
320 posts
What is DevOps - A development process or a set of tools

Cuts through the DevOps buzzword using Ernest Mueller's definition, then walks through the clashing agendas of developers, testers, and operations, and how agile's iteration cycles left ops behind until DevOps closed the loop. ...

Monitoring Azure Functions with the Portal and elmah.io

Shows the gaps in Azure's built-in Function monitoring (empty dashboards, unreliable invocation logs) and how tailing logs via Kudu's Get-AzureWebsiteLog compares to wrapping Function code in a try-catch that reports errors through the Elmah.Io.Client NuGet package. ...

Microsoft Azure Functions problems and troubleshooting

A Q&A rundown of real Azure Functions gotchas: fixing Visual Studio tooling install errors, configuring non-root Function projects, overriding appsettings.json values, running multiple func.exe hosts on different ports, and a timer-trigger workaround for Service Bus triggers that stop consuming. ...

New features and improvements using a new chart control

Covers the switch from D3.js to Chart.js: a redesigned Log Overview timeline grouped by severity with toggleable legends, a two-level error distribution doughnut on Organization Overview, and deployment bubbles overlaid on log graphs. ...

Configure and deploy Azure Functions with Kudu

Walks through creating an Azure Function App, choosing between Consumption and App Service hosting plans, and wiring up continuous deployment through Kudu from GitHub, Bitbucket, or a local git repo so pushes deploy automatically. ...

Migrating a Topshelf consumer to a Function running on Azure

Migrates a Topshelf Windows Service that sends New Error emails via Mandrill and Polly retries off an Azure Service Bus topic into a ServiceBusTopicTrigger Azure Function, walking through the function.json, project.json, and run.csx files the tooling generates. ...

An introduction to Azure Functions and why we migrate

Kicks off a series on why elmah.io is moving Service Bus consumers off Windows Services and Topshelf onto Azure Functions, citing Scott Hanselman's take on serverless and the pain of manually scaling queue consumers on VMs. ...

Storing Content-Security-Policy reports in elmah.io

Shows how to capture Content-Security-Policy violation reports using Elmah.Io.ContentSecurityPolicy.Proxy, an ASP.NET Core proxy on GitHub. Set API_KEY and LOG_ID in appsettings.json, deploy to IIS or Azure, and point CSP-Report-Only's report-uri at it to log violations in elmah.io. ...

Content-Security-Policy in ASP.NET MVC

Explains the Content-Security-Policy header, which blocks XSS and clickjacking by restricting which origins may serve scripts and styles. Covers default-src, script-src, and style-src directives, allowing CDNs like cdnjs.cloudflare.com, and testing with Content-Security-Policy-Report-Only. ...