학습
모듈
.NET Upgrade Assistant를 사용하여 ASP.NET Framework를 ASP.NET Core로 현대화 - Training
이 모듈에서는 Upgrade Assistant를 사용하여 ASP.NET Framework 앱을 ASP.NET Core로 현대화하는 시기, 이유 및 방법을 알아봅니다.
.NET 런타임과 .NET SDK는 다른 빈도로 새 기능을 추가합니다. 일반적으로 SDK는 런타임보다 더 자주 업데이트됩니다. 이 문서에서는 런타임 및 SDK 버전 번호를 설명합니다.
.NET은 11월마다 새로운 주 버전을 릴리스합니다. .NET 6 또는 .NET 8과 같은 짝수 번호가 매겨진 릴리스는 LTS(장기 지원)됩니다. LTS 릴리스는 3년 동안 무료 지원과 패치를 가져옵니다. 홀수 번호가 매겨진 릴리스는 표준 기간 지원입니다. 표준 기간 지원 릴리스는 18개월 동안 무료 지원과 패치를 가져옵니다.
.NET 런타임에는 유의적 버전을 따르는 버전 관리에 대한 major.minor.patch 접근 방식이 있습니다.
그러나 .NET SDK는 유의적 버전을 따르지 않습니다. .NET SDK는 더 빠르게 릴리스되며 해당 버전 번호는 정렬된 런타임과 SDK의 자체 부 릴리스 및 패치 릴리스를 모두 전달해야 합니다.
.NET SDK 버전 번호의 처음 두 개 위치는 릴리스된 .NET 런타임 버전과 일치합니다. SDK의 각 버전은 이 런타임 또는 다른 하위 버전에 대한 애플리케이션을 만들 수 있습니다.
SDK 버전 번호의 세 번째 위치는 보조 및 패치 번호를 모두 전달합니다. 부 버전에는 100이 곱해집니다. 마지막 두 자리는 패치 번호를 나타냅니다. 부 버전 1, 패치 버전 2는 102로 표시됩니다. 예를 들어 다음과 같은 런타임 및 SDK 버전 번호 시퀀스를 사용할 수 있습니다.
변경 | .NET 런타임 | .NET SDK(*) | 주의 |
---|---|---|---|
초기 릴리스 | 5.0.0 | 5.0.100 | 초기 릴리스입니다. |
SDK 패치 | 5.0.0 | 5.0.101 | 이번 SDK 패치에서는 런타임이 변경되지 않았습니다. SDK 패치가 SDK 패치의 마지막 숫자를 범프합니다. |
런타임 및 SDK 패치 | 5.0.1 | 5.0.102 | 런타임 패치가 런타임 패치 번호와 범프합니다. SDK 패치가 SDK 패치의 마지막 숫자를 범프합니다. |
SDK 기능 변경 | 5.0.1 | 5.0.200 | 런타임 패치는 변경되지 않았습니다. 새로운 SDK 기능은 SDK 패치의 첫 번째 숫자를 증가시킵니다. |
런타임 패치 | 5.0.2 | 5.0.102 | 런타임 패치가 런타임 패치 번호와 범프합니다. SDK는 변경되지 않습니다. |
앞의 표에서 여러 정책을 볼 수 있습니다.
참고:
dotnet/designs 리포지토리에서 초기 제안서에 자세한 내용을 확인할 수 있습니다.
.NET 런타임은 유의적 버전(SemVer)을 대략적으로 준수하며, MAJOR.MINOR.PATCH
버전 관리를 사용하고, 버전 번호의 다양한 부분으로 변경의 수준 및 종류를 설명합니다.
MAJOR.MINOR.PATCH[-PRERELEASE-BUILDNUMBER]
선택 사항인 PRERELEASE
및 BUILDNUMBER
부분은 지원되는 릴리스에 포함되지 않으며, 야간 빌드, 소스 대상에서의 로컬 빌드 및 지원되지 않는 미리 보기 릴리스에만 존재합니다.
MAJOR
는 1년에 한 번 증가하며 다음을 포함할 수 있습니다.
MAJOR
버전이 채택된 경우주 릴리스는 1년에 한 번 발생하며, 짝수 번호가 매겨진 버전은 LTS(장기 지원) 릴리스입니다. 이 버전 관리 체계를 사용하는 첫 번째 LTS 릴리스는 .NET 6입니다. 최신 비 LTS 버전은 .NET 5입니다.
다음 경우에는 MINOR
가 증가합니다.
MINOR
버전이 채택된 경우다음 경우에는 PATCH
가 증가합니다.
PATCH
버전이 채택된 경우여러 가지 변경이 이루어진 경우에는 개별 변경의 영향을 받는 가장 높은 요소가 증가되고 다음은 0으로 다시 설정됩니다. 예를 들어 MAJOR
가 증가하면 MINOR.PATCH
는 0으로 다시 설정됩니다. MINOR
가 증가하면 PATCH
는 0으로 다시 설정되지만, MAJOR
는 동일하게 유지됩니다.
.NET용으로 다운로드한 파일에는 버전(예: dotnet-sdk-5.0.301-win10-x64.exe
)이 들어 있습니다.
미리 보기 버전에는 버전 번호에 -preview.[number].[build]
이 추가됩니다. 예: 6.0.0-preview.5.21302.13
.
릴리스가 출시된 후에 릴리스 분기는 일반적으로 매일 빌드 만들기를 중지하고 대신 서비스 빌드를 만들기 시작합니다. 서비스 버전에는 -servicing-[number]
이 추가됩니다. 예: 5.0.1-servicing-006924
.
.NET 런타임은 버전 간 높은 수준의 호환성을 유지합니다. .NET 앱은 대체로 새로운 주요 .NET 런타임 버전으로 업그레이드한 후에도 계속 작동해야 합니다.
각 주요 .NET 런타임 버전에는 호환성이 손상되는 변경 내용이 의도적이고 신중하게 조사되고 문서화되어 포함됩니다. 문서화된 호환성이 손상되는 변경이 업그레이드 후 앱에 영향을 미칠 수 있는 문제의 유일한 원인은 아닙니다. 예를 들어, .NET 런타임의 성능 개선(이는 호환성이 손상되는 변경으로 간주되지 않음)으로 인해 앱이 해당 버전에서 작동하지 않게 만드는 잠재적인 앱 스레딩 버그가 노출될 수 있습니다. 새로운 .NET 런타임 주 버전으로 업그레이드한 후 대규모 앱에는 몇 가지 수정이 필요할 것으로 예상됩니다.
기본적으로 .NET 앱은 지정된 .NET 런타임 주 버전에서 실행되도록 구성되므로 새로운 .NET 런타임 주 버전에서 실행되도록 앱을 업그레이드하려면 다시 컴파일하는 것이 좋습니다. 그런 다음 업그레이드 후 앱을 다시 테스트하여 문제를 확인합니다.
앱 다시 컴파일을 통한 업그레이드가 불가능하다고 가정해 보겠습니다. 이 경우 .NET 런타임은 앱이 컴파일된 버전보다 높은 주요 .NET 런타임 버전에서 실행될 수 있도록 추가 설정을 제공합니다. 이러한 설정은 앱을 더 높은 주요 .NET 런타임 버전으로 업그레이드하는 것과 관련된 위험을 변경하지 않으며 업그레이드 후 앱을 다시 테스트해야 합니다.
.NET 런타임은 이전 .NET 런타임 버전을 대상으로 하는 라이브러리 로드를 지원합니다. 최신 주요 .NET 런타임 버전으로 업그레이드된 앱은 이전 .NET 런타임 버전을 대상으로 하는 라이브러리 및 NuGet 패키지를 참조할 수 있습니다. 앱에서 참조하는 모든 라이브러리와 NuGet 패키지의 대상 런타임 버전을 동시에 업그레이드할 필요는 없습니다.
학습
모듈
.NET Upgrade Assistant를 사용하여 ASP.NET Framework를 ASP.NET Core로 현대화 - Training
이 모듈에서는 Upgrade Assistant를 사용하여 ASP.NET Framework 앱을 ASP.NET Core로 현대화하는 시기, 이유 및 방법을 알아봅니다.