.NET 8의 주요 변경 내용
- 아티클
- 2023. 12. 05.
이 문서의 내용
- ASP.NET Core
- 컨테이너
- 핵심 .NET 라이브러리
- 암호화
- 배포
- Entity Framework Core
- 확장
- 세계화
- Interop
- 네트워킹
- 반영
- SDK
- 직렬화
- Windows Forms
- 참고 항목
앱을 .NET 8로 마이그레이션하는 경우 여기에 나열된 주요 변경 내용이 영향을 줄 수 있습니다. 변경 내용은 ASP.NET Core 또는 Windows Forms와 같은 기술 영역별로 그룹화됩니다.
이 문서에서는 각 호환성이 손상되는 변경 내용을 이진 호환되지 않거나 호환되지 않는 원본으로 분류하거나 동작 변경으로 분류합니다.
- 이진 호환되지 않음 - 새 런타임 또는 구성 요소에 대해 실행할 때 기존 이진 파일은 로드 또는 실행 실패와 같은 동작의 호환성이 손상되는 변경이 발생할 수 있으며, 이 경우 다시 컴파일이 필요합니다.
- 원본 호환되지 않음 - 새 SDK 또는 구성 요소를 사용하여 다시 컴파일하거나 새 런타임을 대상으로 하는 경우 기존 소스 코드에서 소스 변경 내용을 성공적으로 컴파일해야 할 수 있습니다.
- 동작 변경 - 기존 코드 및 이진 파일은 런타임에 다르게 동작할 수 있습니다. 새 동작이 바람직하지 않은 경우 기존 코드를 업데이트하고 다시 컴파일해야 합니다.
참고
이 문서는 진행 중인 작업입니다. .NET 8의 주요 변경 내용의 전체 목록은 아닙니다. 여전히 게시 보류 중인 호환성이 손상되는 변경을 쿼리하려면 .NET의 문제를 참조하세요.
ASP.NET Core
타이틀 변경 유형
ConcurrencyLimiterMiddleware가 사용되지 않음 | 호환되지 않는 원본 |
serialization을 위한 사용자 지정 변환기가 제거됨 | 동작 변경 |
ISystemClock이 사용되지 않음 | 호환되지 않는 원본 |
최소 API: IFormFile 매개 변수에 위조 방지 검사 필요 | 동작 변경 |
속도 제한 미들웨어에는 AddRateLimiter가 필요합니다. | 동작 변경 |
보안 토큰 이벤트는 JsonWebToken을 반환합니다. | 동작 변경 |
TrimMode 기본값은 웹 SDK 프로젝트에 대해 가득 찼습니다. | 호환되지 않는 원본 |
컨테이너
타이틀 변경 유형
Alpine 이미지에서 제거된 'ca-certificates' 및 'krb5-libs' 패키지 | 이진 호환되지 않음 |
Debian 12로 업그레이드된 Debian 컨테이너 이미지 | 호환되지 않는 이진/동작 변경 |
기본 ASP.NET Core 포트가 8080으로 변경됨 | 동작 변경 |
'libintl' 패키지가 Alpine 이미지에서 제거됨 | 동작 변경 |
다중 플랫폼 컨테이너 태그는 Linux 전용입니다. | 동작 변경 |
Linux 이미지의 새 '앱' 사용자 | 동작 변경 |
핵심 .NET 라이브러리
타이틀 변경 유형
암호화
타이틀 변경 유형 도입
macOS의 AesGcm 인증 태그 크기 | 동작 변경 | 미리 보기 1 |
Rsa. EncryptValue 및 RSA. DecryptValue 사용되지 않음 | 호환되지 않는 원본 | 미리 보기 1 |
배포
타이틀 변경 유형
호스트가 RID 관련 자산을 결정합니다. | 호환되지 않는 이진/동작 변경 |
StripSymbols 기본값은 true입니다. | 동작 변경 |
Entity Framework Core
확장
타이틀 변경 유형
세계화
타이틀 변경 유형
날짜 및 시간 변환기는 문화권 인수를 적용합니다. | 동작 변경 |
TwoDigitYearMax 기본값은 2049입니다. | 동작 변경 |
Interop
타이틀 변경 유형
CreateObjectFlags.Unwrap은 대상 인스턴스에서만 래핑 해제 | 동작 변경 |
사용자 지정 마샬러에 추가 멤버 필요 | 호환되지 않는 원본 |
IDispatchImplAttribute API가 제거됨 | 이진 호환되지 않음 |
JSFunctionBinding 암시적 공용 기본 생성자가 제거됨 | 이진 호환되지 않음 |
금고Handle 형식에는 공용 생성자가 있어야 합니다. | 호환되지 않는 원본 |
네트워킹
타이틀 변경 유형
SendFile은 연결 없는 소켓에 대해 NotSupportedException을 throw합니다. | 동작 변경 |
반영
타이틀 변경 유형
함수 포인터 형식에 더 이상 IntPtr이 사용되지 않음 | 동작 변경 |
SDK
타이틀 변경 유형
CLI 콘솔 출력은 UTF-8을 사용합니다. | 동작 변경/원본 및 이진 호환되지 않음 |
완료 후 UTF-8이 아닌 콘솔 인코딩 | 동작 변경/이진 호환되지 않음 |
컨테이너는 기본적으로 '최신' 태그를 사용합니다. | 동작 변경 |
'dotnet pack'은 릴리스 구성을 사용합니다. | 동작 변경/원본 호환되지 않음 |
'dotnet publish'는 릴리스 구성을 사용합니다. | 동작 변경/원본 호환되지 않음 |
System.Net.Http에 대한 암시적 using 이 더 이상 추가되지 않음 | 동작 변경/원본 호환되지 않음 |
MSBuild 사용자 지정 파생 빌드 이벤트는 더 이상 사용되지 않습니다. | 동작 변경 |
MSBuild는 DOTNET_CLI_UI_LANGUAGE 존중합니다. | 동작 변경 |
자체 포함되지 않은 런타임별 앱 | 원본/이진 호환되지 않음 |
--arch 옵션은 자체 포함을 의미하지 않습니다. | 동작 변경 |
'dotnet restore'는 보안 취약성 경고를 생성합니다. | 동작 변경 |
SDK는 더 작은 RID 그래프를 사용합니다. | 동작 변경/원본 호환되지 않음 |
.NET SDK에 포함된 원본 링크 | 호환되지 않는 원본 |
트리밍은 .NET Standard 또는 .NET Framework와 함께 사용할 수 없습니다. | 동작 변경 |
.NET 도구에 대해 기본적으로 나열되지 않은 패키지가 설치되지 않음 | 동작 변경 |
.NET 8 SDK에 대한 버전 요구 사항 | 호환되지 않는 원본 |
직렬화
타이틀 변경 유형
대부분의 프로젝트에 대해 BinaryFormatter를 사용하지 않도록 설정 | 동작 변경 |
PublishedTrimmed 프로젝트가 리플렉션 기반 serialization 실패 | 동작 변경 |
리플렉션 기반 역직렬 변환기가 메타데이터를 즉시 확인합니다. | 동작 변경 |
Windows Forms
타이틀 변경 유형
참고 항목
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요. 
.NET 피드백
.NET은(는) 오픈 소스 프로젝트입니다. 다음 링크를 선택하여 피드백을 제공해 주세요.
'[Microsoft]' 카테고리의 다른 글
.NET 시작 자습서 (1) | 2023.12.10 |
---|---|
.NET 8의 새로운 기능 (1) | 2023.12.10 |
Microsoft - 모든 과정, 학습 경로 및 모듈 찾아보기 (1) | 2023.12.07 |
Azure에서 Java 시작 (1) | 2023.12.07 |
Microsoft Build of OpenJDK의 각 릴리스를 얼마나 오랫동안 지원하나요? (1) | 2023.12.07 |