2 ms·
The .NET 4.X runtimes baked into Win10/11 are OS components just like Win32 is an OS Component. That's first of all brilliant if you want to ship apps that run
by alkonaut 2y ago
The .NET 4.X runtimes baked into Win10/11 are OS components just like Win32 is an OS Component.
That's first of all brilliant if you want to ship apps that run on those systems, because you don't need to ship the runtime.
But it's painful when you want to write server software. Because you don't want your deployment story to be dependent on the server having some particular system level software (or it being windows).
So it's completely inevitable that 4.X will never die. Win32 won't die either.
And making the ship to a completely separate runtime that runs on Linux, and isn't an OS component (but in return requires deployment) was just natural. It's not completely unthinkable that the .NET Runtime will be shipped as part of Windows, but even that woulnd't mean that they can stop shipping the .NET Framework 4.X runtmes.
I just ported a 20 year old 200+ man year desktop app from 4.8 to 8.0 and it was pretty smooth. Even things like old binary-only proprietary winforms controls actually work, which was a huge surprise.
If you are making a web app or any kind of server side app, then the migration is usually straightforward. For client side software it's not as easy, and in some cases it's also not clear whether it's a win. If you are shipping some small Windows-only utility it's probably better to ship on the "old" runtime because your deployment will be smaller when you can use the OS runtime.