
.NET Framework specifically - yeah. That’s on life support. .NET Core is likely to be around for a long time. I spent the last few years at my former employer working on transitioning our server-side business layer components to .NET Core so they could run in Linux containers. Someone else got to deal with the Kubernetes aspect - thank goodness.
Now I usually avoid thinking about any of that. (Oops.)
Scalability was the primary reason. An application running on physical Windows-based servers can’t quickly scale up and down, leading to higher hosting costs due to everything scaled to maximum capacity at all times. Or, more often, leading to slow performance and lost revenue due to the customer not wanting to pay for maximum hosting capacity at all times. So the customers want scalable cloud hosting. And when losing a customer often means a loss of millions of dollars in revenue for my former employer, they want to keep those customers.
A secondary goal is increasing the speed of deployment for new customers. Scripting the entire environment - including servers, network, storage - can make it very fast to spin up a new customer or testing environment. That can be done without .NET, of course, but .NET Core is the obvious next step for a large distributed enterprise product suite that is (was) already running on .NET Framework.
.NET Core isn’t a primary platform for desktop or mobile client applications. It is very common as a hosting platform; that is likely to continue.