In fact there was a hell of a lot of churn while Microsoft pissed around with the MVC middleware stack implementation and throwing async in which has been buggy as hell on classic. And of course there was the entire “we decided to gut WCF and WWF and AppFabric” thing.
I lost count of the hours I spent digging through deadlocks and spinwaits.
On .net core there have been many many breaking API changes over just the last three years which have broken everything from libraries to the stack. There has also been absolutely zero to no guidance on what best practices are in the current hour. All the documentation and articles out there are obsolete within a gnat’s fart of time after they are written.
There was a lot of change and not a lot of thinking that went into the platform over the years. This costs big money for clients.