Bagikan melalui


Apa yang baru dalam .NET MAUI untuk .NET 8

Fokus .NET MAUI di .NET 8 adalah kualitas. Di .NET 8, 1618 permintaan pull digabungkan yang menutup 689 masalah. Ini termasuk perubahan dari tim MAUI .NET serta komunitas .NET MAUI. Perubahan ini akan mengakibatkan peningkatan kualitas yang signifikan di .NET 8.

Penting

Karena bekerja dengan dependensi eksternal yang mendasarinya, seperti Xcode atau Android SDK Tools, kebijakan dukungan .NET Multi-platform App UI (.NET MAUI) berbeda dari kebijakan dukungan .NET dan .NET Core. Untuk informasi selengkapnya, lihat Kebijakan dukungan .NET MAUI.

Di .NET 8, .NET MAUI dikirim sebagai beban kerja .NET dan beberapa paket NuGet. Keuntungan dari pendekatan ini adalah memungkinkan Anda untuk dengan mudah menyematkan proyek Anda ke versi tertentu, sekaligus memungkinkan Anda untuk dengan mudah mempratinjau build yang belum dilepas atau eksperimental. Saat Anda membuat proyek .NET MAUI baru, paket NuGet yang diperlukan secara otomatis ditambahkan ke proyek.

Artikel ini mencantumkan fitur baru .NET MAUI untuk .NET 8 dan menyediakan tautan ke informasi yang lebih rinci tentang masing-masing.

Untuk informasi tentang apa yang baru di .NET 8, lihat Apa yang baru di .NET 8.

Fungsionalitas baru

Meskipun fokus rilis .NET MAUI ini adalah kualitas, ada juga beberapa fungsionalitas baru yang memungkinkan skenario baru di aplikasi Anda.

Kontrol

Desktop

Pengenal gerakan

  • Navigasi shell mendapatkan kelebihan beban yang memungkinkan Anda meneruskan data navigasi penggunaan tunggal, yang dibersihkan GoToAsync setelah navigasi terjadi, sebagai ShellNavigationQueryParameters objek. Untuk informasi selengkapnya, lihat Meneruskan data navigasi berbasis objek penggunaan tunggal.

Integrasi platform

  • Kelas Geolocation dapat mendengarkan perubahan lokasi saat aplikasi berada di latar depan. Untuk informasi selengkapnya, lihat Mendengarkan perubahan lokasi.
  • FlashlightIsSupportedAsync mendapatkan metode yang menentukan apakah senter tersedia pada perangkat. Untuk informasi selengkapnya, lihat Senter.
  • SensorSpeed interval telah disatukan di semua platform. Untuk informasi selengkapnya, lihat Mengakses sensor perangkat.
  • Kelas ini Permissions mendapatkan Permissions.Bluetooth izin, yang merupakan izin Android 12 untuk mencari perangkat Bluetooth, membuat perangkat saat ini dapat ditemukan ke perangkat Bluetooth lainnya, dan berkomunikasi dengan perangkat Bluetooth yang sudah dipasangkan. Untuk informasi selengkapnya, lihat Izin.
  • Kelas ini Permissions mendapatkan Permissions.NearbyWifiDevices izin, yang merupakan izin Android 13 untuk mengakses perangkat WiFi terdekat. Untuk informasi selengkapnya, lihat Izin.

XAML

Pemecahan Masalah

Lain-lain

  • Manajemen jendela dapat dipisahkan dari App kelas . Untuk informasi selengkapnya, lihat Memisahkan manajemen jendela dari kelas Aplikasi.
  • Beberapa font sistem dapat dengan mudah digunakan di aplikasi Android. Untuk informasi selengkapnya, lihat Menggunakan font.
  • Di iOS, MauiUIApplicationDelegate mendapatkan metode yang dapat ditimpa atau dikonsumsi PerformFetch melalui iOSLifecycle.PerformFetch delegasi. Untuk informasi selengkapnya, lihat peristiwa siklus hidup platform iOS dan Mac Catalyst.

Penghentian dan penghapusan jenis

Jenis atau anggota berikut tidak digunakan lagi:

Jenis atau anggota berikut telah dihapus:

Perubahan perilaku

Perilaku berikut telah berubah dari rilis sebelumnya:

  • Penggunaan Map kontrol dari XAML sekarang memerlukan deklarasi namespace berikut xmlns : xmlns:maps="http://schemas.microsoft.com/dotnet/2021/maui/maps".
  • Penembolokan gambar dinonaktifkan di Android saat memuat gambar dari streaming dengan ImageSource.FromStream metode . Hal ini disebabkan oleh kurangnya data untuk membuat kunci cache yang wajar.
  • Di iOS, halaman secara otomatis menggulir saat keyboard input lunak akan mencakup bidang entri teks, sehingga bidang berada di atas keyboard input lunak. Metode KeyboardAutoManagerScroll.Disconnect ini, di Microsoft.Maui.Platform namespace, dapat dipanggil untuk menonaktifkan perilaku default ini. Metode KeyboardAutoManagerScroll.Connect ini dapat dipanggil untuk mengaktifkan kembali perilaku setelah dinonaktifkan.
  • Bagaimana warna tab diatur dalam aplikasi Shell telah berubah di beberapa platform. Untuk informasi selengkapnya, lihat Tampilan tab.
  • Tidak diharuskan menentukan nilai untuk $(ApplicationIdGuid) properti build dalam file proyek aplikasi Anda. Ini karena aplikasi Windows .NET MAUI tidak lagi memerlukan GUID sebagai ID aplikasi, dan sebaliknya menggunakan nilai $(ApplicationId) properti build sebagai ID aplikasi. Oleh karena itu, ID aplikasi format domain terbalik yang sama sekarang digunakan di semua platform, seperti com.mycompany.myapp.
  • Aplikasi .NET MAUI Mac Catalyst tidak lagi dibatasi hingga 50 item menu di bilah menu.
  • Metode ini PlatformImage.FromStream , di Microsoft.Maui.Graphics namespace layanan, sekarang dapat digunakan untuk memuat gambar di Windows alih-alih harus menggunakan W2DImageLoadingService kelas .
  • Di Android, animasi menghormati pengaturan animasi sistem. Untuk informasi selengkapnya, lihat Animasi dasar.

Performa

Ada banyak perubahan performa di .NET MAUI 8. Perubahan ini dapat diklasifikasikan ke dalam lima area:

Untuk informasi selengkapnya, lihat Peningkatan Performa .NET 8 di .NET MAUI.

Tingkatkan dari .NET 7 ke .NET 8

Untuk meningkatkan proyek Anda dari .NET 7 ke .NET 8, instal .NET 8 dan beban kerja .NET MAUI dengan Visual Studio 17.8+, atau dengan alat penginstal mandiri dan dotnet workload install maui perintah .

Kemudian, buka file .csproj Anda dan ubah Monikers Kerangka Kerja Target (TFM) dari 7 menjadi 8. Jika Anda menggunakan TFM seperti net7.0-ios13.6 pastikan untuk mencocokkan versi platform atau menghapusnya sepenuhnya. Contoh berikut menunjukkan TFM untuk proyek .NET 7:

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

Contoh berikut menunjukkan TFM untuk proyek .NET 8:

<TargetFrameworks>net8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-tizen</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net8.0-windows10.0.19041.0</TargetFrameworks>

Referensi paket eksplisit juga harus ditambahkan ke file .csproj Anda untuk paket NuGet .NET MAUI berikut:

<ItemGroup>
    <PackageReference Include="Microsoft.Maui.Controls" Version="$(MauiVersion)" />
    <PackageReference Include="Microsoft.Maui.Controls.Compatibility" Version="$(MauiVersion)" />
</ItemGroup>

Variabel $(MauiVersion) dirujuk dari versi .NET MAUI yang telah Anda instal. Anda dapat mengambil alih ini dengan menambahkan $(MauiVersion) properti build ke file .csproj Anda:

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFrameworks>net8.0-android;net8.0-ios;net8.0-maccatalyst</TargetFrameworks>
        <UseMaui>True</UseMaui>
        <MauiVersion>8.0.3</MauiVersion>
    </PropertyGroup>
</Project>

Ini dapat berguna saat menggunakan build ad-hoc dari umpan malam atau build yang diunduh dari permintaan pull.

Selain itu, $(ApplicationIdGuid) properti build dapat dihapus dari file .csproj Anda di .NET 8. Untuk informasi selengkapnya, lihat Perubahan perilaku.

Sebelum membuat aplikasi yang ditingkatkan untuk pertama kalinya, hapus bin folder dan obj .

Catatan

Templat proyek untuk aplikasi .NET MAUI di .NET 8 memungkinkan konteks nullable untuk proyek dengan $(Nullable) properti build. Untuk informasi selengkapnya, lihat Nullable.

Lihat juga