.NET 11 Preview 1 출시

:rocket: .NET 11 Preview 1이 출시되었습니다!

첫 프리뷰부터 분량이 상당합니다. 8개 분야 릴리스 노트를 전부 읽어보고, 특히 주목할 만한 변화를 추렸습니다.


:wrench: Runtime: CoreCLR on WebAssembly & Runtime Async

이번 릴리스에서 가장 야심찬 두 축입니다. CoreCLR이 WebAssembly SDK의 정식 타겟이 되었고, 브라우저 호스팅 환경에서 async Main, 스레드 풀, 타이머, BigInt 인터롭까지 지원합니다. WASM 타겟 RyuJIT 브링업도 시작되어, Crossgen2 통합 작업이 진행 중입니다.

Runtime Async는 CoreCLR에서 기본 활성화되었으며, NativeAOT 컴파일도 가능해졌습니다. 컴파일러 레벨 실험은 <Features>$(Features);runtime-async=on</Features> 설정이 필요하지만, 런타임 인프라는 이미 준비된 상태입니다.

:brain: C# 15: Collection Expression Arguments

컬렉션 표현식에 with() 구문으로 생성자 인수를 전달할 수 있게 되었습니다.

List<string> names = [with(capacity: values.Count * 2), .. values];

용량 사전 할당, 정렬 비교자 지정 등 그동안 컬렉션 표현식만으로는 불가능했던 시나리오를 해결합니다. 진행 중인 딕셔너리 표현식과도 통합 예정입니다.

:books: Libraries: Zstandard 네이티브 압축 + BFloat16

ZstandardStream/ZstandardEncoder/ZstandardDecoder가 BCL에 추가되었습니다. 벤치마크 기준 Brotli/Deflate 대비 Optimal 레벨에서 2~7배 빠른 압축, Fastest 레벨에서 2~14배 빠른 해제입니다. HttpClient 자동 압축 해제에도 DecompressionMethods.Zstandard가 추가되었습니다.

AI/ML 워크로드 핵심인 BFloat16이 System.Numerics에 추가되었습니다. float 동일 8비트 지수부에 16비트 축소 형식이며, INumber 등 모든 수치 인터페이스 구현, Vector64~512 타입까지 지원합니다.

:high_voltage: Libraries: 성능 개선 하이라이트

  • Guid.NewGuid() 리눅스에서 ~10배 빨라짐 (614ns → 61ns, getrandom() 시스콜 전환 + 배치 캐싱)

  • TimeZone 변환 2.4~4.7배 빨라짐 (연도별 전환 캐시 도입)

  • Directory.GetFiles 윈도우에서 NTFS B-tree 사전 필터링으로 패턴 매칭 대폭 개선 (14만 파일 중 4개 매칭 시 전체 스캔 → 즉시 반환)

  • BigInteger.Multiply에 Toom-Cook 3-way 알고리즘 적용

:mobile_phone: .NET MAUI: Android CoreCLR 기본 전환

Android Release 빌드에서 Mono 대신 CoreCLR이 기본 런타임이 됩니다. 시작 시간 단축과 나머지 .NET과의 호환성 향상이 핵심입니다. XAML Source Generation도 기본 활성화되어 빌드·런타임 성능이 모두 개선됩니다.

dotnet run에 Spectre.Console 기반 인터랙티브 TFM/디바이스 선택이 추가된 것도 모바일 개발 워크플로우에서 체감이 클 것입니다.

:globe_with_meridians: ASP.NET Core & Blazor

Blazor 쪽 실용적 개선이 눈에 띕니다.

  • EnvironmentBoundary: MVC 환경 태그 헬퍼의 Blazor 버전, 서버/WASM 모두 지원

  • Label/DisplayName 컴포넌트: [Display]/[DisplayName] 어트리뷰트 자동 추출, MVC DisplayNameFor 패리티 확보

  • IHostedService Blazor WebAssembly 지원: 브라우저에서 백그라운드 서비스 실행 가능

  • dotnet watch에서 프로젝트/패키지 참조 변경 시 앱 재시작 없이 Hot Reload

:wrapped_gift: EF Core 11

  • TPT/TPC 상속 엔터티에서 복합 형식과 JSON 열 사용 가능 (오래 기다린 제한 해제)

  • dotnet ef database update --add로 마이그레이션 생성+적용 한 단계 처리 (Roslyn 런타임 컴파일, .NET Aspire/컨테이너 시나리오 대응)

  • Cosmos DB 프로바이더: 트랜잭션 일괄 처리 기본 활성화, 대량 실행 지원, 세션 토큰 관리 API

:hammer_and_wrench: SDK & MSBuild

  • dotnet test에 위치 인수 지원 (dotnet test MyProject.csproj)

  • 새 코드 분석기: CA2026 (JsonElement.Parse 권장), CA2027 (Task.WhenAny 내 비취소 Task.Delay 감지), CA1876 (foreach 내 AsParallel 오용 감지) 등

  • MSBuild 내부 성능 개선 다수 (ItemDictionary 캐시 친화적 구조 전환, RAR 로깅 버퍼링 등)


첫 프리뷰치고는 CoreCLR의 WebAssembly 진출, Runtime Async 기본 활성화, Android CoreCLR 전환 등 아키텍처 레벨의 큰 결정들이 눈에 띕니다. 올해 11월 GA를 향한 방향성이 분명하게 잡힌 느낌입니다.

앞서 빠르게 소식을 공유해주신 @Bluehill 님께 감사드립니다. (참고)

5개의 좋아요

우오 엄청나네요

1개의 좋아요