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:
- .NET MAUI 9 (wersja zapoznawcza 6)
- .NET MAUI 9 (wersja zapoznawcza 5)
- .NET MAUI 9 (wersja zapoznawcza 4)
- .NET MAUI 9 (wersja zapoznawcza 3)
- .NET MAUI 9 (wersja zapoznawcza 2)
- .NET MAUI 9 (wersja zapoznawcza 1)
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
, Date
i 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:
- .NET dla systemu Android 9 (wersja zapoznawcza 6)
- .NET dla systemu Android 9 (wersja zapoznawcza 5)
- .NET dla systemu Android 9 (wersja zapoznawcza 4)
- .NET dla systemu Android 9 (wersja zapoznawcza 3)
- .NET dla systemu Android 9 (wersja zapoznawcza 2)
- .NET dla systemu Android 9 (wersja zapoznawcza 1)
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:
- .NET 9.0.1xx (wersja zapoznawcza 6)
- .NET 9.0.1xx (wersja zapoznawcza 5)
- .NET 9.0.1xx (wersja zapoznawcza 4)
- .NET 9.0.1xx (wersja zapoznawcza 3)
- .NET 9.0.1xx (wersja zapoznawcza 2)
- .NET 9.0.1xx (wersja zapoznawcza 1)
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ż
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla