← Back
IAmTimCorey October 15, 2026 12m

331. .NET 8 and .NET 9 Both Expire Next Month: Is LTS Still a Thing?

Read full transcript 11 segments
  1. .NET 8 and .NET 9 both expire in .NET 8 and .NET 9 both expire in November. I've seen some questions about November. I've seen some questions about November. I've seen some questions about this, including if long-term support or this, including if long-term support or this, including if long-term support or LTS is still a thing, and why .NET 9 is LTS is still a thing, and why .NET 9 is LTS is still a thing, and why .NET 9 is already expiring when .NET 10 has only already expiring when .NET 10 has only already expiring when .NET 10 has only been out for a year. been out for a year. been out for a year. The reality is that .NET 9 support was The reality is that .NET 9 support was The reality is that .NET 9 support was actually extended. But let's talk about actually extended. But let's talk about actually extended. But let's talk about what LTS versus STS means, why this what LTS versus STS means, why this what LTS versus STS means, why this process is so fast, and what will be process is so fast, and what will be process is so fast, and what will be supported going forward in today's supported going forward in today's supported going forward in today's episode of Dev Questions. Software development is more than just Software development is more than just writing code. So let's talk about the writing code. So let's talk about the writing code. So let's talk about the rest of it. Specifically, let's talk rest of it. Specifically, let's talk rest of it. Specifically, let's talk about the changes to STS and why we have about the changes to STS and why we have about the changes to STS and why we have two versions of .NET going out of two versions of .NET going out of two versions of .NET going out of support at the same time. support at the same time. support at the same time. Now, let's start with what is LTS and Now, let's start with what is LTS and Now, let's start with what is LTS and what is STS. We talked before about what is STS. We talked before about what is STS. We talked before about this, but LTS is a long-term support for this, but LTS is a long-term support for this, but LTS is a long-term support for .NET. So when an LTS version comes out, .NET. So when an LTS version comes out, .NET. So when an LTS version comes out, and they're the even versions, so 8, 10, and they're the even versions, so 8, 10, and they're the even versions, so 8, 10, 12.

  2. 12. 12. So, when .NET 10 came out, it was So, when .NET 10 came out, it was So, when .NET 10 came out, it was supported it will be supported for 3 supported it will be supported for 3 supported it will be supported for 3 years. Which means that when it came out years. Which means that when it came out years. Which means that when it came out last year in 2025, last year in 2025, last year in 2025, it'll be supported through 2028. it'll be supported through 2028. it'll be supported through 2028. At the same time. So in November is when At the same time. So in November is when At the same time. So in November is when it came out, it was supported through it came out, it was supported through it came out, it was supported through November of 2028. An STS version used to November of 2028. An STS version used to November of 2028. An STS version used to be be be supported for 18 months. So it'd come supported for 18 months. So it'd come supported for 18 months. So it'd come out in November, and let's say .NET out in November, and let's say .NET out in November, and let's say .NET um oh let's say .NET 9 came out in was um oh let's say .NET 9 came out in was um oh let's say .NET 9 came out in was that 2024? So it supported through 2026 that 2024? So it supported through 2026 that 2024? So it supported through 2026 in May. Well, they said, "Hey, you know in May. Well, they said, "Hey, you know in May. Well, they said, "Hey, you know what? Instead of extending it to May, what? Instead of extending it to May, what? Instead of extending it to May, let's extend it even further and make it let's extend it even further and make it let's extend it even further and make it supported for 2 years." So instead of 18 supported for 2 years." So instead of 18 supported for 2 years." So instead of 18 months, two years. So, it's supported months, two years. So, it's supported months, two years. So, it's supported then through the the same time as the then through the the same time as the then through the the same time as the LTS version. That way, there is no LTS version. That way, there is no LTS version. That way, there is no penalty for going to an STS version. So, penalty for going to an STS version. So, penalty for going to an STS version. So, if you're on .NET 8, you say, "Hey, if you're on .NET 8, you say, "Hey, if you're on .NET 8, you say, "Hey, let's go upgrade to .NET 9." Well, .NET let's go upgrade to .NET 9." Well, .NET let's go upgrade to .NET 9." Well, .NET 9 went out of support before .NET 8 did.

  3. 9 went out of support before .NET 8 did. 9 went out of support before .NET 8 did. Which kind of gives you a penalty for Which kind of gives you a penalty for Which kind of gives you a penalty for going to the STS version. So, Microsoft going to the STS version. So, Microsoft going to the STS version. So, Microsoft changed that so that's three years and changed that so that's three years and changed that so that's three years and two years. That way, the nine and eight two years. That way, the nine and eight two years. That way, the nine and eight expiration date, which is November of expiration date, which is November of expiration date, which is November of this year, this year, this year, goes out of expiration at the same time. goes out of expiration at the same time. goes out of expiration at the same time. They their end of support is the same They their end of support is the same They their end of support is the same time. Which means that you can go from time. Which means that you can go from time. Which means that you can go from .NET 8 to .NET 9 and not have any .NET 8 to .NET 9 and not have any .NET 8 to .NET 9 and not have any penalty for doing so. You still have to penalty for doing so. You still have to penalty for doing so. You still have to upgrade on a schedule. You still have to upgrade on a schedule. You still have to upgrade on a schedule. You still have to make sure that you're moving forward, make sure that you're moving forward, make sure that you're moving forward, but it's not something you have to then but it's not something you have to then but it's not something you have to then think, "Oh, we have to go even faster to think, "Oh, we have to go even faster to think, "Oh, we have to go even faster to .NET 10." You don't. You now have two .NET 10." You don't. You now have two .NET 10." You don't. You now have two years instead of 18 months. Now, years instead of 18 months. Now, years instead of 18 months. Now, the way this the reason this way works the way this the reason this way works the way this the reason this way works this way is because Microsoft can't this way is because Microsoft can't this way is because Microsoft can't support everything forever, right? support everything forever, right? support everything forever, right? There's um new security updates that There's um new security updates that There's um new security updates that have to happen all the time, and trying have to happen all the time, and trying have to happen all the time, and trying to backport those into different to backport those into different to backport those into different versions versions versions really takes a lot of time and effort, really takes a lot of time and effort, really takes a lot of time and effort, and it's very costly. So, the other and it's very costly. So, the other and it's very costly. So, the other thing is that we used to have a longer thing is that we used to have a longer thing is that we used to have a longer LTS version. With .NET Framework, the LTS version. With .NET Framework, the LTS version. With .NET Framework, the LTS lasted a lot longer. But, that's LTS lasted a lot longer. But, that's LTS lasted a lot longer. But, that's because we got updates a lot less. So, because we got updates a lot less. So, because we got updates a lot less. So, what was happening was we'd get, you what was happening was we'd get, you what was happening was we'd get, you know, three, four, five years between an know, three, four, five years between an know, three, four, five years between an update. And so, yeah, they were update. And so, yeah, they were update. And so, yeah, they were supported for longer because there was supported for longer because there was supported for longer because there was no new version to go to beyond that one.

  4. no new version to go to beyond that one. no new version to go to beyond that one. Um Um Um the problem with that is that your code the problem with that is that your code the problem with that is that your code starts to rot a bit. starts to rot a bit. starts to rot a bit. And what I mean by that is, you start to And what I mean by that is, you start to And what I mean by that is, you start to settle where settle where settle where your your dependencies may start to your your dependencies may start to your your dependencies may start to change, but you're like, "Ah, I'm not change, but you're like, "Ah, I'm not change, but you're like, "Ah, I'm not going to upgrade those. I don't want, going to upgrade those. I don't want, going to upgrade those. I don't want, you know, touch anything. It's it's you know, touch anything. It's it's you know, touch anything. It's it's working." And all of a sudden, a new working." And all of a sudden, a new working." And all of a sudden, a new version [clears throat] of .NET comes version [clears throat] of .NET comes version [clears throat] of .NET comes out, but it because it was so long out, but it because it was so long out, but it because it was so long coming out, there's a lot of changes and coming out, there's a lot of changes and coming out, there's a lot of changes and potentially a lot of breaking changes in potentially a lot of breaking changes in potentially a lot of breaking changes in how it works, which means a very high how it works, which means a very high how it works, which means a very high bar to get to the next version. And so, bar to get to the next version. And so, bar to get to the next version. And so, companies will kind of go, companies will kind of go, companies will kind of go, "We just can't do it. This it's just too "We just can't do it. This it's just too "We just can't do it. This it's just too much work to get from one to the next, much work to get from one to the next, much work to get from one to the next, and so we're going to stay here." and so we're going to stay here." and so we're going to stay here." And that's why you still see companies And that's why you still see companies And that's why you still see companies today that are on .NET Framework or .NET today that are on .NET Framework or .NET today that are on .NET Framework or .NET Framework 3.5 even, not even 4.8, the Framework 3.5 even, not even 4.8, the Framework 3.5 even, not even 4.8, the latest. So, they're kind of stuck in latest. So, they're kind of stuck in latest. So, they're kind of stuck in older version or a very older version, older version or a very older version, older version or a very older version, and they feel like they can't move and they feel like they can't move and they feel like they can't move forward. forward. forward. Microsoft's philosophy was, "Hey, let's Microsoft's philosophy was, "Hey, let's Microsoft's philosophy was, "Hey, let's help these companies move forward by help these companies move forward by help these companies move forward by making that that step-by-step making that that step-by-step making that that step-by-step progression much much easier."

  5. progression much much easier." progression much much easier." I have a number of .NET apps that came I have a number of .NET apps that came I have a number of .NET apps that came out in previous versions of .NET. I have out in previous versions of .NET. I have out in previous versions of .NET. I have one app that's was .NET 6 originally. I one app that's was .NET 6 originally. I one app that's was .NET 6 originally. I believe it was a suggestion site app was believe it was a suggestion site app was believe it was a suggestion site app was .NET 6. .NET 6. .NET 6. I upgraded that all the way to 10 just I upgraded that all the way to 10 just I upgraded that all the way to 10 just by changing the numbers. by changing the numbers. by changing the numbers. So, So, So, it gets the benefits of the upgrades, it gets the benefits of the upgrades, it gets the benefits of the upgrades, and there are significant benefits. It's and there are significant benefits. It's and there are significant benefits. It's just just changing the number, but it's just just changing the number, but it's just just changing the number, but it's also a very easy process. Now, I'm not also a very easy process. Now, I'm not also a very easy process. Now, I'm not saying that your production app is just saying that your production app is just saying that your production app is just going to be changing a number because going to be changing a number because going to be changing a number because you have dependencies. Now, those you have dependencies. Now, those you have dependencies. Now, those dependencies, yeah, they're going to dependencies, yeah, they're going to dependencies, yeah, they're going to need to make sure that you make changes need to make sure that you make changes need to make sure that you make changes there because some dependencies go out there because some dependencies go out there because some dependencies go out of out of support as well, and maybe you of out of support as well, and maybe you of out of support as well, and maybe you can't just upgrade those, and so you're can't just upgrade those, and so you're can't just upgrade those, and so you're kind of stuck there. The other thing is, kind of stuck there. The other thing is, kind of stuck there. The other thing is, if you're using deprecated things, which if you're using deprecated things, which if you're using deprecated things, which there aren't many in .NET. .NET really there aren't many in .NET. .NET really there aren't many in .NET. .NET really tries hard not to deprecate things and tries hard not to deprecate things and tries hard not to deprecate things and not to um stop supporting those things not to um stop supporting those things not to um stop supporting those things going forward or at least have those going forward or at least have those going forward or at least have those things, you know, still in the in the things, you know, still in the in the things, you know, still in the in the language in the framework. Um, so language in the framework. Um, so language in the framework. Um, so there's not many things that that are there's not many things that that are there's not many things that that are breaking changes that are are massive breaking changes that are are massive breaking changes that are are massive issues, but there are some. And so, if issues, but there are some. And so, if issues, but there are some. And so, if you have one of those, yeah, that's you have one of those, yeah, that's you have one of those, yeah, that's going to take more work as well. So, going to take more work as well. So, going to take more work as well. So, it's I'm not saying it's just a a number it's I'm not saying it's just a a number it's I'm not saying it's just a a number change like it is for me because I have change like it is for me because I have change like it is for me because I have less dependencies and a smaller app.

  6. less dependencies and a smaller app. less dependencies and a smaller app. But, it's a very easy change compared to But, it's a very easy change compared to But, it's a very easy change compared to a .NET Framework upgrade. So, this a .NET Framework upgrade. So, this a .NET Framework upgrade. So, this allows Microsoft to move faster, which allows Microsoft to move faster, which allows Microsoft to move faster, which allows us to get better things quicker allows us to get better things quicker allows us to get better things quicker into our applications, and it allows our into our applications, and it allows our into our applications, and it allows our applications to be upgraded more applications to be upgraded more applications to be upgraded more frequently and more easily, so that we frequently and more easily, so that we frequently and more easily, so that we can potentially stay on the latest can potentially stay on the latest can potentially stay on the latest versions, which make sure we it protects versions, which make sure we it protects versions, which make sure we it protects us against things like um, us against things like um, us against things like um, new security issues. So, new security issues. So, new security issues. So, with all of that, we have .NET 8 and with all of that, we have .NET 8 and with all of that, we have .NET 8 and .NET 9. For the first time, we have two .NET 9. For the first time, we have two .NET 9. For the first time, we have two versions of .NET expiring at the same versions of .NET expiring at the same versions of .NET expiring at the same time in November. Why? Well, we already time in November. Why? Well, we already time in November. Why? Well, we already have .NET 10. We've had .NET 10 for have .NET 10. We've had .NET 10 for have .NET 10. We've had .NET 10 for almost a year now. So, this is being almost a year now. So, this is being almost a year now. So, this is being recorded in October. So, we have one recorded in October. So, we have one recorded in October. So, we have one more month of .NET 10 before it's been more month of .NET 10 before it's been more month of .NET 10 before it's been out for a year. But, then we get .NET out for a year. But, then we get .NET out for a year. But, then we get .NET 11. So, I have .NET 10, which is the LTS 11. So, I have .NET 10, which is the LTS 11. So, I have .NET 10, which is the LTS version, a long-term support version, 3 version, a long-term support version, 3 version, a long-term support version, 3 years.

  7. years. years. We have that it's been out for a year, We have that it's been out for a year, We have that it's been out for a year, and we have .NET 11 now, which is the and we have .NET 11 now, which is the and we have .NET 11 now, which is the STS version, which will be supported for STS version, which will be supported for STS version, which will be supported for 2 years. So, that means that we now have 2 years. So, that means that we now have 2 years. So, that means that we now have two versions of .NET when the other two two versions of .NET when the other two two versions of .NET when the other two go out of support. go out of support. go out of support. Now, let's talk really briefly about Now, let's talk really briefly about Now, let's talk really briefly about what is out of support mean because some what is out of support mean because some what is out of support mean because some people think that means that there's a people think that means that there's a people think that means that there's a big switch somewhere at Microsoft, they big switch somewhere at Microsoft, they big switch somewhere at Microsoft, they pull that switch, and the lights turn pull that switch, and the lights turn pull that switch, and the lights turn off. And that's not really what happens. off. And that's not really what happens. off. And that's not really what happens. What end of support means is that What end of support means is that What end of support means is that there's not going to be more patches for there's not going to be more patches for there's not going to be more patches for that .NET version. So, if there's a that .NET version. So, if there's a that .NET version. So, if there's a security flaw or something else that security flaw or something else that security flaw or something else that comes out, that will not be fixed in the comes out, that will not be fixed in the comes out, that will not be fixed in the older versions. So, that's the support older versions. So, that's the support older versions. So, that's the support you would get normally with your .NET you would get normally with your .NET you would get normally with your .NET language, which means your .NET language language, which means your .NET language language, which means your .NET language 8 7 6 5, these still work. It's just 8 7 6 5, these still work. It's just 8 7 6 5, these still work. It's just they're not supported with new security they're not supported with new security they're not supported with new security fixes or bug fixes or other things. So, fixes or bug fixes or other things. So, fixes or bug fixes or other things. So, if it's still working, it's not going to if it's still working, it's not going to if it's still working, it's not going to turn off because November hits. However, turn off because November hits. However, turn off because November hits. However, for security reasons, you really want to for security reasons, you really want to for security reasons, you really want to be on a supported version of .NET. Okay?

  8. be on a supported version of .NET. Okay? be on a supported version of .NET. Okay? So, So, So, that's why when I recommend people, you that's why when I recommend people, you that's why when I recommend people, you know, with know, with know, with to to use .NET, I say, "Hey, to to use .NET, I say, "Hey, to to use .NET, I say, "Hey, I want you to stay on the latest version I want you to stay on the latest version I want you to stay on the latest version of .NET." And I actually encourage of .NET." And I actually encourage of .NET." And I actually encourage companies to use the STS version as companies to use the STS version as companies to use the STS version as well, not just the LTS version. And well, not just the LTS version. And well, not just the LTS version. And here's why. here's why. here's why. Because when you move from one version Because when you move from one version Because when you move from one version to the next, it's a small step. There to the next, it's a small step. There to the next, it's a small step. There are very few breaking changes. There are are very few breaking changes. There are are very few breaking changes. There are very few things that have to change in very few things that have to change in very few things that have to change in your application, and hopefully your your application, and hopefully your your application, and hopefully your dependencies stay up to date. The other dependencies stay up to date. The other dependencies stay up to date. The other thing is that by doing that small step thing is that by doing that small step thing is that by doing that small step twice, it's much easier to do than twice, it's much easier to do than twice, it's much easier to do than having one step that you do that's having one step that you do that's having one step that you do that's a little bit larger from say 8 to 10, a little bit larger from say 8 to 10, a little bit larger from say 8 to 10, especially because like 6 to 10. There's especially because like 6 to 10. There's especially because like 6 to 10. There's lots of changes that have happened, but lots of changes that have happened, but lots of changes that have happened, but if you did it a bite at a time as if you did it a bite at a time as if you did it a bite at a time as opposed to try to eat the whole elephant opposed to try to eat the whole elephant opposed to try to eat the whole elephant at once, then you you got a a much at once, then you you got a a much at once, then you you got a a much easier process. easier process. easier process. So, I recommend people going on every So, I recommend people going on every So, I recommend people going on every single version of .NET. And yes, that single version of .NET. And yes, that single version of .NET. And yes, that means that every year you're doing some means that every year you're doing some means that every year you're doing some work on your application to upgrade.

  9. work on your application to upgrade. work on your application to upgrade. However, I recommend that every time you However, I recommend that every time you However, I recommend that every time you do an upgrade, that you work on do an upgrade, that you work on do an upgrade, that you work on automating the process, work on automating the process, work on automating the process, work on streamlining the process. If you have a streamlining the process. If you have a streamlining the process. If you have a dependency that causes a problem every dependency that causes a problem every dependency that causes a problem every time, time, time, evaluate that dependency if it's really evaluate that dependency if it's really evaluate that dependency if it's really worth it. Maybe you can get around that worth it. Maybe you can get around that worth it. Maybe you can get around that dependency by not having it. dependency by not having it. dependency by not having it. >> [snorts] >> [snorts] >> [snorts] >> Often times come people take >> Often times come people take >> Often times come people take dependencies that they don't actually dependencies that they don't actually dependencies that they don't actually need. Maybe they use 5% of a dependency, need. Maybe they use 5% of a dependency, need. Maybe they use 5% of a dependency, but it was easy just to but it was easy just to but it was easy just to put it in. Well, take it out, do it put it in. Well, take it out, do it put it in. Well, take it out, do it yourself, or use a different dependency yourself, or use a different dependency yourself, or use a different dependency that's more reliable or more easily that's more reliable or more easily that's more reliable or more easily updated. So, make that process easier updated. So, make that process easier updated. So, make that process easier and easier so you can get faster and and easier so you can get faster and and easier so you can get faster and faster at it, which means that you're faster at it, which means that you're faster at it, which means that you're continually trimming and cleaning your continually trimming and cleaning your continually trimming and cleaning your code base, you're continually making code base, you're continually making code base, you're continually making your code base better, your code base better, your code base better, which also means that when you get the which also means that when you get the which also means that when you get the new version, you make your code base new version, you make your code base new version, you make your code base faster. faster. faster. Because every version of .NET includes Because every version of .NET includes Because every version of .NET includes performance improvements. performance improvements. performance improvements. And that's really your your carrot, And that's really your your carrot, And that's really your your carrot, right? When you're talking to management right? When you're talking to management right? When you're talking to management saying, "Hey, I want to upgrade our saying, "Hey, I want to upgrade our saying, "Hey, I want to upgrade our version of .NET." and they see no reason version of .NET." and they see no reason version of .NET." and they see no reason to do so, to do so, to do so, talk about the security issues, talk talk about the security issues, talk talk about the security issues, talk about the fact that you want to stay on about the fact that you want to stay on about the fact that you want to stay on a version that is supported because of a version that is supported because of a version that is supported because of security issues, but then also talk security issues, but then also talk security issues, but then also talk about that carrot, which is we'll also about that carrot, which is we'll also about that carrot, which is we'll also get performance improvements out of get performance improvements out of get performance improvements out of this.

  10. this. this. So, if you find yourself falling behind, So, if you find yourself falling behind, So, if you find yourself falling behind, now is a great time to start working on now is a great time to start working on now is a great time to start working on upgrade plan. Because with .NET 11 upgrade plan. Because with .NET 11 upgrade plan. Because with .NET 11 coming out and .NET 8 and 9 going out of coming out and .NET 8 and 9 going out of coming out and .NET 8 and 9 going out of support in a month, it's a great time to support in a month, it's a great time to support in a month, it's a great time to start planning, to start working towards start planning, to start working towards start planning, to start working towards changing how you do things, and start changing how you do things, and start changing how you do things, and start working towards that upgrade process. working towards that upgrade process. working towards that upgrade process. And you can upgrade to .NET 10 right now And you can upgrade to .NET 10 right now And you can upgrade to .NET 10 right now because you'll have two more years of because you'll have two more years of because you'll have two more years of support. But then when 11 comes out, you support. But then when 11 comes out, you support. But then when 11 comes out, you just did 10, you know what the process just did 10, you know what the process just did 10, you know what the process looks like, it might be a good thing to looks like, it might be a good thing to looks like, it might be a good thing to go to 11 as well, just to go to 11 as well, just to go to 11 as well, just to keep that momentum going, okay? So, keep that momentum going, okay? So, keep that momentum going, okay? So, part of this plan is to communicating part of this plan is to communicating part of this plan is to communicating and making sure that you communicate the and making sure that you communicate the and making sure that you communicate the importance of the upgrades, use that importance of the upgrades, use that importance of the upgrades, use that carrot of we're going to improve speed, carrot of we're going to improve speed, carrot of we're going to improve speed, while the same time use the kind of the while the same time use the kind of the while the same time use the kind of the hammer of hey, we need to make sure that hammer of hey, we need to make sure that hammer of hey, we need to make sure that we're protecting our application because we're protecting our application because we're protecting our application because our our company depends on this our our company depends on this our our company depends on this application and we can't have security application and we can't have security application and we can't have security issues that issues that issues that we have to fix right away or they we have to fix right away or they we have to fix right away or they endanger our company or our customers.

  11. endanger our company or our customers. endanger our company or our customers. So, we want to stay on a supported So, we want to stay on a supported So, we want to stay on a supported version. Okay? Work with management, version. Okay? Work with management, version. Okay? Work with management, make sure they understand the both the make sure they understand the both the make sure they understand the both the importance of the upgrades, but also the importance of the upgrades, but also the importance of the upgrades, but also the benefits as well. benefits as well. benefits as well. Thanks for listening and as always, I am Thanks for listening and as always, I am Thanks for listening and as always, I am Tim Corey.

Summary

This discussion clarifies .NET support lifecycles, explaining LTS versus STS and why .NET 8 and .NET 9 expire simultaneously in November. The key takeaway is that Microsoft extended STS support to two years, aligning its expiration with LTS versions like .NET 8, eliminating penalties for upgrading to newer STS releases.

View original episode ↗