.NET 9의 새로운 기능
.NET 9의 새로운 기능에 대해 알아보고 추가 설명서에 대한 링크를 찾습니다.
.NET 8 후속인 .NET 9는 클라우드 네이티브 앱 및 성능에 특별히 중점을 두고 있습니다. 18개월 동안 지원되며, 표준 기간 지원(STS) 릴리스로서 제공됩니다. .NET 9를 다운로드할 수있습니다.
.NET 9의 새로운 기능에 대해 엔지니어링 팀은 GitHub 토론에서 .NET 9 미리 보기 업데이트를 게시합니다. 이 곳에서 질문을 하고 릴리스에 대한 피드백을 제공할 수 있습니다.
.NET 런타임
.NET 9 런타임에는 트리밍 지원이 있는 기능 스위치에 대한 새 특성 모델이 포함되어 있습니다. 새 특성을 사용하면 라이브러리에서 기능 영역을 토글하는 데 사용할 수 있는 기능 스위치를 정의할 수 있습니다.
가비지 수집에는 기본적으로 서버 GC 대신 사용되는 동적 적응 기능이 포함되어 있으며, 이는 애플리케이션 크기에 맞추어 조정됩니다.
또한 런타임에는 루프 최적화, 인라인 처리, Arm64 벡터화 및 코드 생성을 비롯한 다양한 성능 향상이 포함됩니다.
자세한 내용은 .NET 9 런타임의 새로운 기능에 대해 알아보세요.
.NET 라이브러리
System.Text.Json는 nullable 참조 형식 주석의 지원을 추가하고, 형식에서 JSON 스키마를 내보내는 기능을 제공합니다. 기록된 JSON의 들여쓰기를 사용자 지정하고 단일 스트림에서 여러 루트 수준 JSON 값을 읽을 수 있는 새로운 옵션을 추가합니다.
LINQ에서 새 메서드는 CountByAggregateByGroupBy통해 중간 그룹을 할당할 필요 없이 키별로 상태를 집계할 수 있도록 합니다.
컬렉션 형식의 경우 System.Collections.Generic.PriorityQueue<TElement,TPriority> 형식에는 큐에 있는 항목의 우선 순위를 업데이트하는 데 사용할 수 있는 새 Remove(TElement, TElement, TPriority, IEqualityComparer<TElement>) 메서드가 포함됩니다.
암호화의 경우 .NET 9는 CryptographicOperations 형식에 새로운 원샷 해시 메서드를 추가합니다. 또한 KMAC 알고리즘을 사용하는 새 클래스를 추가합니다.
새 PersistedAssemblyBuilder 형식을 사용하면 리플렉션으로 내보낸 어셈블리를 저장할 수 있습니다. 이 새 클래스에는 PDB 지원도 포함되어 있습니다. 즉, 기호 정보를 내보내고 이를 사용하여 생성된 어셈블리를 디버그할 수 있습니다.
TimeSpan 클래스에는 int
로부터 TimeSpan
객체를 생성할 수 있는 새로운 From*
메서드가 포함되어 있으며, 이는 double
대신 사용됩니다. 이러한 메서드는 부동 소수점 계산에서 내재된 부정확성으로 인한 오류를 방지하는 데 도움이 됩니다.
자세한 내용은 .NET 9 라이브러리새로운 기능을 참조하세요.
.NET SDK
.NET 9 SDK는 모든 워크로드가 명시적으로 업데이트될 때까지 단일 특정 버전으로 유지되는 워크로드 집합도입합니다. 도구의 경우 dotnet tool install
대한 새 옵션을 사용하면 도구 작성자가 아닌 사용자가 도구가 대상으로 하는 버전보다 최신 .NET 런타임 버전에서 도구를 실행할 수 있는지 여부를 결정할 수 있습니다. 또한:
- 단위 테스트에는 병렬로 테스트를 실행할 수 있는 더 나은 MSBuild 통합이 있습니다.
- NuGet 보안 감사는 기본적으로 직접 및 전이적 패키지 참조 모두에서 실행됩니다.
- 터미널 로거는 기본적으로 사용하도록 설정되어 있으며 유용성도 향상되었습니다. 예를 들어 이제 총 실패 및 경고 수가 빌드 끝에 요약됩니다.
- 새 MSBuild 스크립트 분석기("빌드 검사")를 사용할 수 있습니다.
- SDK는 .NET SDK와 MSBuild 간의 버전 불일치를 감지하고 조정할 수 있습니다.
-
dotnet workload history
명령은 현재 .NET SDK 설치에 대한 워크로드 설치 및 수정의 기록을 보여 줍니다.
자세한 내용은 .NET 9용 SDK의 새로운 기능참조하세요.
AI 구성 요소
.NET 9는 Microsoft.Extensions.AI 및 Microsoft.Extensions.VectorData 패키지를 통해 C# 추상화의 통합 계층을 도입합니다. 이러한 추상화는 소형 및 대형 언어 모델(SLLM 및 LLM), 포함, 벡터 저장소 및 미들웨어를 포함하여 AI 서비스와의 상호 작용을 용이하게 합니다.
.NET 9에는 AI 기능을 확장하는 새로운 텐서 유형도 포함되어 있습니다. TensorPrimitives 및 새로운 Tensor<T> 형식은 다차원 데이터의 효율적인 인코딩, 조작 및 계산을 사용하도록 설정하여 AI 기능을 확장합니다. 이러한 형식은 System.Numerics.Tensors 패키지최신 릴리스에서 찾을 수 있습니다.
TensorPrimitives
- 확장된 메서드 범위: 오버로드가 40개에서 거의 200개로 증가했으며, 이제 값 범위에 대한 숫자 연산을 포함합니다. 이는
Math
,MathF
및INumber<T>
와 유사한 작업을 포함합니다. - 성능 향상: 이제 성능 향상을 위해 많은 작업이 SIMD 최적화되었습니다.
- 제네릭 오버로드: 특정 인터페이스를 구현하는 모든 형식
T
를 지원하며 .NET에서의 float 값의 범위를 넘어 확장합니다.
Tensor<T>
- 효율적인 수학 연산을 위해
TensorPrimitives
기반으로 합니다. - 가능한 경우 0개의 복사본을 사용하여 AI 라이브러리(ML.NET, TorchSharp, ONNX 런타임)와의 효율적인 상호 운용성을 제공합니다.
- 인덱싱 및 조각화 작업을 통해 쉽고 효율적인 데이터 조작을 가능하게 합니다.
- .NET 9에서 는 실험적입니다.
ML.NET
ML.NET 사용자 지정 기계 학습 모델을 .NET 애플리케이션에 통합할 수 있는 오픈 소스 플랫폼 간 프레임워크입니다.
ML.NET 4.0은 다음과 같은 개선 사항을 제공합니다.
- 프로그래밍 방식으로
MLContext
옵션을 구성하는 새로운 방법입니다. - ONNX 모델을
Stream
에 로드합니다. - 데이터 프레임이 개선되었습니다.
- 토큰 변환기에 대한 새로운 기능입니다.
- (실험적) 라마 및 피 모델 제품군의 TorchSharp 포트입니다.
- (실험적) CausalLM 파이프라인 API.
자세한 내용은 ML.NET의 새로운 기능을 참조하세요.
토큰화기
Microsoft.ML.Tokenizers 라이브러리는 .NET 개발자에게 토큰에 텍스트를 인코딩하고 디코딩하는 기능을 제공합니다. AI 시나리오의 경우 로컬 모델을 사용할 때 컨텍스트를 관리하고, 비용을 계산하고, 텍스트를 전처리하는 것이 중요합니다.
최신 릴리스에서는 토큰라이저에 대한 중요한 새로운 기능이 도입되었습니다.
- GPT (3, 3.5, 4, 4o, o1) 및 Llam3 모델을 위한 Tiktoken
- 라마 및 미스트랄 모델에 대한 라마(SentencePiece 기반)
- codegen-350M-mono와 같은 코드 생성 모델용 CodeGen
- Microsoft Phi2 모델용 Phi2(CodeGen 기반)
- WordPiece
- Bert(WordPiece 기반) - Bert 지원 모델(예: 최적--all-MiniLM-L6-v2)
.NET Aspire
.NET Aspire는 관찰 가능한 프로덕션 준비 앱을 빌드하기 위한 강력한 도구, 템플릿 및 패키지 집합입니다. .NET Aspire의 최신 릴리스에는 대시보드 및 리소스 수명 주기 관리가 개선되었습니다. 또한 개발 중에 더 많은 유연성을 위해 새로운 통합 및 API를 추가합니다. .NET Aspire 9는 .NET 9 및 .NET 8 앱 모두에서 작동합니다. 자세한 내용은 .NET Aspire 9에서 새로운 기능을 참조하세요.
ASP.NET Core
.NET 9로 빌드된 ASP.NET Core 앱은 기본적으로 안전하며, 미리 컴파일에 대한 지원을 확장했으며, 모니터링 및 추적이 향상되었습니다. 성능이 향상되면 더 높은 처리량과 더 빠른 시작 시간이 표시되며 메모리 사용량이 줄어듭니다. .NET 9의 ASP.NET Core에는 다음이 포함됩니다.
- 자동 지문 버전 관리로 빌드 및 게시 시간에 JavaScript 및 CSS와 같은 정적 파일의 최적화된 처리
- Blazor: 새로운 하이브리드 및 웹앱 템플릿, 구성 요소 렌더링 모드 검색, 서버 렌더링을 사용한 새로운 다시 연결 환경.
- API:
Microsoft.AspNetCore.OpenAPI
의 사용을 통해 OpenAPI 문서 생성에 대한 기본 지원과 향상된 네이티브 AOT 지원을 제공합니다. - 인증 및 권한 부여를 위한 새 API를 사용하여 보안이 향상되었습니다.
- Linux에서 신뢰할 수 있는 개발 인증서를 더 쉽게 설정하여 개발 중에 HTTPS를 사용하도록 설정합니다.
다음은 .NET 9의 기능 및 향상된 기능 중 일부에 불과합니다. 자세한 내용은 ASP.NET Core 9.0 새로운 기능참조하세요.
.NET MAUI
.NET 9에서 .NET 다중 플랫폼 앱 UI(.NET MAUI)의 초점은 향상된 성능과 안정성, 데스크톱 및 모바일 애플리케이션에 대한 심층 통합입니다. .NET MAUI에는 iOS 및 Mac Catalyst를 위한 새로운 성능 향상된 CollectionView 및 CarouselView의 구현, 기존 컨트롤 업데이트, 새로운 앱 수명 주기 이벤트, 그리고 앱 크기 및 시작 시간을 개선하기 위한 네이티브 AOT 및 트리밍 기능 향상이 포함되어 있습니다. 또한:
- Windows에서 새로운 TitleBar 데스크톱 컨트롤을 사용할 수 있습니다.
- 새 HybridWebView 컨트롤을 사용하면 ReactJS, Vue.js및 Angular와 같은 프레임워크에서 JavaScript 사용 콘텐츠를 더 쉽게 포함할 수 있습니다.
- 이제 Entry 추가 키보드 모드를 지원합니다.
- 컨트롤 처리기는 가능할 경우 컨트롤과의 연결을 자동으로 해제합니다.
- MainPage Application.CreateWindow(IActivationState) 클래스를 재정의하여 앱의 기본 페이지를 설정하기 위해 더 이상 사용되지 않습니다.
이러한 새로운 기능에 대한 자세한 내용은 .NET 9.NET MAUI의 새로운 기능을 참조하세요.
EF Core
Entity Framework Core에는 Azure Cosmos DB for NoSQL용 데이터베이스 공급자에 대한 중요한 업데이트가 포함되어 있습니다. 또한 AOT 컴파일 및 미리 컴파일된 쿼리에 대한 단계와 함께, 기타 개선 사항도 포함되어 있습니다. 자세한 내용은 EF Core 9의 새로운 기능참조하세요.
C# 13
C# 13은 .NET 9 SDK와 함께 제공되며 다음과 같은 새로운 기능을 포함합니다.
-
params
컬렉션 - 새
lock
형식 및 의미 체계 - 새 이스케이프 시퀀스 -
\e
- 메서드 그룹 자연 형식 개선
- 개체 이니셜라이저의 암시적 인덱서 액세스
- 반복기 및 비동기 메서드에서
ref
로컬 및unsafe
컨텍스트 사용 -
ref struct
형식이 인터페이스를 구현할 수 있도록 허용 - 제네릭의 형식 매개 변수에 대한 인수로 ref 구조체 형식을 허용합니다.
- 이제 부분 속성 및 인덱서가
partial
형식에서 허용됩니다. - 오버로드 확인 우선 순위를 사용하면 라이브러리 작성자가 하나의 오버로드를 다른 오버로드보다 더 나은 것으로 지정할 수 있습니다.
또한 C# 13에는 'field
지원 속성'이라는 미리 보기 기능이 추가됩니다.
자세한 내용은 C# 13의 새로운 기능참조하십시오.
F# 9
F# 9는 .NET 9 SDK와 함께 제공되며 다음과 같은 새로운 기능을 포함합니다.
- Nullable 참조 형식
- 차별 된 연합 . Is* 속성
- 부분 활성 패턴은 단위 옵션 대신 bool을 반환할 수 있습니다.
- 인수가 제공될 때 기본 속성에 확장 메서드를 사용하는 것이 좋습니다.
- 빈 본문 계산 표현식
- 해시 지시문은 문자열이 아닌 인수를 취할 수 있습니다.
- 확장된 #help 지시문으로 읽기-평가-출력 루프(REPL)에서 문서를 표시하도록 fsi를 조정합니다.
- #nowarn 오류 코드에서 FS 접두사를 지원하여 경고를 사용하지 않도록 설정하도록 허용
- 비재귀적 함수 또는 let 바인딩 값에 대한 TailCall 특성에 대한 경고
- 특성 대상 적용
- 컬렉션에 대한 임의 함수
- F# 목록 및 집합에 대한 C# 컬렉션 식 지원
- 다양한 개발자 생산성, 성능 및 도구 개선 사항
자세한 내용은 F# 9의 새로운 기능을 참조하세요.
Windows Presentation Foundation
.NET 9의 WPF는 다음과 같은 몇 가지 테마 개선 사항과 함께 최신 앱을 빌드하기 위한 향상된 지원을 제공합니다.
- Windows Fluent 테마에 대한 지원.
- Windows의 밝은 모드 및 어두운 모드에 대한 테마 지원이 추가되었습니다.
- 테마는 이제 Windows 강조 색을 지원합니다.
- 하이픈 기반 합자를 지원하도록 글꼴 렌더링이 향상되었습니다.
-
BinaryFormatter
더 이상 지원되지 않습니다.
자세한 내용은 .NET 9용 WPF의 새로운 기능을 참조하세요.
Windows Forms
.NET 9의 WinForms는 새로운 테마, 비동기 개발을 위한 향상된 기능 등에 대한 지원을 제공합니다.
-
Form
및TaskDialog
이 이제ShowDialogAsync
를 지원합니다. (실험적 기능) -
BinaryFormatter
더 이상 지원되지 않습니다. - Windows에서 지원하는 어둡게 모드로 앱을 렌더링하기 위한 실험적 지원.
-
FolderBrowserDialog
및ToolStrip
몇 가지 사소한 개선이 있었습니다. -
System.Drawing 라이브러리에는 GDI+ 효과 래핑,
ReadOnlySpan
지원 및 더 나은 interop 코드 생성을 비롯한 많은 개선 사항이 있습니다.
자세한 내용은 .NET 9용 Windows Forms의 새로운 기능참조하세요.
참고 항목
- .NET 9에 대한 비전 블로그 게시물
- ASP.NET Core 9.0의 새로운 기능
- .NET MAUI의 새로운 기능
- EF Core 새로운 기능
.NET