<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Simon Holman | .NET and Azure Developer</title><description>Articles about .NET, Azure, cloud development, and more. Tips, tutorials, and best practices.</description><link>https://simonholman.dev/</link><language>en-au</language><item><title>How to Change Email Server Settings for POP3 and IMAP on All Major Email Clients</title><link>https://simonholman.dev/blog/change-email-server-settings-pop3-imap/</link><guid isPermaLink="true">https://simonholman.dev/blog/change-email-server-settings-pop3-imap/</guid><description>A step-by-step guide to finding and changing incoming and outgoing email server settings on Outlook, Mac Mail, iPhone and Android devices.</description><pubDate>Thu, 22 Jan 2026 00:00:00 GMT</pubDate><category>Development</category><category>email</category><category>outlook</category><category>imap</category><category>pop3</category><category>smtp</category></item><item><title>Shipping More Code Than Ever With AI-Assisted Development</title><link>https://simonholman.dev/blog/shipping-more-code-than-ever-with-ai-assisted-development/</link><guid isPermaLink="true">https://simonholman.dev/blog/shipping-more-code-than-ever-with-ai-assisted-development/</guid><description>I built two applications over the Christmas break without writing a single line of code. Here&apos;s how I did it with Claude Opus 4.5 in VS Code.</description><pubDate>Tue, 06 Jan 2026 00:00:00 GMT</pubDate><category>Development</category><category>AI</category><category>Productivity</category><category>VS Code</category><category>Blazor</category><category>Electron</category><category>Astro</category><category>MVC</category></item><item><title>Add DataAnnotations metadata to EF Core in a partial class</title><link>https://simonholman.dev/blog/add-dataannotations-metadata-to-ef-core-in-a-partial-class/</link><guid isPermaLink="true">https://simonholman.dev/blog/add-dataannotations-metadata-to-ef-core-in-a-partial-class/</guid><description>If you&apos;re old like me, and can remember back to the old days of LINQ to SQL and early Entity Framework with .NET Framework, then you&apos;ll likely remember using</description><pubDate>Fri, 15 Nov 2024 00:00:00 GMT</pubDate><category>Database</category></item><item><title>Office 365 DKIM Setup</title><link>https://simonholman.dev/blog/office-365-dkim-setup/</link><guid isPermaLink="true">https://simonholman.dev/blog/office-365-dkim-setup/</guid><description>DKIM (DomainKeys Identified Mail) is like a digital signature for emails that proves an email really came from who it claims to be from.</description><pubDate>Fri, 15 Nov 2024 00:00:00 GMT</pubDate><category>DNS</category></item><item><title>Debug Azure Functions webhook callbacks with Dev Tunnels</title><link>https://simonholman.dev/blog/debug-azure-functions-webhook-callbacks-with-dev-tunnels/</link><guid isPermaLink="true">https://simonholman.dev/blog/debug-azure-functions-webhook-callbacks-with-dev-tunnels/</guid><description>Using Dev Tunnels to test your Azure Functions webhook callbacks is a breeze.</description><pubDate>Fri, 15 Nov 2024 00:00:00 GMT</pubDate><category>Azure Functions</category></item><item><title>Sending email from Azure Functions with SendGrid</title><link>https://simonholman.dev/blog/sending-email-from-azure-functions-with-sendgrid/</link><guid isPermaLink="true">https://simonholman.dev/blog/sending-email-from-azure-functions-with-sendgrid/</guid><description>Azure Functions is the perfect tool for sending emails from websites and apps. It&apos;s lightweight, fast, and scalable. Add SendGrid to it and you have a match</description><pubDate>Wed, 15 May 2024 00:00:00 GMT</pubDate><category>Azure Functions</category></item><item><title>Configure Serilog for Logging in Azure Functions</title><link>https://simonholman.dev/blog/configure-serilog-for-logging-in-azure-functions/</link><guid isPermaLink="true">https://simonholman.dev/blog/configure-serilog-for-logging-in-azure-functions/</guid><description>Even though the built-in logging in .NET Core is pretty good these days, Serilog takes it to the next level, making complex logging exceptionally easy.</description><pubDate>Mon, 15 Jan 2024 00:00:00 GMT</pubDate><category>Azure Functions</category></item><item><title>Creating a database on Azure SQL</title><link>https://simonholman.dev/blog/creating-a-database-on-azure-sql/</link><guid isPermaLink="true">https://simonholman.dev/blog/creating-a-database-on-azure-sql/</guid><description>Spinning up a database on a managed SQL server with variable resources per database is heavenly. Creating a database on Azure SQL is very quick and easy to do.</description><pubDate>Mon, 15 Jan 2024 00:00:00 GMT</pubDate><category>Azure</category></item><item><title>Creating a DMARC record for your domain</title><link>https://simonholman.dev/blog/creating-a-dmarc-record-for-your-domain/</link><guid isPermaLink="true">https://simonholman.dev/blog/creating-a-dmarc-record-for-your-domain/</guid><description>Google and Yahoo have both announced a new set of requirements that senders must meet. Creating a DMARC record for your domain is key to proper domain security.</description><pubDate>Mon, 15 Jan 2024 00:00:00 GMT</pubDate><category>DNS</category></item><item><title>No job functions found after Azure functions upgrade</title><link>https://simonholman.dev/blog/no-job-functions-found-after-azure-functions-upgrade/</link><guid isPermaLink="true">https://simonholman.dev/blog/no-job-functions-found-after-azure-functions-upgrade/</guid><description>No job functions found. Try making your job classes and methods public. If you&apos;re using binding extensions make sure you&apos;ve called the registration method for t</description><pubDate>Mon, 15 Jan 2024 00:00:00 GMT</pubDate><category>Azure Functions</category></item><item><title>Practical tips on how I achieved 45% Savings on my Microsoft Azure billing</title><link>https://simonholman.dev/blog/practical-tips-on-how-i-achieved-45-percent-savings-on-my-microsoft-azure-billing/</link><guid isPermaLink="true">https://simonholman.dev/blog/practical-tips-on-how-i-achieved-45-percent-savings-on-my-microsoft-azure-billing/</guid><description>About 18 months ago, I took over a product that was fully run on Azure. The solution costs had ballooned from $2000/month at its inception, to almost</description><pubDate>Mon, 15 Jan 2024 00:00:00 GMT</pubDate><category>Azure</category></item><item><title>Error sending email via SendGrid from Azure Functions</title><link>https://simonholman.dev/blog/error-sending-email-via-sendgrid-from-azure-functions/</link><guid isPermaLink="true">https://simonholman.dev/blog/error-sending-email-via-sendgrid-from-azure-functions/</guid><description>System.Private.CoreLib: Exception while executing function: Functions.SendEmail. Microsoft.Azure.WebJobs.Extensions.SendGrid: A &apos;To&apos; address must be specified f</description><pubDate>Fri, 15 Dec 2023 00:00:00 GMT</pubDate><category>Azure Functions</category></item><item><title>Host your domain with Azure Public DNS zones</title><link>https://simonholman.dev/blog/getting-started-with-azure-public-dns-zones/</link><guid isPermaLink="true">https://simonholman.dev/blog/getting-started-with-azure-public-dns-zones/</guid><description>Learn how to manage DNS for your domains with Azure Public DNS zones. Build on top of Azure&apos;s services for seamless integration.</description><pubDate>Fri, 15 Dec 2023 00:00:00 GMT</pubDate><category>Azure</category></item><item><title>Manage your Microsoft365 domains with Amazon Route 53 hosted zones</title><link>https://simonholman.dev/blog/manage-your-microsoft365-domains-with-amazon-route-53-hosted-zones/</link><guid isPermaLink="true">https://simonholman.dev/blog/manage-your-microsoft365-domains-with-amazon-route-53-hosted-zones/</guid><description>In this post, we&apos;ll take a look at adding a domain to Microsoft365 and configuring your DNS records with an Amazon Route 53 DNS.</description><pubDate>Fri, 15 Dec 2023 00:00:00 GMT</pubDate><category>DNS</category></item><item><title>Manage your Microsoft365 domains with Azure DNS Zone</title><link>https://simonholman.dev/blog/manage-your-microsoft365-domains-with-azure-dns-zone/</link><guid isPermaLink="true">https://simonholman.dev/blog/manage-your-microsoft365-domains-with-azure-dns-zone/</guid><description>In this post, we&apos;ll take a look at adding a domain to Microsoft365 and configuring your DNS records with an Azure DNS Zone.</description><pubDate>Fri, 15 Dec 2023 00:00:00 GMT</pubDate><category>DNS</category></item><item><title>Manage your Microsoft365 domains with Cloudflare DNS</title><link>https://simonholman.dev/blog/manage-your-microsoft365-domains-with-cloudflare-dns/</link><guid isPermaLink="true">https://simonholman.dev/blog/manage-your-microsoft365-domains-with-cloudflare-dns/</guid><description>In this post, we&apos;ll take a look at adding a domain to Microsoft365 and configuring your DNS records with Cloudflare DNS.</description><pubDate>Fri, 15 Dec 2023 00:00:00 GMT</pubDate><category>DNS</category></item><item><title>Resetting a DotNetNuke Host user password</title><link>https://simonholman.dev/blog/resetting-a-dotnetnuke-host-user-password/</link><guid isPermaLink="true">https://simonholman.dev/blog/resetting-a-dotnetnuke-host-user-password/</guid><description>A frequent question asked by customers is how to reset the DotNetNuke Host users password if you can’t remember what it is. If you have access to the database t</description><pubDate>Fri, 15 Dec 2023 00:00:00 GMT</pubDate><category>Technical</category></item><item><title>Should you use caching for speed?</title><link>https://simonholman.dev/blog/should-you-use-caching-for-speed/</link><guid isPermaLink="true">https://simonholman.dev/blog/should-you-use-caching-for-speed/</guid><description>I&apos;ve seen countless videos and articles talking about adding caching to your ASP.NET website or API in order to &quot;speed it up&quot;.</description><pubDate>Fri, 15 Dec 2023 00:00:00 GMT</pubDate><category>Web Development</category></item><item><title>SendGrid Account Setup and Domain Verification with Azure DNS</title><link>https://simonholman.dev/blog/sendgrid-account-setup-and-domain-verification-with-azure-dns/</link><guid isPermaLink="true">https://simonholman.dev/blog/sendgrid-account-setup-and-domain-verification-with-azure-dns/</guid><description>If you&apos;re wanting to send email from your application, then Sendgrid is a fantastic provider that makes it easy (and potentially free) to get up and going.</description><pubDate>Fri, 15 Sep 2023 00:00:00 GMT</pubDate><category>Azure</category></item><item><title>Using Redis Caching in your ASP.NET Core web app</title><link>https://simonholman.dev/blog/using-redis-caching-in-your-asp-net-core-web-app/</link><guid isPermaLink="true">https://simonholman.dev/blog/using-redis-caching-in-your-asp-net-core-web-app/</guid><description>Welcome back! In our previous videos, we covered the installation of Ubuntu on Windows 11 and explored how to install Redis Server on that Ubuntu instance.</description><pubDate>Thu, 15 Jun 2023 00:00:00 GMT</pubDate><category>Web Development</category></item><item><title>Install Redis Server on Ubuntu running on Windows 11</title><link>https://simonholman.dev/blog/install-redis-server-cache-on-ubuntu-running-on-windows-11/</link><guid isPermaLink="true">https://simonholman.dev/blog/install-redis-server-cache-on-ubuntu-running-on-windows-11/</guid><description>In a previous video we looked at how to install Ubuntu Linux using the Windows subsystem for Linux on Windows 11, and now we&apos;re going to look at how to use that</description><pubDate>Fri, 15 Jul 2022 00:00:00 GMT</pubDate><category>Linux</category></item><item><title>Install Ubuntu on Windows 11 using the Windows Subsystem for Linux (WSL)</title><link>https://simonholman.dev/blog/installing-ubuntu-on-windows-11-using-the-windows-subsystem-for-linux-wsl/</link><guid isPermaLink="true">https://simonholman.dev/blog/installing-ubuntu-on-windows-11-using-the-windows-subsystem-for-linux-wsl/</guid><description>Hi folks, welcome back to another video. In this video, we&apos;re going to take a look at installing Ubuntu, a Linux distribution, on Windows 11 using the Windows</description><pubDate>Fri, 15 Jul 2022 00:00:00 GMT</pubDate><category>Windows</category></item><item><title>Ignore Azure Function false positive dependency failures using TelemetryInitializers</title><link>https://simonholman.dev/blog/ignore-azure-function-false-positive-dependency-failures-using-telemetryinitializers/</link><guid isPermaLink="true">https://simonholman.dev/blog/ignore-azure-function-false-positive-dependency-failures-using-telemetryinitializers/</guid><description>Let me start by saying that I love Appication Insights. The level of detail it gives you out of the box to monitor and troubleshoot application issues is</description><pubDate>Mon, 15 Jun 2020 00:00:00 GMT</pubDate><category>Technical</category></item><item><title>Handling new user registration with Auth0 and ASP.NET Core 3</title><link>https://simonholman.dev/blog/handling-new-user-registration-with-auth0-and-asp-net-core-3/</link><guid isPermaLink="true">https://simonholman.dev/blog/handling-new-user-registration-with-auth0-and-asp-net-core-3/</guid><description>When creating a new site that will have users logging into it, you&apos;ll invariably have to choose an identity provider to use. You can use the the inbuilt</description><pubDate>Mon, 15 Jun 2020 00:00:00 GMT</pubDate><category>Technical</category></item><item><title>Errors backing up VM using DPM 2016</title><link>https://simonholman.dev/blog/errors-backing-up-vm-using-dpm-2016/</link><guid isPermaLink="true">https://simonholman.dev/blog/errors-backing-up-vm-using-dpm-2016/</guid><description>Issue:</description><pubDate>Tue, 15 Oct 2019 00:00:00 GMT</pubDate><category>Technical</category></item><item><title>Error 0x800F0954 installing .NET 3.5 on Windows 10</title><link>https://simonholman.dev/blog/error-0x800f0954-installing-net-3-5-on-windows-10/</link><guid isPermaLink="true">https://simonholman.dev/blog/error-0x800f0954-installing-net-3-5-on-windows-10/</guid><description>If you&apos;re experiencing error 0x800F0954 when trying to install .NET 2.0 and 3.5 on Windows 10, and you&apos;re in a domain environment, then a simple temporary</description><pubDate>Sun, 15 Sep 2019 00:00:00 GMT</pubDate><category>Technical</category></item><item><title>Azure Functions not showing all executions under Monitoring</title><link>https://simonholman.dev/blog/azure-functions-not-showing-all-executions-under-monitoring/</link><guid isPermaLink="true">https://simonholman.dev/blog/azure-functions-not-showing-all-executions-under-monitoring/</guid><description>I recently deployed a very simple Azure Functions 2.0 project from Visual Studio 2019 that contained a single timer triggered function. The function had a daily</description><pubDate>Sat, 15 Jun 2019 00:00:00 GMT</pubDate><category>Azure</category></item><item><title>Importing a CSV file into Azure SQL with Azure Functions</title><link>https://simonholman.dev/blog/importing-a-csv-file-into-azure-sql-with-azure-functions/</link><guid isPermaLink="true">https://simonholman.dev/blog/importing-a-csv-file-into-azure-sql-with-azure-functions/</guid><description>Importing CSV files into Azure SQL is quick and easy using Azure Functions.</description><pubDate>Sat, 15 Jun 2019 00:00:00 GMT</pubDate><category>Azure</category></item><item><title>Lower case URLs in ASP.NET Core</title><link>https://simonholman.dev/blog/lower-case-urls-in-asp-net-core/</link><guid isPermaLink="true">https://simonholman.dev/blog/lower-case-urls-in-asp-net-core/</guid><description>Common url casing in your urls, in my opinion, makes your site look nicer as a whole and has significant SEO benefit to help you drive trafiic to your site.</description><pubDate>Mon, 15 Apr 2019 00:00:00 GMT</pubDate><category>Web Development</category></item><item><title>Preview a website before changing DNS without a temporary URL</title><link>https://simonholman.dev/blog/preview-a-website-before-changing-dns-without-a-temporary-url/</link><guid isPermaLink="true">https://simonholman.dev/blog/preview-a-website-before-changing-dns-without-a-temporary-url/</guid><description>Setting up a new website on a new server or with a different hosting provider while the existing website is still live presents some challenges.</description><pubDate>Mon, 15 Apr 2019 00:00:00 GMT</pubDate><category>Technical</category></item><item><title>Implementing ASP.NET Core session with Redis Cache on Azure</title><link>https://simonholman.dev/blog/implementing-asp-net-core-session-with-redis-cache-on-azure/</link><guid isPermaLink="true">https://simonholman.dev/blog/implementing-asp-net-core-session-with-redis-cache-on-azure/</guid><description>Using Redis cache in Windows Azure to save session state for an ASP.NET Core web app is quick and easy to configure.</description><pubDate>Fri, 15 Mar 2019 00:00:00 GMT</pubDate><category>Web Development</category></item><item><title>Visual Studio Code finally has a tree indent setting</title><link>https://simonholman.dev/blog/visual-studio-code-finally-has-a-tree-indent-setting/</link><guid isPermaLink="true">https://simonholman.dev/blog/visual-studio-code-finally-has-a-tree-indent-setting/</guid><description>Microsoft have added an option to Visual Studio Code that allows you to adjust the indentation level in the folder treeview.</description><pubDate>Fri, 15 Feb 2019 00:00:00 GMT</pubDate><category>Technical</category></item></channel></rss>