.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 |





