Udostępnij za pośrednictwem


Co nowego w programie .NET MAUI dla platformy .NET 9

Celem interfejsu użytkownika aplikacji wieloplatformowej platformy .NET (.NET MAUI) na platformie .NET 9 jest zwiększenie jakości produktu. Obejmuje to rozszerzanie zakresu testów, kompleksowe testowanie scenariuszy i naprawianie usterek. Aby uzyskać więcej informacji na temat ulepszeń jakości produktu w programie .NET MAUI 9 (wersja zapoznawcza), zobacz następujące informacje o wersji:

Ważne

Ze względu na pracę z zależnościami zewnętrznymi, takimi jak narzędzia Xcode lub Android SDK, zasady obsługi programu .NET MAUI różnią się od zasad obsługi platformy .NET i platformy .NET Core. Aby uzyskać więcej informacji, zobacz Zasady obsługi programu .NET MAUI.

Na platformie .NET 9 program .NET MAUI jest dostarczany jako obciążenie platformy .NET i wiele pakietów NuGet. Zaletą tego podejścia jest możliwość łatwego przypinania projektów do określonych wersji, a także umożliwia łatwe wyświetlanie podglądu nieopublikowanych lub eksperymentalnych kompilacji. Podczas tworzenia nowego projektu .NET MAUI wymagane pakiety NuGet są automatycznie dodawane do projektu.

Blazor Hybrid

Program .NET MAUI 9 (wersja zapoznawcza 5) dodaje szablon projektu .NET MAUI Blazor Hybrid and Web App do programu Visual Studio, który tworzy rozwiązanie z aplikacją hybrydową platformy .NET MAUI Blazor z aplikacją internetową Platformy Blazor, która współużytkuje wspólny kod w projekcie biblioteki klas Razor.

Szablon można również użyć z pliku dotnew new:

dotnet new maui-blazor-web -n AllTheTargets

Ulepszenia kontroli

Program .NET MAUI na platformie .NET 9 zawiera również ulepszenia kontroli.

Obsługa wprowadzania klawiatury miękkiej

Program .NET MAUI 9 (wersja zapoznawcza 4) dodaje nową obsługę wprowadzania nietrwałej klawiatury dla elementów Password, Datei Time. Można je włączyć i Editor Entry kontrolki:

<Entry Keyboard="Date" />

Android

Platforma .NET dla systemu Android 9 (wersja zapoznawcza), która dodaje obsługę interfejsu API 35, obejmuje pracę w celu skrócenia czasu kompilacji oraz zwiększenia możliwości przycinania aplikacji w celu zmniejszenia rozmiaru i zwiększenia wydajności. Aby uzyskać więcej informacji na temat platformy .NET dla systemu Android 9 (wersja zapoznawcza), zobacz następujące informacje o wersji:

Pakiety zasobów

Platforma .NET dla systemu Android 9 (wersja zapoznawcza 3) wprowadza możliwość umieszczania zasobów w osobnym pakiecie nazywanym pakietem zawartości. Umożliwia to przekazywanie gier i aplikacji, które zwykle byłyby większe niż podstawowy rozmiar pakietu dozwolony przez Google Play. Umieszczając te zasoby w osobnym pakiecie, można przekazać pakiet o rozmiarze do 2 Gb, a nie podstawowy rozmiar pakietu o rozmiarze 200 Mb.

Ważne

Pakiety zasobów mogą zawierać tylko zasoby. W przypadku platformy .NET dla systemu Android oznacza to elementy, które mają akcję kompilacji AndroidAsset .

Aplikacje MAUI platformy .NET definiują zasoby za pośrednictwem akcji kompilacji MauiAsset . Pakiet zasobów można określić za pomocą atrybutu AssetPack :

<MauiAsset
    Include="Resources\Raw\**"
    LogicalName="%(RecursiveDir)%(Filename)%(Extension)"
    AssetPack="myassetpack" />

Uwaga

Dodatkowe metadane będą ignorowane przez inne platformy.

Jeśli masz określone elementy, które chcesz umieścić w pakiecie zasobów, możesz użyć atrybutu Update AssetPack do zdefiniowania metadanych:

<MauiAsset Update="Resources\Raw\MyLargeAsset.txt" AssetPack="myassetpack" />

Pakiety zasobów mogą mieć różne opcje dostarczania, które kontrolują, kiedy zasoby zostaną zainstalowane na urządzeniu:

  • Instalowane pakiety czasowe są instalowane w tym samym czasie co aplikacja. Ten typ pakietu może mieć rozmiar do 1 Gb, ale można mieć tylko jeden z nich. Ten typ dostarczania jest określony z metadanymi InstallTime .
  • Szybkie pakiety follow zostaną zainstalowane w pewnym momencie wkrótce po zakończeniu instalowania aplikacji. Aplikacja będzie mogła zostać uruchomiona, gdy ten typ pakietu jest instalowany, więc przed próbą użycia zasobów należy sprawdzić, czy instalacja została zakończona. Ten rodzaj pakietu zasobów może mieć rozmiar do 512 Mb. Ten typ dostarczania jest określony z metadanymi FastFollow .
  • Pakiety na żądanie nigdy nie zostaną pobrane na urządzenie, chyba że aplikacja zażąda jej specjalnie. Całkowity rozmiar wszystkich pakietów zasobów nie może przekraczać 2 Gb i może być maksymalnie 50 oddzielnych pakietów zasobów. Ten typ dostarczania jest określony z metadanymi OnDemand .

W aplikacjach MAUI platformy .NET typ dostarczania można określić za pomocą atrybutu DeliveryType na :MauiAsset

<MauiAsset Update="Resources\Raw\myvideo.mp4" AssetPack="myassetpack" DeliveryType="FastFollow" />

Aby uzyskać więcej informacji na temat pakietów zasobów systemu Android, zobacz Pakiety zasobów systemu Android.

Obsługa wersji beta systemu Android 15

Platforma .NET dla systemu Android (wersja zapoznawcza 4) dodaje powiązania platformy .NET dla pierwszej wersji beta systemu Android 15 (API 35) o nazwie "Vanilla Ice Cream". Aby utworzyć dla tych interfejsów API, zaktualizuj platformę docelową projektu:

<TargetFramework>net9.0-android35</TargetFramework>

Platforma .NET dla systemu Android (wersja zapoznawcza 5) rozszerza te powiązania na system Android 15 beta 2 z ulepszeniami wydajności uruchamiania i rozmiaru aplikacji.

Metody marshalled maszyny wirtualnej LLVM

Metody maszyny wirtualnej niskiego poziomu (LLVM) są teraz domyślnie włączone na platformie .NET dla systemu Android Preview 5 w aplikacjach innych niż Blazor. Spowodowało to wzrost wydajności aplikacji testowej o około 10%.

Metody marshalled LLVM można wyłączyć w pliku projektu (csproj):

<PropertyGroup Condition="'$(TargetFramework)' == 'net9.0-android'">
    <AndroidEnableLLVM>false</AndroidEnableLLVM>
    <AndroidEnableLLVMOptimizations>false</AndroidEnableLLVMOptimizations>
</PropertyGroup>

Ulepszenia przycinania

Platforma .NET dla systemu Android (wersja zapoznawcza 5) zawiera poprawki dotyczące korzystania z pełnego przycinania w celu zmniejszenia rozmiaru aplikacji. Pełne przycinanie jest zwykle włączone tylko dla kompilacji wydań aplikacji i można je skonfigurować w pliku projektu (csproj):

<PropertyGroup Condition="'$(Configuration)' == 'Release' And '$(TargetFramework)' == 'net9.0-android'">
    <TrimMode>Full</TrimMode>
</PropertyGroup>

iOS

Program .NET 9 (wersja zapoznawcza) w systemach iOS, tvOS, Mac Catalyst i macOS używa programu Xcode 15.2 dla następujących wersji platformy:

  • iOS: 17.2
  • tvOS: 17.2
  • Mac Catalyst: 17.2
  • macOS: 14.2

Aby uzyskać więcej informacji na temat platformy .NET 9 (wersja zapoznawcza) w systemach iOS, tvOS, Mac Catalyst i macOS, zobacz następujące informacje o wersji:

Powiązania

Platforma .NET dla systemu iOS 9 (wersja zapoznawcza 3) wprowadza możliwość obsługi wielu wersji docelowych platformy .NET dla powiązań systemu iOS. Na przykład projekt biblioteki może wymagać skompilowania dwóch odrębnych wersji systemu iOS:

<TargetFrameworks>net9.0-ios17.0;net9.0-ios17.2</TargetFrameworks>

Spowoduje to wygenerowanie dwóch bibliotek, po jednym przy użyciu powiązań systemu iOS 17.0 i jednej przy użyciu powiązań systemu iOS 17.2.

Ważne

Projekt aplikacji powinien zawsze być przeznaczony dla najnowszego zestawu SDK systemu iOS.

Natywna AOT dla systemów iOS i Mac Catalyst

Na platformie .NET dla systemu iOS 9 (wersja zapoznawcza 4) natywna kompilacja przed czasem (AOT) dla systemów iOS i Mac Catalyst korzysta z pełnego przycinania w celu zmniejszenia rozmiaru pakietu aplikacji i wydajności uruchamiania. Jest to funkcja publikowania, której można użyć, gdy wszystko będzie gotowe do wysłania aplikacji.

Ważne

Aplikacja i jej zależności muszą być w pełni przycinane, aby można było korzystać z tej funkcji.

Zobacz też