7 ms·
I don't follow the .NET ecosystem closely enough, but it feels that releasing a mayor version every year feels like kind of unnecessary? Or if they intend to ke
by XzAeRosho 4y ago
I don't follow the .NET ecosystem closely enough, but it feels that releasing a mayor version every year feels like kind of unnecessary? Or if they intend to keep doing this, they should release LTS versions of some kind.
It feels kind of scary committing to .NET 7 right now, when in a year, it will be replaced by yet another major version promising ever increasing performance gains... Or is the difference between major versions not that big?
- kryptiskt 4y agoEvery other release is an LTS release, with three years of support. .NET 6 was one so this won't be. They are pretty good about backwards compatibility, upgrading .NET Core and .NET hasn't been a big deal so far.
- mikece 4y agoI have an issue with calling three years "long term" support. Most companies won't update to the new LTS for 9 to 12 months in order for any issues to be ironed out, so that means you get only 24 to 27 months on the LTS. Between CVEs and upgrading to dotnet6 before the end of life on dotnet3.1 most of my coworkers and I have gotten almost no new coding done on our applications this summer (and this was after a three month blitz to get all of our code up to dotnet3.1 ahead of the dotnet2.1 end of life less than a year ago). As long as the LTS doesn't introduce a lot of breaking changes then it's not that big of a deal but when you have to refactor and rewrite non-trivial chunks of code this gets to be really wasteful.
- guhidalg 4y agoWhat did you have to rewrite when upgrading from .NET 3.1 to 6? If all you had to touch was ASP.NET startup changes, that's hardly 1 day's worth of work.
- barking_biscuit 4y agoI think this is part of the intent. Letting software get painfully out of date is something that wrecks code bases and companies, yet that's the way they naturally want to operate. Since they've always operated that way they're not use to budgeting for the resource to continually stay up to date. I prefer to upgrade on a regular cadence and even think LTS is an anti-pattern. The regular cadence means upgrades are as small as possible when they do happen, and people experienced with upgrading are more present in the engineering team. The alternative is shit gets 5 years out of date and then 10 years out of date.
- yodon 4y agoEven numbered versions are LTS
- SideburnsOfDoom 4y ago> they should release LTS versions of some kind. Uh? .NET 6 is the current LTS version. 8 will be the next. https://dotnet.microsoft.com/en-us/platform/support/policy https://dotnet.microsoft.com/en-us/platform/support/policy I don't comment on Java or Python platform versioning policies because, like you with .NET, "I don't follow the ecosystem closely enough" so I don't have anything meaningful to say about it. > It feels kind of scary committing to .NET 7 right now .. Or is the difference between major versions not that big? Rolling forwards, the changes are very minor indeed. And there are utilities to automate parts of the update. e.g. https://dotnet.microsoft.com/en-us/platform/upgrade-assistant https://dotnet.microsoft.com/en-us/platform/upgrade-assistan... There are of course new things that you will find missing if you're rolling backwards.
- TillE 4y agoOne of the weirder HN tropes is being upset that new software continues to be released, or that languages get updated with new features. I've so rarely seen truly major breaking changes that require substantial effort in updating your own code. Like, the Python 2->3 transition is notable because it's unusual.
- SideburnsOfDoom 4y agoWhat I'm finding the weird trope is the pattern of: "I don't know anything about X, anyway why doesn't X do (thing that X has been doing for ages)" ignorance is no problem, I am ignorant of the details of most popular programming languages, and I know that. it's another thing to show awareness of ignorance, and then lose that awareness before the end of the paragraph. Whatever happened to "Whereof one cannot speak, thereof one must be silent."
- bmitc 4y agoAnd the thing is, Python and Java are much worse than .NET. I use F#, and it is completely seamless to install and use .NET anywhere.
- atraac 4y ago> It feels kind of scary committing to .NET 7 right now, when in a year, it will be replaced by yet another major version promising ever increasing performance gains... Or is the difference between major versions not that big? Switching between major versions these days is incredibly easy so it's not like you pick a version for life. They're also not changing THAT much.
- ochronus 4y agoThey have an excellent track record of not breaking compatibility, most updates are drop-in & forget (unless you want to utilize new lang/runtime features)
- smcl 4y agoI recall a few bumpy bits in the various upgrades from 1.0 to 2.2 - they reworked quite a few areas such that updating the .NET Core version required changing your code. They provided good documentation and migration guides, but they did definitely break things along the way.
- ThunderSizzle 4y agoI recall most developers didn't jump from 472 to core 1 since this was thr expectation. I barely started touching core until core 3, and really started checking out .net 5.
- smcl 4y agoTo be honest we didn't migrate .NET Framework apps - new build was done in .NET Core and thankfully there were a few smaller projects in the pipeline to allow us to fiddle with a bit through the transition 'til it was a bit more stable.
- quaffapint 4y ago.NET Core 3.1 and .NET 6 are LTS (though 3.1 ends this year). Also in general things don't break that much. There are cases like nullable checks whose default changes and so if you go with that default you will have to update, but it's tweaks more than overhauls.
- fabian2k 4y agoThe most recent upgrades were pretty easy, it looks like the more disruptive changes are mostly done now.
- phillipcarter 4y ago> Or if they intend to keep doing this, they should release LTS versions of some kind. That's exactly what they do: https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core https://dotnet.microsoft.com/en-us/platform/support/policy/d...
- danparsonson 4y agoI have to agree that it's excessive and I don't understand why they're doing it. Major versions imply breaking changes, which contradicts the assertions of other people here replying that the differences between each version are minor; in that case why not minor version bumps? What's the benefit? The only thing I can think of is that it forces upgrades to new versions of Visual Studio. One immediate problem it creates is with recruitment - between 2019 and 2021 we went from .NET Core 3.0, through 3.1, .NET 5, and now .NET 6, and suddenly in the space of one job I went from up-to-date to 'legacy CV'.
- Salgat 4y agoMajor versions do include breaking changes in some libraries. You usually keep all Microsoft libraries aligned on the same major version to ensure compatibility, and it allows Microsoft to introduce these breaking changes on a regular basis without causing any confusion. If you're on .NET 6, most of your Microsoft nugets are on 6.xx.xx.
- ThunderSizzle 4y agoIt gets really weird when you have one dependency including .NET 6 version, and another including .NET 5, since they sometimes rework nuget packages with how many Microsoft.Extensions they have now.
- ahtihn 4y agoWhy would you list the .NET version on your CV? Why would anyone hiring care about whether you have experience with .NET 6 vs .NET 3 Do you also list all the library versions you've worked with? This is pretty absurd.
- danparsonson 4y agoThe .NET framework has changed a great deal between versions 1 and 6, so I don't agree that it's sufficient just to say that I am experienced with .NET and leave it at that, nor is it equivalent to listing library versions. Besides I'm a contractor; potential customers are usually looking for someone who can hit the ground running, not spend a month skilling up.
- bob1029 4y agoThey do have a tick-tock-style LTS approach. Our strategy is to stick with the LTS versions, since we sell software to banks. The path we are on: Framework 4.x => .NET Core 2.x => .NET Core 3.1 => .NET 6 (we are here today) => .NET 8 The migration from .NET Core 3.1 to .NET 6 was a total non-event. It was substantially harder for us to go from 2.x to 3.1. Based upon the current proposals and available documentation, we anticipate our migration from .NET6 => .NET8 will occur with absolutely zero ceremony sometime around Q2 2024.
- pjmlp 4y ago> The migration from .NET Core 3.1 to .NET 6 was a total non-event. It was a rather big event for Forms, WPF developers, and there are still issues with the designer and 3rd party component libraries, and C++/CLI as well, which happens to be used by them.
- cyral 4y agoThe updates from .NET Core 2 to .NET Core 6 have taken me maybe an hour of combined work across many years. Each major version has barely any breaking changes if any.
- Wohlf 4y agoYeah it's pretty much just new features, and you can stick to the LTS releases.