Skip to content

Commit 31109db

Browse files
committed
Update support page
1 parent 744db40 commit 31109db

1 file changed

Lines changed: 35 additions & 75 deletions

File tree

docs/core/releases-and-support.md

Lines changed: 35 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,109 +1,73 @@
11
---
22
title: .NET releases, patches, and support
33
description: Learn about releases, patches, and support for .NET 5+ (including .NET Core) and later versions.
4-
ms.date: 03/18/2022
4+
ms.date: 7/15/2022
55
ms.topic: overview
66
ms.author: tdykstra
77
author: tdykstra
88
---
9-
# Releases and support for .NET (.NET 5+ and .NET Core)
9+
# Releases and support for .NET
1010

11-
Microsoft ships major releases, minor releases, and servicing updates (patches) for .NET 5 (and .NET Core) and later versions. This article explains release types, servicing updates, SDK feature bands, support periods, and support options.
11+
This article describes release types, servicing updates, SDK feature bands, support periods, and support options for .NET.
1212

13-
## Release types
14-
15-
Information about the type of each release is encoded in the version number in the form *major.minor.patch*.
16-
17-
For example:
18-
19-
* .NET 5 and NET 6 are major releases.
20-
* .NET Core 3.1 is the first minor release after the .NET Core 3.0 major release.
21-
* .NET Core 5.0.15 is the fifteenth patch for .NET 5.
22-
23-
### Major releases
24-
25-
Major releases include new features, new public API surface area, and bug fixes. Examples include .NET 5 and .NET 6. Due to the nature of the changes, these releases are expected to have breaking changes. Major releases install side by side with previous major releases.
26-
27-
### Minor releases
28-
29-
Minor releases also include new features, public API surface area, and bug fixes, and may also have breaking changes. An example is .NET Core 3.1. The difference between these and major releases is that the magnitude of the changes is smaller. An application upgrading from .NET Core 3.0 to 3.1 has a smaller jump to move forward. Minor releases install side by side with previous minor releases.
30-
31-
### Servicing updates
32-
33-
Servicing updates (patches) ship almost every month, and these updates carry both security and non-security bug fixes. For example, .NET 5.0.8 is the eighth update for .NET 5. When these updates include security fixes, they're released on "patch Tuesday", which is always the second Tuesday of the month. Servicing updates are expected to maintain compatibility. Starting with .NET Core 3.1, servicing updates are upgrades that remove the preceding update. For example, the latest servicing update for 3.1 removes the previous 3.1 update upon successful installation.
34-
35-
### Feature bands (SDK only)
36-
37-
Versioning for the .NET SDK works slightly differently from the .NET runtime. To align with new Visual Studio releases, .NET SDK updates sometimes include new features or new versions of components like MSBuild and NuGet. These new features or components may be incompatible with the versions that shipped in previous SDK updates for the same major or minor version.
13+
## Release cadence
3814

39-
To differentiate such updates, the .NET SDK uses the concept of feature bands. For example, the first .NET 5 SDK was 5.0.100. This release corresponds to the 3.1.1xx *feature band*. Feature bands are defined in the hundreds groups in the third section of the version number. For example, 5.0.101 and 5.0.201 are versions in two different feature bands while 5.0.101 and 5.0.199 are in the same feature band. When .NET SDK 5.0.101 is installed, .NET SDK 5.1.100 is removed from the machine if it exists. When .NET SDK 5.0.200 is installed on the same machine, .NET SDK 5.0.101 isn't removed.
15+
New major .NET versions are released annually in November, at [.NET Conf](https://www.dotnetconf.net/).
4016

41-
### Runtime roll-forward and compatibility
42-
43-
Major and minor updates install side by side with previous versions. An application built to target a specific *major.minor* version continues to use that targeted runtime even if a newer version is installed. The app doesn't automatically roll forward to use a newer *major.minor* version of the runtime unless you opt in for this behavior. An application that was built to target .NET Core 3.0 doesn't automatically start running on .NET Core 3.1. We recommend rebuilding the app and testing against a newer major or minor runtime version before deploying to production. For more information, see [Framework-dependent apps roll forward](versions/selection.md#framework-dependent-apps-roll-forward) and [Self-contained deployment runtime roll forward](deploying/runtime-patch-selection.md).
44-
45-
Servicing updates are treated differently from major and minor releases. An application built to target .NET 5.0.0 runs on the 5.0.0 runtime by default. It automatically rolls forward to use a newer 5.0.1 runtime when that servicing update is installed. This behavior is the default because we want security fixes to be used as soon as they're installed without any other action needed. You can opt out from this default roll forward behavior.
46-
47-
## .NET version lifecycles
48-
49-
.NET Core, .NET 5, and later versions adopt the [modern lifecycle](/lifecycle/policies/modern) rather than the [fixed lifecycle](/lifecycle/policies/fixed) that has been used for .NET Framework releases. Products with fixed lifecycles provide a long fixed period of support, for example, 5 years of mainstream support and another 5 years of extended support. Mainstream support includes security and non-security fixes, while extended support provides security fixes only. Products that adopt a modern lifecycle have a more service-like support model, with shorter support periods and more frequent releases.
50-
51-
### Release tracks
17+
Patch updates are released monthly on the second tuesday of each month, also known as Patch Tuesday.
5218

53-
There are two support tracks for releases:
19+
Minor versions of the .NET SDK are releases approximately quarterly. These are known as [feature bands](#feature-bands-sdk-only).
5420

55-
* *Current* releases
56-
57-
These versions are supported until six months after the next major or minor release ships. Previously (.NET Core 3.0 and earlier), these releases were supported for only three months after the next major or minor release shipped.
58-
59-
Example:
21+
## Release types
6022

61-
* .NET Core 3.0 shipped in September 2019 and was followed by .NET Core 3.1 in December 2019.
62-
* .NET Core 3.0 support ended in March 2020, 3 months after 3.1 shipped.
23+
Each .NET release is defined as either **Short Term Support (STS)** or **Long Term Support (LTS)**, at the beginning of the release.
6324

64-
* *Long Term Support* (LTS) releases
25+
The release types:
6526

66-
These versions are supported for a minimum of 3 years, or 1 year after the next LTS release ships if that date is later.
27+
* **STS** releases are supported for eighteen months, released in even-numbered years. They are intended for users that want to take advantage of the newest features and improvements and to stay on the leading edge of .NET innovation.
28+
* **LTS** releases are supported for three years, released in odd-numbered years. They are intended for users that want the stability and lower cost of maintaining an application for an extended period, only needing to upgrade their .NET version for security patches.
6729

68-
Example:
30+
Note: **STS** releases were previously called **Current**.
6931

70-
* .NET Core 3.1 is an LTS release and was released in December 2019. It's supported for 3 years, until December, 2022.
71-
* .NET 5 is a Current release and was released in November 2020. It's supported for 18 months, until May, 2022.
72-
* .NET 6 is an LTS release and was released in November, 2021. It's supported for 3 years, until November, 2024.
32+
LTS and STS releases differ only by support duration. The .NET team follows the same software engineering and release processes for both release types, including for security, compatibility, and reliability. Both releases may contain major new features and breaking changes. The .NET team aspires to enable straightforward migration from one release to another, independent of release type.
7333

74-
Releases alternate between LTS and Current, so it's possible for an earlier release to be supported longer than a later release. For example, .NET Core 3.1 is an LTS release with support through December 2022. The .NET 5 release shipped almost a year later but goes out of support earlier, in May 2022.
34+
## Support phases
7535

76-
Servicing updates ship monthly and include both security and non-security (reliability, compatibility, and stability) fixes. Servicing updates are supported until the next servicing update is released. Servicing updates have runtime roll forward behavior. That means that applications default to running on the latest installed runtime servicing update.
36+
.NET releases go through multiple support phases, with varying support levels.
7737

78-
## How to choose a release
38+
* **Preview** releases are not supported but are offered for public testing and for the opportunity to give feedback.
39+
* **Go-live** support enables users to deploy a pre-release build in production, and are supported by Microsoft. These are typically Release Candidate (RC) releases.
40+
* **Active** support is provided for the majority of the period after a release is Generally Available (GA). Functional and security improvements will be provided, including support for new operating system versions.
41+
* **Maintenance** support is provided for the last six months of support. Improvements are limited to security fixes. Support for new operating system versions will be provided on a best-effort basis.
42+
* **End-of-life (EOL)** marks the point where a release is no longer supported.
7943

80-
If you're building a service and expect to continue updating it on a regular basis, then a Current release like .NET 5 may be your best option to stay up to date with the latest features .NET has to offer.
44+
.NET uses the [modern lifecycle](/lifecycle/policies/modern) for support and servicing. It is also used for .NET Framework.
8145

82-
If you're building a client application that will be distributed to consumers, stability may be more important than access to the latest features. Your application might need to be supported for a certain period before the consumer can upgrade to the next version of the application. In that case, an LTS release like .NET 6 might be the right option.
46+
[Support for various operating systems](https://github.com/dotnet/core/blob/main/os-lifecycle-policy.md) is defined for each release.
8347

84-
### Servicing updates
48+
## Product behavior
8549

86-
.NET servicing updates are supported until the next servicing update is released. The release cadence is monthly.
50+
Some .NET behaviors are affected by product version.
8751

88-
You need to regularly install servicing updates to ensure that your apps are in a secure and supported state. For example, if the latest servicing update for .NET 5 is 5.0.8 and we ship 5.0.9, then 5.0.8 is no longer the latest. The supported servicing level for .NET 5 is then 5.0.9.
52+
### Runtime roll-forward and compatibility
8953

90-
For information about the latest servicing updates for each major and minor version, see the [.NET downloads page](https://dotnet.microsoft.com/download/dotnet).
54+
All .NET updates install side-by-side with previous versions. An application built to target a specific *major.minor* version continues to use that targeted runtime even if a newer version is installed. The app doesn't automatically roll forward to use a newer *major.minor* version of the runtime unless you opt in for this behavior. An application that was built to target .NET 6 won't automatically start running on .NET 7.
9155

92-
## End of support
56+
We recommend rebuilding apps and testing them with a newer major runtime version before deploying to production. For more information, see [Framework-dependent apps roll forward](versions/selection.md#framework-dependent-apps-roll-forward) and [Self-contained deployment runtime roll forward](deploying/runtime-patch-selection.md).
9357

94-
End of support refers to the date after which Microsoft no longer provides fixes, updates, or technical assistance for a product version. Before this date, make sure you have moved to using a supported version. Versions that are out of support no longer receive security updates that protect your applications and data.
58+
Servicing updates are treated differently from major releases. An application built to target .NET 6.0.0 will automatically roll-forward to use a newer patch -- like 6.0.1 -- when that servicing update is installed.
9559

96-
## Supported operating systems
60+
## Feature bands (SDK only)
9761

98-
.NET 5 (and .NET Core) and later versions can be run on a range of operating systems. Each of these operating systems has a lifecycle defined by its sponsor organization (for example, Microsoft, Red Hat, or Apple). We take these lifecycle schedules into account when adding and removing support for operating system versions.
62+
Versioning for the .NET SDK works slightly differently from the .NET runtime. To align with new Visual Studio releases, .NET SDK updates sometimes include new features or new versions of components like MSBuild and NuGet.
9963

100-
When an operating system version goes out of support, we stop testing that version and providing support for that version. Users need to move forward to a supported operating system version to get support.
64+
To differentiate such updates, the .NET SDK uses the concept of feature bands. For example, the first .NET 6 SDK was `6.0.100`. The second one was `6.0.200`.Feature bands are defined in the hundreds groups in the third section of the version number. For example, 6.0.101 and 6.0.200 are versions in two different feature bands while 6.0.101 and 6.0.199 are in the same feature band.
10165

102-
For more information, see the [.NET OS Lifecycle Policy](https://github.com/dotnet/core/blob/main/os-lifecycle-policy.md).
66+
.NET SDK installers are programmed to maintain one version per feature band. For example, when .NET SDK 6.0.101 is installed, .NET SDK 6.0.100 is removed from the machine if it exists. When .NET SDK 6.0.200 is installed on the same machine, .NET SDK 6.0.101 isn't removed.
10367

10468
## Get support
10569

106-
You have a choice between Microsoft assisted support and Community support.
70+
You can get support from Microsoft and the community.
10771

10872
### Microsoft support
10973

@@ -113,8 +77,4 @@ You need to be on a supported servicing level (the latest available servicing up
11377

11478
### Community support
11579

116-
For community support, see the [Community page](https://dotnet.microsoft.com/platform/community).
117-
118-
## See also
119-
120-
For more information, including supported date ranges for each version of .NET, see the [Support Policy](https://dotnet.microsoft.com/platform/support/policy/dotnet-core).
80+
For community support, see [dotnet/core](https://github.com/dotnet/core) or our [Community page](https://dotnet.microsoft.com/platform/community).

0 commit comments

Comments
 (0)