.NET Community Toolkit 8.4 출시

.NET Community Toolkit 8.4 릴리스 주요 기능 및 변경 사항

.NET Community Toolkit의 8.4 릴리스가 공식 출시되었습니다! 이번 버전은 MVVM Toolkit 생성기에서의 부분 속성 지원, 새로운 분석기, 버그 수정 및 개선 사항 등을 포함하고 있습니다. Microsoft 팀과 커뮤니티 개발자들로부터 받은 피드백에 깊이 감사드립니다.

주요 변경 사항

1. MVVM Toolkit의 부분 속성 지원 :tada:

  • 부분 속성 지원은 MVVM Toolkit 소스 생성기에서 가장 인기 있는 기능 요청 중 하나로, 이제 .NET 9 SDK의 새로운 C# 언어 기능 덕분에 가능해졌습니다.
  • 주요 개선 사항:
    • 속성 선언이 C# 언어와 제대로 통합되어, 사용자 정의 접근 수정자 및 속성, 필드, 접근자에 대한 사용자 정의 속성 주석을 사용할 수 있습니다.
    • 새로운, 봉인된, 재정의된, 필수와 같은 수정자 지원.
    • 널 가능성 주석이 개선되어 속성 초기화자 및 생성자를 올바르게 처리합니다.
    • [ObservableProperty]가 UWP 및 WinUI 3에서 완전히 AOT 안전하게 됩니다.
    • Visual Studio의 업데이트에서 CTRL + 클릭(또는 F12)로 부분 속성 선언과 구현 간의 탐색이 용이해집니다.
    • 새로운 코드 수정기가 추가되어, [ObservableProperty]를 필드에서 부분 속성으로 자동으로 변환할 수 있습니다.

2. 새로운 MVVM Toolkit 분석기 :bullseye:

  • MVVM Toolkit의 진단 분석기 세트가 확장되었습니다. 새로운 분석기는 다음과 같은 오류 및 경고를 포함합니다:
    • MVVMTK0041: [ObservableProperty]를 사용할 때 C# 언어 버전을 'preview’로 설정해야 함.
    • MVVMTK0042: [ObservableProperty]를 사용하는 필드를 부분 속성으로 변환하는 것이 권장됨.
    • MVVMTK0045: [ObservableProperty]를 사용하는 필드는 WinRT 시나리오에서 AOT 호환성이 없음.
    • MVVMTK0051: [ObservableProperty]를 부분 속성에서 사용하기 위해 'LangVersion’을 'preview’로 설정해야 함.

3. 기타 변경 사항 및 개선 사항 :white_check_mark:

  • Windows SDK 버전 검증을 위한 .targets 추가.
  • 속성 접근자에 대한 속성 전달 허용.
  • 사용자 정의 속성 대상에 대한 억제 수정.
  • 필드에서 [ObservableProperty]를 사용할 때 ‘required’ 필드 지원.
  • 모든 분석 프로젝트에 .pdb 파일 포함.
  • ReadOnlySequence에 대한 Stream 추가.

시작하기

  • 모든 소스 코드는 GitHub 리포지토리에서 확인할 수 있으며, MS Learn에서 일부 문서와 .NET API 브라우저 웹사이트에서 완전한 API 참조를 찾을 수 있습니다. 기여하고 싶으시면 이슈를 열거나 경험을 공유해 주세요!
5개의 좋아요

CommunityToolkit.HighPerformance 도움을 받는데 지속적으로 관리되고 있다니 마음이 놓입니다.

2개의 좋아요

제대로 알아보지도 않고 MVVMTK0045 경고메시지를 없애려고 [ObservableProperty]를 지우고 직접 구현을 했었는데, 위 글보고 찾아보니 데스크탑용 WinUI3 앱은 AOT를 사용하지 않고, JIT를 사용한다고 나오네요. 모바일 같은 환경 아니라면 경고 무시하고 사용해도 될것 같습니다.

아래 문장을 보면, AOT에 안전하다는 것 같은데 왜 경고를 날려주는지 모르겠네요. partial을 메서드가 아닌 변수에는 못 써서 그런건지…

  • Using partial properties also makes [ObservableProperty] fully AOT safe for UWP and WinUI 3!
2개의 좋아요