FIELD NOTEBOOK  /  LEGACY .NET MIGRATION
DotNet Forward
VOL. 01 · p.03
PROJECT No. NET-10
STATUS · OPEN FOR Q3

← Field notebook

Azure Cloud Services (classic) is gone — and that's the warning, not the news

The classic deployment model retired on 31 August 2024. If you're still on it, you're not approaching end of life — you're past it. The lesson generalises straight to .NET Framework.

Let's be exact, because the date matters. Azure Cloud Services (classic) — the original .cscfg/.csdef deployment model, the one that predates Azure Resource Manager — retired on 31 August 2024. The classic networking and classic storage account retirements landed on the same day. That isn't a future deadline you can plan around; it passed nearly two years ago.

If you're still running on classic, you are not approaching end of life. You are operating past it, on infrastructure Microsoft has already retired.

Why this is a .NET Framework story

Because it's the same shape. A platform you built on, that worked fine, quietly crosses from supported to unsupported — and the software keeps running, which is exactly what makes it dangerous. Classic Cloud Services were the natural home for a great many ASP.NET Framework web roles and worker roles. So the two clocks tend to be the same clock: the apps stranded on classic are very often the same net48 apps stranded on an unsupported runtime.

The platform doesn't send a final warning the morning it stops mattering. The build still succeeds. The site still serves. The bill still arrives. The only thing that changed is that no one is obligated to fix it when it breaks.

Where it leaves you

Microsoft's own path off classic is Cloud Services (extended support) under Resource Manager — a lift that keeps the deployment model but moves it onto ARM. That's a sensible first step for the hosting layer. It is not, by itself, a fix for the application sitting inside it, which may still be targeting a framework that's equally past support. Here's the line, drawn the same way the assessment draws it.

before / retired
after / supported
Cloud Services (classic)
retired 31 Aug 2024
classic storage · classic NSG
app: net48 web role
support: none, behaviour unverified
ARM-based hosting
in support
modern storage · NSG (ARM)
app: net10.0, behaviour-tested
support: current LTS, parity verified
Fig. 1 Two retirements, one move. The hosting model and the framework both crossed into unsupported; the right column is the supported state for each.

Reading the lifecycle yourself

You don't have to take a vendor's word for the dates. The retirement notices and the lifecycle pages are public, and the first thing any honest assessment does is pull them for every platform piece you depend on. The readings, for classic, look like this.

$ assess --lifecycle azure-classic + runtime
Cloud Services (classic) ......... RETIRED 2024-08-31
classic storage accounts ......... RETIRED 2024-08-31
.NET Framework 4.8 ............... support tied to OS, no new features
recommended target: ARM + .NET 10 (LTS), parity-tested

The cost of waiting on an EOL platform is not linear. It's flat, then it's a cliff.

If any of this describes your setup — a classic-hosted web role, an ASP.NET app on net48, a quiet dependence on something that's already past its retirement date — that's exactly the conversation the fit call is for. Twenty minutes, no pitch. I'll tell you how exposed you actually are, and whether the move is worth doing now.

Wondering what your own migration would read like?

Twenty minutes, no pitch. I’ll tell you whether your app is a fit and roughly what the path looks like.

An unhandled error has occurred. Reload Dismiss

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please reload the page.