-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to target .NET in Visual Studio 2019 after .NET Core 3.1 end of support on December 13, 2022 #7834
Comments
That's very good question. Adoption of any new software in some big financial companies is slow and they will not get VS2022 before .NET Core v3.1 EOL. |
@LukaszMc Totally agreed. Large enterprise companies cannot upgrade IDE so quickly. If only there was a straightforward upgrade path (same like Windows 7/8 was able to be upgraded to Windows 10 with the same license key) - but looks like Microsoft decided not to provide one. Our company owns lots of Visual Studio 2019 Professional standalone licenses and |
Only a month left until .NET Core 3.1 end of support at December 13, 2022.
So the only options left (for companies that are unable to upgrade to Visual Studio 2022 and .NET 6.0 in nearest future) are downgrade to .NET Framework 4.8 (with losing cross-platform then), ASP .NET Core 2.1 on .NET Framework and classic Entity Framework 6.4.4. Ironically all that outdated technologies are still supported. But that is a big step backwards (language syntax, class library, performance, etc.). @timheuer and @richlander - ping you again. We still want to hear answers and some comments on the proposal. Thank you. |
Another month has passed, .NET Core 3.1 has reached EOL, 3 related workloads in Visual Studio 2019 become unsupported |
.NET and Visual Studio are independent products, and as you noted above each of these has its own independent support lifecycle. While this was not the news you hoped for, unfortunately we do not have plans to extend the lifecycle of .NET to match the 10 year lifecycle of Visual Studio. VS major versions ship minor or "dot" versions (so 17.4, 17.5, etc. every 3-4 months). When a new .NET major version ships we include that new .NET version in the latest VS minor update. Over the course of VS 2019 (VS16) minor updates we first introduced .NET Core 2.0, followed by 2.1, 3.0, and 3.1). VS 2019 has now transitioned to maintenance mode, VS 16.11 was the last minor update with no more updates planned beyond monthly security and bug fixes. So it is not possible to introduce a new feature like .NET 6 there. I do want to point out that this issue is not unique to .NET in VS though. VS also allows you to build Android and iOS apps and each of those platforms have their respective SDKs with their own varying lifecycles, and again shorter than the 10 year lifecycle for VS. The VS support and servicing page documents this behavior including the fact that VS ships other components like .NET that each have their own independent lifecycle and support duration. I think you would find upgrading to .NET Core 3.1 to 6.0 is not as difficult as you might imagine or have previously experience. Moving from 1.0 -> 2.1 -> 3.1 was certainly a pain, but we had a lot of churn in the .NET Core surface area in the early days. We have been feature complete since .NET Core 3.1 where we re-introduced Winforms and WPF projects and since then the changes have been slower and the compatibility we strive for is also much higher. As a result many customers tell us moving up to a newer .NET versions is fairly painless. If you do run into something unexpected with the migration we'd be interested in hearing about that via an issue. |
I'm not talking about a full 10 year lifecycle of Visual Studio, but only about 5 year Mainstream Support phase.
Visual Studio 2019 is in a Mainstream Support phase till April 2024 which means feature updates, platform updates, security updates, and functionality fixes according the docs. But regarding .NET development we can see only feature reduction, don't we? Looks like you have transitioned Visual Studio 2019 to maintenance mode too early according to your own docs (there it is called the second 5 years of Extended support and provides only security updates).
.NET Core 2.x development was available in Visual Studio 2017, so only .NET Core 3.x and .NET 5.0 development were introduced exclusively in Visual Studio 2019 (and now both are unsupported decpite of Visual Studio 2019 Mainstream Support phase).
Moving to .NET 6.0 is not looking difficult for us but requires purchasing a bunch of Visual Studio 2022 licenses. So my company must be sure that upcoming .NET 8 LTS support is guaranteed for Visual Studio 2022. So, again @jamshedd, @richlander, anybody: will Visual Studio 2022 definitely support upcoming .NET 8.0 LTS? Or MS team will again drop support between .NET 8 previews and finally make it exclusive to Visual Studio VNext? |
At this time there is no published schedule for Visual Studio vNext, what's released out there is VS 2022 so my expectation is .NET 8 development will be supported on VS 2022. If you're looking for an assurance that .NET 8 development would be supported on VS 2022 even after VS vNext were to ship then I cannot provide that at this time before there is even a published schedule for VS vNext. |
@jamshedd Ok, let's leave Visual Studio vNext aside for now.
For Visual Studio 2022 update cycle looks pretty evident and stable: next minor version is released every 3 month, every even version number becomes a baseline. Visual Studio 2022 was released at November 2021 and we can expect that it will reach final baseline (17.11) at August 2024 (2y 9m after release). Again it's pretty far from 5 years described in docs. So my questions are:
|
A key point to note is that ,ainstream support for VS 2019 is the period during which the product can provide new features, fixes, etc. it is not meant to be a guarantee that every new feature (like .NET 6) from a newer VS will be backported to the older VS in mainstream support. Whether we take a new feature from a newer VS back to an older VS is a combination of many factors including work involved, risk to destabilize the shipped product, and effort. In the case of .NET 6, the corresponding changes to the tooling were large and complex enough that taking those tooling changes back to VS 2019 was prohibitive so we made the call to ship .NET 6 paired with VS 2022 only. The other relevant factor is like you noted VS ships features via its feature (dot) updates. VS 2019 shipped its last feature update with VS 16.11 in April 2021. There have been no feature updates since then which means there was never a ship vehicle to deliver a large feature like a new .NET 6 to VS 2019 even if we had wanted to. |
That "key point to note" is not even mentioned in docs.
I don't expect every new feature from a newer VS to be back ported to the older VS. I expect (according to info described in docs) to have any update that can be classified as feature updates, platform updates during the whole period of first 5 years.
So actually there are no feature updates since time when VS reaches it's last baseline (last "dot" update), right? Assuming that MS stabilized VS update cycle (next minor version is released every 3 month, every even version number becomes a baseline) we can conclude that 2y 6m - 2y 9m after release VS actually "is transitioned to maintenance mode" (only security updates). This information definitely must be added to documents so as not to mislead users and not to overestimate their expectations. |
Thanks, I will pass on your last piece of feedback about clearer documentation for VS i.e. there's no new features for VS after the last dot update for VS ships. |
On December 13, 2022 .NET Core 3.1 will reach EOL. Starting that day Visual Studio 2019 will not be able to develop .NET applications in a supported manner (the whole .NET cross-platform development workload in Visual Studio 2019 will be not officially supported anymore). But Visual Studio 2019 is in a Mainstream Support phase till April 2024. So it looks very strange and disappointing that IDE, which is still in the Mainstream Support phase for another 1.5 years, cannot target a supported .NET version (ironically .NET Framework is still supported since its lifecycle is tied to Windows). So my question and proposal are:
A bit related to #5567
The text was updated successfully, but these errors were encountered: