Novinky v .NET MAUI pro .NET 8

Cílem rozhraní .NET MAUI v .NET 8 je kvalita. V .NET 8, 1618 žádosti o přijetí změn byly sloučeny, které zavřely problémy 689. To zahrnuje změny od týmu .NET MAUI i komunity .NET MAUI. Tyto změny by měly vést k významnému zvýšení kvality v .NET 8.

Důležité

Vzhledem k tomu, že pracujete s podkladovými externími závislostmi, jako jsou nástroje Xcode nebo Android SDK, se zásady podpory pro víceplatformní uživatelské rozhraní .NET MAUI (.NET MAUI) liší od zásad podpory .NET a .NET Core. Další informace najdete v tématu Zásady podpory .NET MAUI.

V .NET 8 se .NET MAUI dodává jako úloha .NET a několik balíčků NuGet. Výhodou tohoto přístupu je, že umožňuje snadno připnout projekty na konkrétní verze a zároveň vám umožní snadno zobrazit náhled nerelevidovaných nebo experimentálních buildů. Když vytvoříte nový projekt .NET MAUI, do projektu se automaticky přidají požadované balíčky NuGet.

Tento článek obsahuje seznam nových funkcí .NET MAUI pro .NET 8 a obsahuje odkazy na podrobnější informace o jednotlivých.

Informace o novinkách v .NET 8 najdete v tématu Co je nového v .NET 8.

Nové funkce

I když je tato verze rozhraní .NET MAUI zaměřená na kvalitu, existuje také několik nových funkcí, které umožňují nové scénáře ve vašich aplikacích.

Ovládací prvky

Desktop

Rozpoznávání gest

Integrace platformy

XAML

Řešení problému

Různé

  • Správu oken je možné oddělit od App třídy. Další informace naleznete v tématu Oddělení správy oken od třídy aplikace.
  • V aplikacích pro Android je možné snadno využívat několik systémových písem. Další informace najdete v tématu Využívání písem.
  • V iOSu získá metoduPerformFetch, MauiUIApplicationDelegate kterou lze přepsat nebo využívat prostřednictvím delegátaiOSLifecycle.PerformFetch. Další informace najdete v tématu Události životního cyklu platformy pro iOS.

Vyřazení a odebrání typu

Následující typy nebo členové jsou zastaralé:

Byly odebrány následující typy nebo členy:

  • Vlastnost Application.Properties a Application.SavePropertiesAsync metoda byly odebrány. Pokud chcete migrovat data vlastností aplikace do .NET MAUI, přečtěte si téma Migrace dat ze slovníku vlastností aplikace Xamarin.Forms do předvoleb .NET MAUI.
  • Vlastnost PhoneDialer.Current byla odebrána. Místo toho použijte PhoneDialer.Default.
  • OpenGLView byla odebrána.

Změny chování

Z předchozí verze se změnilo následující chování:

  • Map Použití ovládacího prvku z XAML nyní vyžaduje následující xmlns deklaraci oboru názvů: xmlns:maps="http://schemas.microsoft.com/dotnet/2021/maui/maps".
  • Ukládání obrázků do mezipaměti je v Androidu zakázané při načítání obrázku ze streamu pomocí ImageSource.FromStream metody. Důvodem je nedostatek dat, ze kterých se má vytvořit rozumný klíč mezipaměti.
  • V iOSu se stránky automaticky posouvají, když klávesnice pro měkký vstup pokryje pole pro zadávání textu, aby pole bylo nad klávesnicí pro měkký vstup. Metodu KeyboardAutoManagerScroll.DisconnectMicrosoft.Maui.Platform v oboru názvů lze volat, aby se zakázalo toto výchozí chování. Metodu KeyboardAutoManagerScroll.Connect lze volat, aby se po zakázání znovu povolilo chování.
  • Jak se barva karty v aplikaci Shell změnila na některých platformách. Další informace najdete v tématu Vzhled tabulátoru.
  • Není nutné zadat hodnotu vlastnosti $(ApplicationIdGuid) sestavení v souboru projektu vaší aplikace. Důvodem je to, že aplikace .NET MAUI pro Windows už nevyžadují identifikátor GUID jako ID aplikace a místo toho jako ID aplikace používají hodnotu $(ApplicationId) vlastnosti sestavení. Proto se stejné ID aplikace formátu reverzní domény používá na všech platformách, například com.mycompany.myapp.
  • Aplikace .NET MAUI Mac Catalyst už nejsou omezeny na 50 položek nabídky na řádku nabídek.
  • Metoda PlatformImage.FromStream v Microsoft.Maui.Graphics oboru názvů se teď dá použít k načtení imagí ve Windows, a nemusíte ji používat W2DImageLoadingService .
  • Animace v Androidu respektují nastavení systémové animace. Další informace najdete v tématu Základní animace.

Výkon

V rozhraní .NET MAUI 8 je spousta změn výkonu. Tyto změny je možné klasifikovat do pěti oblastí:

Další informace najdete v tématu Vylepšení výkonu .NET 8 v rozhraní .NET MAUI.

Upgrade z .NET 7 na .NET 8

Pokud chcete upgradovat projekty z .NET 7 na .NET 8, nainstalujte .NET 8 a úlohu .NET MAUI pomocí sady Visual Studio 17.8 nebo pomocí samostatného instalačního dotnet workload install maui programu a příkazu.

Pak otevřete soubor .csproj a změňte Monikers cílové architektury (TFMs) z 7 na 8. Pokud používáte TFM, jako net7.0-ios13.6 je třeba, že odpovídá verzi platformy, nebo ji úplně odeberete. Následující příklad ukazuje TFM pro projekt .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>

Následující příklad ukazuje TFM pro projekt .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>

Explicitní odkazy na balíčky by se také měly přidat do souboru .csproj pro následující balíčky NuGet .NET MAUI:

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

Na $(MauiVersion) proměnnou odkazuje verze rozhraní .NET MAUI, kterou jste nainstalovali. Můžete to přepsat přidáním $(MauiVersion) vlastnosti sestavení do souboru .csproj :

<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>

To může být užitečné při použití ad hoc buildů z nočního informačního kanálu nebo sestavení stažených z žádostí o přijetí změn.

Kromě toho $(ApplicationIdGuid) lze vlastnost sestavení odebrat ze souboru .csproj v .NET 8. Další informace naleznete v tématu Změny chování.

Před prvním sestavením upgradované aplikace odstraňte bin složky a obj složky.

Poznámka:

Šablona projektu pro aplikaci .NET MAUI v .NET 8 povoluje kontext s možnou $(Nullable) hodnotou null pro projekt s vlastností sestavení. Další informace naleznete v tématu Nullable.

Viz také