We're about to start a project with those limitations and there really is no good choice now that .NET 6 is already a year through it's lifecycle.
We're about to start a project with those limitations and there really is no good choice now that .NET 6 is already a year through it's lifecycle.
[a]: Pass the `--sc true` option to `dotnet publish`: https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-p...
https://learn.microsoft.com/en-us/dotnet/core/deploying/runt...
You have a point, but I'd call out that migrating to newer releases can and often is trouble-free.
A couple of months ago I worked on a .NET Core 2 web service that was put on cold storage for a few years, and all it took to migrate it to .NET Core 6 was a few version number bumps and a rebuilding the project.
YMMV of course, but LTS shelf life might not be a deal breaker.
I say particularly, because Core2->Core3.1 was a fairly painful change for some.
I'd say the 66% worst case is 'you also have to add some compat flags and stories to properly resolve the compat flags'.
This is why it's much better to move away from the shrink-wrap model of delivering software and focus on SaaS only solutions.
Many years ago I wrote software for a medical device. Before we could sell the device we needed to get it tested by Underwriters Laboratories to ensure it was safe (wouldn't shock people) and could be cleaned by hospital staff without damage. We also had to do the process to get the CE mark for it so it could be sold in the EU. And of course the FDA needed to approve it. It took nearly a year for all this, before we could offer it for sale and start marketing it.
So there's a third of the LTS lifetime consumed, right there.
Until the date hits them in the face there’s no urgency.
It's not really Microsoft's job to work around your awkward requirements. Everything is open source, you can ship patches for .NET 6 yourself if you really want to.
Microsoft's general-ish LTS for .NET is 2 years. We also only seem to get a new release every 2 years. It's hard to handle breaking changes between two versions quickly.
What kind of breaking changes have been hard to handle?
Node (used at least as much as .NET and Java in enterprise) has a 3 year LTS cycle
I'm gonna need a citation on that. From what I've seen, what enterprises have done any node adoption have fled it like rats fleeing a sinking ship because of all the problems it's had over the past half decade. To the point that shops I've worked with are moving back to Java.Biggest problem for us is .NET Standard. I don't even understand how it could work on a theoretical level. Maybe it could work if there was no dependencies.
Edit: The bindings that is. Maybe the devs too.
edit: Ok I see, it seems in that scenario loading the correct assembly is more difficult on dotnet framework and usually requires binding redirects to be specified. On dotnet core/.NET 5+ there are no issues though, which is why I haven't experienced this problem myself.
https://nickcraver.com/blog/2020/02/11/binding-redirects/#th...
We pretty much banned .NET Standard for any in-house dev.
We are also preparing for a move from .NET Framework 4.7.2 to .NET 6/7. It's going to be quite the project.