.NET 9 için .NET MAUI'deki yenilikler

.NET 9'da .NET Çok Platformlu Uygulama Kullanıcı Arabirimi 'nin (.NET MAUI) odağı, ürün kalitesini artırmaktır. Bu, test kapsamını genişletmeyi, uçtan uca senaryo testlerini ve hata düzeltmeyi içerir. .NET MAUI 9 Preview'daki ürün kalitesi geliştirmeleri hakkında daha fazla bilgi için aşağıdaki sürüm notlarını inceleyin:

Önemli

Xcode veya Android SDK Araçları gibi dış bağımlılıklarla çalışma nedeniyle .NET MAUI destek ilkesi .NET ve .NET Core destek ilkesinden farklıdır. Daha fazla bilgi için bkz . .NET MAUI destek ilkesi.

.NET 9'da .NET MAUI bir .NET iş yükü ve birden çok NuGet paketi olarak sunulur. Bu yaklaşımın avantajı, projelerinizi belirli sürümlere kolayca sabitlemenize ve ayrıca yayınlanmamış veya deneysel derlemeleri kolayca önizlemenize olanak sağlamasıdır. Yeni bir .NET MAUI projesi oluşturduğunuzda, gerekli NuGet paketleri projeye otomatik olarak eklenir.

.NET 9'daki yenilikler hakkında bilgi için bkz . .NET 9'daki yenilikler.

Android

API 34 ve JDK 17 kullanan .NET Android 9 Preview, derleme sürelerini azaltmaya ve boyutu küçültmek ve performansı geliştirmek için uygulamaların kırpılabilirliğini geliştirmeye yönelik çalışmalar içerir. .NET Android 9 Preview hakkında daha fazla bilgi için aşağıdaki sürüm notlarını inceleyin:

Varlık paketleri

.NET Android 9 Preview 3, varlıkları varlık paketi olarak bilinen ayrı bir pakete yerleştirme özelliğini sunar. Bu, normalde Google Play'in izin verdiği temel paket boyutundan daha büyük olan oyunları ve uygulamaları karşıya yüklemenizi sağlar. Bu varlıkları ayrı bir pakete yerleştirerek, 200 Mb'lık temel paket boyutu yerine 2 Gb'a kadar olan bir paketi karşıya yükleme olanağı elde edebilirsiniz.

Önemli

Varlık paketleri yalnızca varlıkları içerebilir. .NET Android söz konusu olduğunda bu, derleme eylemine AndroidAsset sahip öğeler anlamına gelir.

.NET MAUI uygulamaları, derleme eylemi aracılığıyla MauiAsset varlıkları tanımlar. Varlık paketi şu öznitelik aracılığıyla AssetPack belirtilebilir:

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

Not

Ek meta veriler diğer platformlar tarafından yoksayılır.

Varlık paketine yerleştirmek istediğiniz belirli öğeleriniz varsa meta verileri tanımlamak için özniteliğini AssetPack kullanabilirsinizUpdate:

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

Varlık paketleri, varlıklarınızın cihaza ne zaman yükleneceğini denetleyen farklı teslim seçeneklerine sahip olabilir:

  • Yükleme zaman paketleri uygulamayla aynı anda yüklenir. Bu paket türünün boyutu 1 Gb'a kadar olabilir, ancak bunlardan yalnızca birine sahip olabilirsiniz. Bu teslim türü meta verilerle belirtilir InstallTime .
  • Hızlı takip paketleri, uygulamanın yüklenmesi tamamlandıktan kısa bir süre sonra yüklenir. Bu tür bir paket yüklenirken uygulama başlatılabilir, bu nedenle varlıkları kullanmaya çalışmadan önce yüklenmesinin tamamlandığını denetlemeniz gerekir. Bu tür bir varlık paketi boyutu 512 Mb'a kadar olabilir. Bu teslim türü meta verilerle belirtilir FastFollow .
  • İsteğe bağlı paketler, uygulama özellikle istemediği sürece cihaza hiçbir zaman indirilmeyecektir. Tüm varlık paketlerinizin toplam boyutu 2 Gb'ı aşamaz ve en fazla 50 ayrı varlık paketiniz olabilir. Bu teslim türü meta verilerle belirtilir OnDemand .

.NET MAUI uygulamalarında, teslim türü üzerinde MauiAssetözniteliğiyle DeliveryType belirtilebilir:

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

Android varlık paketleri hakkında daha fazla bilgi için bkz . Android Varlık Paketleri.

iOS

iOS, tvOS, Mac Catalyst ve macOS üzerinde .NET 9 Preview, aşağıdaki platform sürümleri için Xcode 15.2 kullanır:

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

iOS, tvOS, Mac Catalyst ve macOS üzerinde .NET 9 Preview hakkında daha fazla bilgi için aşağıdaki sürüm notlarına bakın:

Bağlamalar

.NET iOS 9 Preview 3, iOS bağlamaları için .NET'in çok hedefli sürümlerinin kullanılabilmesini sağlar. Örneğin, bir kitaplık projesinin iki ayrı iOS sürümü için derlemesi gerekebilir:

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

Bu, biri iOS 17.0 bağlamalarını ve biri iOS 17.2 bağlamalarını kullanan iki kitaplık oluşturur.

Önemli

Bir uygulama projesi her zaman en son iOS SDK'sını hedeflemelidir.

Ayrıca bkz.