.NET 7용 .NET MAUI의 새로운 기능

.NET 7은 .NET 6의 후속작으로 통합되고, 현대적이고, 단순하며 , 빠른 통합에 중점을 둡니다. Xcode 또는 Android SDK Tools와 같은 기본 외부 종속성으로 인해 .NET 다중 플랫폼 앱 UI(.NET MAUI) 지원 정책은 .NET 및 .NET Core 지원 정책과 다릅니다. 자세한 내용은 .NET MAUI 지원 정책을 참조하세요.

이 문서에서는 .NET 7용 .NET MAUI의 새로운 기능을 나열하고 각각에 대한 자세한 정보에 대한 링크를 제공합니다.

.NET 7의 새로운 기능과 관련하여 자세한 내용은 .NET 7의 새로운 기능입니다.

새로운 기능

.NET 7용 .NET MAUI는 주요 피드백 문제를 해결하고 다음과 같은 새로운 기능을 소개합니다.

  • 컨트롤은 Map 지도를 표시하고 주석을 추가하기 위한 플랫폼 간 보기입니다. 컨트롤은 Map 각 플랫폼에서 네이티브 맵 컨트롤을 사용하며 Microsoft.Maui.Controls.지도 NuGet 패키지. 자세한 내용은 맵을 참조하세요.
  • 컨트롤은 TwoPaneView 사용 가능한 공간에서 콘텐츠를 나란히 배치하거나 위에서 아래로 배치하는 두 개의 보기를 제공하는 접이식 디바이스에 대한 컨테이너 컨트롤입니다. 이 컨트롤은 Microsoft.Maui.Controls.Foldable NuGet 패키지에서 제공됩니다.
  • 클래스는 PointerGestureRecognizer 포인터 제스처 인식을 수행하고 마우스 포인터가 보기 내에서 들어오고, 나가고, 이동할 때를 감지합니다. 자세한 내용은 포인터 제스처 인식을 참조하세요. .NET MAUI는 마우스 커서가 마우스로 가리키면 보기의 시각적 모양을 변경할 수 있는 시각적 상태도 정의 PointerOver 합니다. 자세한 내용은 시각적 상태를 참조 하세요.
  • 클래스는 Window 추가 속성을 정의하고 데스크톱 플랫폼에서 창을 배치하고 크기를 조정하도록 합니다. 자세한 내용은 .NET MAUI Windows를 참조 하세요.
  • 사용자가 뷰에 포인터를 놓으면 보기에 대한 도구 설명을 표시할 수 있습니다. 자세한 내용은 표시 도구 설명을 참조 하세요.
  • Mac Catalyst 및 Windows에서 Element파생되는 모든 컨트롤에 상황에 맞는 메뉴를 추가할 수 있습니다. 자세한 내용은 상황에 맞는 메뉴 표시를 참조 하세요.
  • 메뉴 모음에는 메뉴의 항목을 구분하는 가로줄인 구분 기호가 포함될 수 있습니다. 자세한 내용은 메뉴 모음 표시를 참조 하세요.
  • 발생하는 iOS 수명 주기 이벤트에 대한 응답으로 추가 .NET MAUI 대리자가 호출됩니다. 자세한 내용은 앱 수명 주기를 참조 하세요.
  • iOS 및 Mac Catalyst의 기본 네이 WebView 티브 컨트롤은 개체로 WKWebViewConfiguration 구성할 수 있습니다. 자세한 내용은 iOS 및 Mac Catalyst에서 네이티브 WebView 구성을 참조하세요. iOS/Mac의 WebView 구성

또한 MessagingCenter CommunityToolkit.Mvvm NuGet 패키지에서 더 이상 사용되지 않으며 대체 WeakReferenceMessenger 되었습니다.

성능

성능은 .NET 7에서 .NET MAUI의 주요 초점입니다.

  • Android에서 시작 성능이 향상되었습니다.
  • iOS에서 애플리케이션 크기가 감소했습니다.
  • 뷰에 대한 렌더링 경로가 최적화되었습니다.
  • 에서 스크롤 CollectionView의 부드러움에 영향을 주는 많은 문제가 해결되었습니다.

자세한 내용은 .NET MAUI의 .NET 7 성능 향상을 참조 하세요.

.NET 6에서 업그레이드

프로젝트를 .NET 6에서 .NET 7로 업그레이드하려면 .csproj 파일을 열고 TFM(대상 프레임워크 모니커)을 6에서 7로 변경합니다. 다음 예제에서는 .NET 6 프로젝트의 TFM을 보여 줍니다.

<TargetFrameworks>net6.0-ios;net6.0-android;net6.0-maccatalyst;net6.0-tizen</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows')) and '$(MSBuildRuntimeType)' == 'Full'">$(TargetFrameworks);net6.0-windows10.0.19041</TargetFrameworks>

다음 예제에서는 .NET 7 프로젝트의 TFM을 보여 줍니다.

<TargetFrameworks>net7.0-ios;net7.0-android;net7.0-maccatalyst;net7.0-tizen</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows')) and '$(MSBuildRuntimeType)' == 'Full'">$(TargetFrameworks);net7.0-windows10.0.19041</TargetFrameworks>

참고 항목