.NET 8 미리보기의 새로운 기능 [WIP]

.NET 8의 미리보기 작업 진행중(WIP)인 내용을 확인할 수 있습니다.

2개의 좋아요

What’s new in .NET 8 Preview 1 · Issue #8133 · dotnet/core · GitHub

2개의 좋아요

What’s new in .NET 8 Preview 2 [WIP] · Issue #8134 · dotnet/core · GitHub

  • System.Reflection: 함수 포인터에 대한 인트로스펙션 지원
  • System.ComponentModel.DataAnnotations 확장 기능
2개의 좋아요

What’s new in .NET 8 Preview 3 [WIP] · Issue #8135 · dotnet/core (github.com)

2개의 좋아요
  • dotnet build의 새로운 터미널 로거
    scl-good
  • 간소화된 출력 경로 업데이트
    • .artifactsartifacts로 변경
    • Directory.Build.prop 생성시 추론 루트 폴터 위치가 변경됨
  • GC: 즉시 메모리 제한 기능
  • 템플릿 엔진: Nuget.org의 패키지를 통한 안전한 경험 제공
  • IUtf8SpanFormattable 도입
  • TimeProvider 추상 클래스의 도입으로 단위 테스트 시 시간 모의가 가능해짐
  • AVX-512 지원
  • Native AOT 개선
    • dotnet new console --aot로 빠르게 AOT 프로젝트 시작
    • Hello World 용량 1.20 MB → 1.07 MB
  • 리눅스 배포판 지원
  • NuGet: 보안 취약성에 대한 패키지 종속성 검사
  • Codegen
    • 연속 레지스터 지원 : ProbabilisticMap의 IndexOf에서 VectorTableLookup의 성능이 30% 개선
    • 최적화된 ThreadStatic 필드 엑세스 : 인라인 처리로 10배 성능 향상
  • System.Text.Json: 읽기 전용 멤버 채우기
6개의 좋아요
1개의 좋아요
  • DI에 친화적인 메트릭 API 지원
  • SourceLink는 이제 .NET SDK의 일부입니다.
  • 동적 PGO가 기본적으로 활성화됩니다.
  • ASP.NET Alpine 기반 도커 이미지 제공
4개의 좋아요
  • DI에 친화적인 메트릭 API 지원

이 부분이요…
커뮤니케이션툴킷 이나 프리즘 을 참조 해야 서비스 받을수 있는거 아니었나요 ?
.NET8 에서는 참조 없이 지원 되는 건가요 ?

1개의 좋아요

아직까지는 미리보기가 릴리스 되지 않아 저도 잘 모릅니다 ^^;

1개의 좋아요
  • SHA-3 지원
  • WASM HybridGlobalization 모드
  • LoggerMessageAttribute 생성자 오버로드 확장
  • 메트릭 API 변경 : InstrumentRecorder에서 Microsoft.Extensions.Telemetry.Testing MetricCollector로 변경
  • 옵션 유효성 검사 소스 생성기
  • COM Interop 소스 생성
  • 스트림 기반 ZipFile CreateFromDirectory 및 ExtractToDirectory 메소드 오버로드
  • Configuration 바인딩 소스 생성기 개선 : 문제 수정, 알려진 문제
  • CodeGen 관련 최적화
  • NatvieAOT를 옵트인으로 iOS 계통의 플랫폼 타켓팅 지원
  • HTTPS 프록시 지원
2개의 좋아요
  • 마지막 미리보기인 .NET 8 미리보기 7입니다. 이후 9월에 RC1, 10월에 RC2에 이어 11월에 정식 릴리스가 출시 예정입니다.
  • iOS/tvOS/MacCatalyst 플랫폼의 HybridGlobalization 모드
  • HTTPS 프록시 지원
  • System.Text.Json 개선
    • JsonSourceGenerationOptionsAttribute으로 컴파일 시점에 직렬화 구성 지정 가능
    • Memory<T> / ReadOnlyMemory<T> 기본 지원
    • Half, Int128, UInt128 숫자 유형 기본 지원
    • JsonContructorJsonInclude로 비공개 멤버 확장(사용 가능)
    • IJsonTypeInfoResolver.WithAddedModifier 확장 메소드
    • JsonNode 추가 기능
  • CodeGen
    • 구조적 물리 프로모션 개선으로 foreach를 사용하는 5개 이상의 필드를 가진 Dictionary등에서 미리보기 7에서 물리적 승격이 적용되어 다음과 같은 벤치마크로 성능향상을 확인할 수 있음
private readonly Dictionary<int, int> _dictionary = new(Enumerable.Range(0, 10000).Select(i => KeyValuePair.Create(i, i)));

[Benchmark]
public int SumDict()
{
    int sum = 0;
    foreach ((int key, int value) in _dictionary)
    {
        sum += key;
        sum += value;
    }
    return sum;
}

private readonly List<(int, int)> _list = Enumerable.Range(0, 10000).Select(i => (i, i)).ToList();

[Benchmark]
public int SumList()
{
    int sum = 0;
    foreach ((int key, int value) in _list)
    {
        sum += key;
        sum += value;
    }
    return sum;
}
Method Runtime Mean Error StdDev Median Ratio RatioSD
SumDict .NET 7.0 24.936 us 0.4918 us 0.8613 us 25.350 us 1.00 0.00
SumDict .NET 8.0 preview 7 11.027 us 0.2180 us 0.4149 us 11.249 us 0.44 0.01
SumList .NET 7.0 15.847 us 0.3044 us 0.7582 us 15.794 us 1.00 0.00
SumList .NET 8.0 preview 7 6.038 us 0.1197 us 0.2033 us 6.130 us 0.39 0.02
  • WPF에서 OpenFolderDialog 사용 가능
  • Microsoft.Extensions.Hosting.IHostedLifecycleService
    • 더 많은 호스팅된 서비스 단계 사용 가능
  • Microsoft.Extensions.DependencyInjection의 키 서비스 지원
  • 새로운 ASP.NET Docker 이미지인 컴포지트 이미지 출시
4개의 좋아요
  • WASM의 WasmStripILAfterAOT 모드로 약간(1.7% ~ 4.2%)의 사이즈 감소
  • 비 윈도우 운영체제에서 윈도우 앱 교차 빌드
  • System.Text.Json 개선
    • HttpClient에 GetFromJsonAsAsyncEnumerable() 확장 메서드 추가
    • trim에 안전한 소스 생성 계약을 이용해서 JsonContent 인스턴스 생성
    • 스트림에서 JsonNode를 만드는 ParseAsync() 추가
  • SDK: 컨테이너 게시에서 Auzre 관리 ID를 지원
  • AndroidStripILAfterAOT 모드 추가
  • WPF: RDP 하드웨어 가속 지원
2개의 좋아요
  • MSBuild: 스크립트나 도구에 더 쉽게 통합할 수 있는 새로운 기능
  • 컨테이너: tar.gz 아카이브에 게시
  • 텐서 프리미티브 : AI & 머신러닝에서 필요로 하는 수학 함수를 System.Number.Tensors로 제공
5개의 좋아요