{"id":59718,"date":"2026-11-11T09:02:09","date_gmt":"2026-11-10T23:02:09","guid":{"rendered":"https:\/\/www.cloudproinc.com.au\/index.php\/2026\/11\/11\/static-web-apps-net-8-and-9-retirement-remediation-checklist\/"},"modified":"2026-11-11T09:03:51","modified_gmt":"2026-11-10T23:03:51","slug":"static-web-apps-net-8-and-9-retirement-remediation-checklist","status":"publish","type":"post","link":"https:\/\/www.cloudproinc.com.au\/index.php\/2026\/11\/11\/static-web-apps-net-8-and-9-retirement-remediation-checklist\/","title":{"rendered":"Static Web Apps .NET 8 and 9 Retirement Remediation Checklist"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">In this blog post Static Web Apps .NET 8 and 9 Retirement Remediation Checklist we will explain what the retirement means, how to identify affected applications and how to move them forward without creating unnecessary business disruption.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">The immediate problem is not that every application will suddenly stop working. The bigger risk is continuing to run business software on an unsupported platform that no longer receives normal security fixes or dependable vendor support. Microsoft lists 10 November 2026 as the end-of-support date for .NET 8 and .NET 9 runtimes used by Azure Static Web Apps.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is Azure Static Web Apps?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Azure Static Web Apps is a Microsoft cloud service for hosting websites and browser-based business applications. It can automatically build and publish an application whenever approved code is added to GitHub or Azure DevOps.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The visible part of the application, such as a customer portal or internal dashboard, is distributed through Azure for fast access. The application can also include an API, which is the background service that retrieves records, processes forms and connects the website to databases or other business systems.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These APIs are commonly powered by Azure Functions, which runs small pieces of code only when they are needed. Microsoft can manage these functions inside Static Web Apps, or the organisation can connect a separate Azure Functions service for greater control.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">.NET may therefore appear in two places. A Blazor WebAssembly front end may target .NET 8 or 9, while the API behind the application may also run on one of those versions. Both must be checked.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why the retirement matters to the business<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">An unsupported application may continue operating for a while, but that does not make it safe. New security weaknesses may remain unpatched, Microsoft support options become limited, and a later deployment or dependency update may introduce failures at the worst possible time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This also creates a compliance problem. The Essential Eight, the Australian Government&#8217;s cybersecurity framework that many organisations use as a security baseline, expects businesses to patch applications promptly. It becomes difficult to demonstrate effective patching when the underlying software platform is no longer supported.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The lesson is similar to the broader issues covered in our guide to planning for Azure retirements before they disrupt operations. Finding dependencies early is usually cheaper than arranging an emergency upgrade after a failed release.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The practical remediation checklist<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. Build a complete application inventory<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Start with the Azure subscriptions, repositories and deployment pipelines connected to Static Web Apps. Do not rely solely on a spreadsheet or the memory of one developer.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>List every Azure Static Web Apps resource across production, test and development subscriptions.<\/li>\n<li>Record the business owner, technical owner, repository and deployment pipeline.<\/li>\n<li>Identify whether the application uses Blazor, a managed API or a separately linked backend.<\/li>\n<li>Record whether it handles personal, financial, customer or operational data.<\/li>\n<li>Confirm whether the application is still used and whether it has a tested recovery plan.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Prioritise applications by business impact rather than technical complexity. A small portal used for customer orders deserves attention before a larger internal demonstration site.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Confirm where .NET 8 or 9 is used<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Search each repository for project files ending in <code>.csproj<\/code>. The <code>TargetFramework<\/code> setting shows the .NET version the project expects.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&amp;lt;PropertyGroup&amp;gt;\n &amp;lt;TargetFramework&amp;gt;net8.0&amp;lt;\/TargetFramework&amp;gt;\n&amp;lt;\/PropertyGroup&amp;gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Next, inspect <code>staticwebapp.config.json<\/code>. A managed .NET API may contain a runtime setting similar to this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n &quot;platform&quot;: {\n &quot;apiRuntime&quot;: &quot;dotnet-isolated:8.0&quot;\n }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Also review the GitHub Actions or Azure DevOps workflow. Confirm which folders are configured as the front end, API and build output locations. This avoids upgrading the obvious project while overlooking another API in the same repository.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Choose the right target architecture<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For most affected applications, the preferred destination is .NET 10, Microsoft&#8217;s current Long-Term Support release. It provides a longer support window than moving between short-lived versions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There is one important complication. .NET 10 APIs in Azure Static Web Apps use the isolated worker model, which runs the application code separately from the Azure Functions host. In plain English, this separation makes it easier for Microsoft to update the hosting service without tightly coupling it to your application.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If an API already uses <code>dotnet-isolated:8.0<\/code> or <code>dotnet-isolated:9.0<\/code>, the move should be more direct. If it uses <code>dotnet:8.0<\/code>, it is running in-process and needs a more deliberate conversion to the isolated model.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Applications with complex background jobs, private networking, managed identities or unusual integrations may be better served by a separately managed Azure Functions app, App Service or Container App. This is a design decision, not just a version-number change.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Upgrade the code in a separate branch<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Create a dedicated upgrade branch rather than experimenting in production. Update the front-end and API project files to target .NET 10, then update the managed API runtime where applicable.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&amp;lt;PropertyGroup&amp;gt;\n &amp;lt;TargetFramework&amp;gt;net10.0&amp;lt;\/TargetFramework&amp;gt;\n &amp;lt;AzureFunctionsVersion&amp;gt;v4&amp;lt;\/AzureFunctionsVersion&amp;gt;\n &amp;lt;OutputType&amp;gt;Exe&amp;lt;\/OutputType&amp;gt;\n&amp;lt;\/PropertyGroup&amp;gt;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n &quot;platform&quot;: {\n &quot;apiRuntime&quot;: &quot;dotnet-isolated:10.0&quot;\n }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">These changes are only the starting point. Update the relevant Microsoft function packages, authentication libraries and other dependencies, then resolve warnings rather than simply forcing the build through.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Teams should also check <code>global.json<\/code>, container images and build agents for references to older .NET software development kits. A project can work on a developer&#8217;s laptop and still fail because the automated deployment pipeline is using an outdated build environment.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5. Test the business journey, not only the build<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A successful build proves that the code compiled. It does not prove that customers can sign in, submit a request or complete a transaction.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Test sign-in, sign-out, permissions and Microsoft Entra ID integration.<\/li>\n<li>Confirm every important API route returns the expected information.<\/li>\n<li>Test file uploads, email notifications and third-party integrations.<\/li>\n<li>Check configuration values and secrets in each environment.<\/li>\n<li>Verify error handling, application logs and security monitoring.<\/li>\n<li>Test on the browsers and devices employees or customers actually use.<\/li>\n<li>Run dependency and vulnerability scans before approving production release.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Azure Static Web Apps can create a preview environment from a pull request. Use it to let business users test the upgraded application before it replaces production.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">6. Plan deployment and rollback<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Schedule the release around business impact, not developer availability. Name the person authorised to make the final decision, communicate the maintenance window and define exactly what will trigger a rollback.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Retain the previous release artefact and configuration long enough to recover safely. After deployment, monitor failed requests, response times, sign-in failures and API errors rather than waiting for users to report problems.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">7. Record the evidence<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Keep evidence of the approved change, test results, dependency scan, production deployment and post-release review. This gives technology leaders a clear record for governance, cyber insurance and Essential Eight assessments.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It also prevents the same problem returning. Add runtime versions and support dates to the technology register, with alerts at least six and twelve months before the next deadline.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A common scenario<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Consider a 180-person professional services company with a Blazor client portal and a managed Azure Functions API. The portal appears simple, but it handles document uploads, customer records and automated emails.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The team changes <code>net8.0<\/code> to <code>net10.0<\/code> and assumes the work is complete. The build then fails because the API still uses the in-process model, while a later test reveals that an older authentication package is also incompatible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">By identifying those dependencies in a preview environment, the company avoids a failed production release and an urgent after-hours recovery. The business outcome is not merely a newer platform. It is lower security exposure, predictable support and less chance of customer-facing downtime.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Do not turn every retirement into a full rewrite<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Most Static Web Apps do not need to be rebuilt from scratch. A controlled runtime and dependency upgrade is usually faster and less expensive.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, retirement work can expose applications that have already become costly or difficult to support. Our article on why Australian SMBs should modernise old .NET applications explains how to recognise that wider risk.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the application depends on older Windows components that cannot fit a modern Static Web Apps architecture, consider a staged hosting move instead of an immediate rewrite. The assessment approach in our legacy application assessment guide can help clarify the available options.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What technology leaders should do now<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ask for a list of affected applications, named owners, target platforms, test plans and confirmed production dates. If your internal team or IT provider cannot produce that information, the first priority is visibility.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">CloudProInc combines more than 20 years of enterprise IT experience with practical Azure and Microsoft development expertise. As a Melbourne-based Microsoft Partner and Wiz Security Integrator, we help organisations across Australia and internationally assess application risk, remediate unsupported platforms and verify the security of the result.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you are not sure whether a Static Web App is still using .NET 8 or 9, or whether the proposed upgrade plan covers the real business risks, we are happy to take a practical look with you \u2014 no strings attached.<\/p>\n\n\n","protected":false},"excerpt":{"rendered":"<p>A practical checklist for finding affected Azure Static Web Apps, moving them to .NET 10 and reducing security, compliance and operational risk.<\/p>\n","protected":false},"author":1,"featured_media":59720,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[27,16,67,13],"tags":[],"class_list":["post-59718","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-net","category-microsoft-azure","category-blazor","category-blog"],"jetpack-related-posts":[{"id":751,"url":"https:\/\/www.cloudproinc.com.au\/index.php\/2026\/10\/12\/generate-dall-e-images-with-net-c-console-application\/","url_meta":{"origin":59718,"position":0},"title":"Generate DALL-E Images with .NET C# Console Application","author":"CPI Staff","date":"October 12, 2026","format":false,"excerpt":"This Azure OpenAI article will show you how to generate DALL-E images with .NET C# Console application using the Azure SDK for .NET. Table of contentsAzure SDK for .NETGenerate DALL-E Images with .NET C# Console ApplicationInstall-PackageProgram.csRelated Articles Azure SDK for .NET allows us to build Gen-AI applications using .NET, the\u2026","rel":"","context":"In &quot;.NET&quot;","block_context":{"text":".NET","link":"https:\/\/www.cloudproinc.com.au\/index.php\/category\/net\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2024\/07\/Reading-Handwriting-with-Azure-AI-Vision-and-.NET-C.webp","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2024\/07\/Reading-Handwriting-with-Azure-AI-Vision-and-.NET-C.webp 1x, \/wp-content\/uploads\/2024\/07\/Reading-Handwriting-with-Azure-AI-Vision-and-.NET-C.webp 1.5x, \/wp-content\/uploads\/2024\/07\/Reading-Handwriting-with-Azure-AI-Vision-and-.NET-C.webp 2x"},"classes":[]},{"id":53466,"url":"https:\/\/www.cloudproinc.com.au\/index.php\/2026\/10\/12\/top-vs-code-extensions-for-developers-and-devops-engineers\/","url_meta":{"origin":59718,"position":1},"title":"Top VS Code Extensions for Developers and DevOps Engineers","author":"CPI Staff","date":"October 12, 2026","format":false,"excerpt":"If you're searching for the Top VS Code Extensions for Developers and DevOps Engineers, you've come to the right place. Visual Studio Code (VS Code) has become one of the most popular editors for modern software development due to its speed, flexibility, and the massive ecosystem of extensions. In this\u2026","rel":"","context":"In &quot;Blog&quot;","block_context":{"text":"Blog","link":"https:\/\/www.cloudproinc.com.au\/index.php\/category\/blog\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2025\/07\/image-13.png","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2025\/07\/image-13.png 1x, \/wp-content\/uploads\/2025\/07\/image-13.png 1.5x, \/wp-content\/uploads\/2025\/07\/image-13.png 2x"},"classes":[]},{"id":669,"url":"https:\/\/www.cloudproinc.com.au\/index.php\/2026\/10\/12\/effortless-web-app-deployment-with-azure-cli\/","url_meta":{"origin":59718,"position":2},"title":"Effortless Web App Deployment with Azure CLI","author":"CPI Staff","date":"October 12, 2026","format":false,"excerpt":"This Azure Web Apps article will show how to use az webapp up to for quick deployment of web apps with minimal configuration. Deploying web applications has never been easier, thanks to the Azure CLI's az webapp up command. In this article, we'll explore how to quickly deploy web apps\u2026","rel":"","context":"In &quot;App Service&quot;","block_context":{"text":"App Service","link":"https:\/\/www.cloudproinc.com.au\/index.php\/category\/app-service\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2024\/09\/How-to-Create-an-Azure-AI-Language-Account-Using-REST-API.webp","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2024\/09\/How-to-Create-an-Azure-AI-Language-Account-Using-REST-API.webp 1x, \/wp-content\/uploads\/2024\/09\/How-to-Create-an-Azure-AI-Language-Account-Using-REST-API.webp 1.5x, \/wp-content\/uploads\/2024\/09\/How-to-Create-an-Azure-AI-Language-Account-Using-REST-API.webp 2x"},"classes":[]},{"id":390,"url":"https:\/\/www.cloudproinc.com.au\/index.php\/2026\/10\/12\/integrating-azure-ai-vision-for-image-analysis-in-c-applications\/","url_meta":{"origin":59718,"position":3},"title":"Integrating Azure AI Vision for Image Analysis in C# Applications","author":"CPI Staff","date":"October 12, 2026","format":false,"excerpt":"This Azure AI Services article will show how to integrate Azure AI Vision for image analysis in C# applications using .NET. Azure AI Services offers access to many AI services, including the popular Azure OpenAI service. Today, we will focus on Azure AI Vision, which offers AI capabilities when working\u2026","rel":"","context":"In &quot;AI&quot;","block_context":{"text":"AI","link":"https:\/\/www.cloudproinc.com.au\/index.php\/category\/ai\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2024\/07\/Integrating-Azure-AI-Vision-for-Image-Analysis-in-C-Applications.webp","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2024\/07\/Integrating-Azure-AI-Vision-for-Image-Analysis-in-C-Applications.webp 1x, \/wp-content\/uploads\/2024\/07\/Integrating-Azure-AI-Vision-for-Image-Analysis-in-C-Applications.webp 1.5x, \/wp-content\/uploads\/2024\/07\/Integrating-Azure-AI-Vision-for-Image-Analysis-in-C-Applications.webp 2x"},"classes":[]},{"id":58534,"url":"https:\/\/www.cloudproinc.com.au\/index.php\/2026\/10\/12\/how-to-assess-legacy-apps-for-azure-app-service-managed-instance\/","url_meta":{"origin":59718,"position":4},"title":"How to Assess Legacy Apps for Azure App Service Managed Instance","author":"CPI Staff","date":"October 12, 2026","format":false,"excerpt":"A practical assessment framework for deciding whether a legacy Windows web application can move to Azure Managed Instance safely, affordably and without an expensive rebuild.","rel":"","context":"In &quot;App Service&quot;","block_context":{"text":"App Service","link":"https:\/\/www.cloudproinc.com.au\/index.php\/category\/app-service\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2026\/08\/how-to-assess-legacy-apps-for-azure-app-service-managed-instance.png","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2026\/08\/how-to-assess-legacy-apps-for-azure-app-service-managed-instance.png 1x, \/wp-content\/uploads\/2026\/08\/how-to-assess-legacy-apps-for-azure-app-service-managed-instance.png 1.5x, \/wp-content\/uploads\/2026\/08\/how-to-assess-legacy-apps-for-azure-app-service-managed-instance.png 2x, \/wp-content\/uploads\/2026\/08\/how-to-assess-legacy-apps-for-azure-app-service-managed-instance.png 3x, \/wp-content\/uploads\/2026\/08\/how-to-assess-legacy-apps-for-azure-app-service-managed-instance.png 4x"},"classes":[]},{"id":459,"url":"https:\/\/www.cloudproinc.com.au\/index.php\/2026\/10\/12\/reading-handwriting-with-azure-ai-vision-and-net-c\/","url_meta":{"origin":59718,"position":5},"title":"Reading Handwriting with Azure AI Vision and .NET C#","author":"CPI Staff","date":"October 12, 2026","format":false,"excerpt":"This Azure AI Vision article will show you how to create a .NET app that reads handwritten text using Azure AI Vision. Microsoft Azure AI Services offers several AI services that can help streamline business processes or create in-house applications that can replace SaaS apps. Azure AI Vision allows us\u2026","rel":"","context":"In &quot;.NET&quot;","block_context":{"text":".NET","link":"https:\/\/www.cloudproinc.com.au\/index.php\/category\/net\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2024\/07\/Reading-Handwriting-with-Azure-AI-Vision-and-.NET-C.webp","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2024\/07\/Reading-Handwriting-with-Azure-AI-Vision-and-.NET-C.webp 1x, \/wp-content\/uploads\/2024\/07\/Reading-Handwriting-with-Azure-AI-Vision-and-.NET-C.webp 1.5x, \/wp-content\/uploads\/2024\/07\/Reading-Handwriting-with-Azure-AI-Vision-and-.NET-C.webp 2x"},"classes":[]}],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"\/wp-content\/uploads\/2026\/11\/static-web-apps-net-8-and-9-retirement-remediation-checklist.png","_links":{"self":[{"href":"https:\/\/www.cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/posts\/59718","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/comments?post=59718"}],"version-history":[{"count":2,"href":"https:\/\/www.cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/posts\/59718\/revisions"}],"predecessor-version":[{"id":59721,"href":"https:\/\/www.cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/posts\/59718\/revisions\/59721"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/media\/59720"}],"wp:attachment":[{"href":"https:\/\/www.cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/media?parent=59718"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/categories?post=59718"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/tags?post=59718"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}