واژه پرتال به معنی دروازه یا محل ورود به یک شهرمی باشد و تا بحال بیشترین کاربرد را در حوزه IT داشته است. طبق تعاریفی که تا بحال ارائه شده است، پرتال را می توان یک مرکز ارائه خدمات و اطلاعات اینترنتی دانست
این نسخه عمدتاً بر بهبود کیفیت در .NET MAUI، داتنت برای اندروید (Android)، و داتنت برای پلتفرمهای اپل (iOS، Mac Catalyst، macOS و tvOS) تمرکز داشته است.
در ادامه میتوانید اطلاعات دقیقی درباره این بهبودها پیدا کنید:
CollectionView
برای iOS و Mac Catalystdotnet run
برای پروژههای اندرویدaapt2
را فراخوانی نمیکنندبرای مطالعه جزئیات بیشتر به مستندات تازههای .NET MAUI در .NET 10 مراجعه کنید.
مسئله شناختهشده: در Preview 1، بیلد کردن پروژههایی که فریمورکهای net8.0-*
را هدف قرار دادهاند با استفاده از .NET 10 SDK با مشکل مواجه میشود.
دو هندلر (Handler) جدید برای CollectionView
و CarouselView
در iOS و Mac Catalyst که بهبودهایی در عملکرد و پایداری به همراه داشتند، در .NET 9 به صورت اختیاری در دسترس بودند. در این نسخه، این هندلرها به صورت پیشفرض فعال شدهاند. اگر میخواهید به حالت قبل بازگردید، میتوانید با افزودن کد زیر به کلاس MauiProgram
خود، آنها را غیرفعال کنید:
#if IOS || MACCATALYST
builder.ConfigureMauiHandlers(handlers => {
handlers.AddHandler<Microsoft.Maui.Controls.CollectionView, Microsoft.Maui.Controls.Handlers.Items.CollectionViewHandler>();
handlers.AddHandler<Microsoft.Maui.Controls.CarouselView, Microsoft.Maui.Controls.Handlers.Items.CarouselViewHandler>();
});
#endif
ما هیجانزده هستیم که شما این هندلرهای جدید را امتحان کنید.
یادآوری میشود که اگر برنامههای مبتنی بر .NET 9 دارید، میتوانید همین امروز با کد زیر آنها را تست کنید:
#if IOS || MACCATALYST
builder.ConfigureMauiHandlers(handlers => {
handlers.AddHandler<Microsoft.Maui.Controls.CollectionView, Microsoft.Maui.Controls.Handlers.Items2.CollectionViewHandler2>();
handlers.AddHandler<Microsoft.Maui.Controls.CarouselView, Microsoft.Maui.Controls.Handlers.Items2.CarouselViewHandler2>();
});
#endif
تمرکز این نسخه بر بهبود کیفیت بوده است. لیست دقیق تغییرات را میتوانید در صفحه انتشار dotnet/android در گیتهاب پیدا کنید.
گوگل نسخه Beta 1 از Android 16 (API-36) SDK را منتشر کرده است. پشتیبانی برای استفاده از این APIهای پیشنمایش به داتنت اضافه شده است.
برای هدف قرار دادن API پیشنمایش اندروید ۱۶:
TargetFramework
پروژه خود را به net10.0-android36
بهروزرسانی کنید.قالبهای پروژه .NET for Android بهروزرسانی شدهاند تا به جای API 21 ("Lollipop")، نسخه ۲۴ ("Nougat") را به عنوان $(SupportedOSPlatformVersion)
پیشفرض مشخص کنند. این تغییر از بروز خطاهای زمان اجرا ناشی از "desugaring" هنگام استفاده از متدهای پیشفرض اینترفیسها در جاوا جلوگیری میکند. اگرچه API-21 همچنان در .NET 10 پشتیبانی میشود، اما توصیه میکنیم پروژههای موجود را به API-24 بهروزرسانی کنید تا از خطاهای غیرمنتظره در زمان اجرا جلوگیری شود.
توجه: برای اطلاعات بیشتر به Pull Request اصلی در گیتهاب مراجعه کنید.
پروژههای .NET for Android اکنون میتوانند با JDK 21 ساخته شوند.
dotnet run
برای اندرویدپروژههای .NET for Android اکنون میتوانند با استفاده از دستور dotnet run
اجرا شوند:
// اجرا روی تنها دستگاه فیزیکی اندروید متصل
dotnet run -p:AdbTarget=-d
// اجرا روی تنها شبیهساز (emulator) در حال اجرای اندروید
dotnet run -p:AdbTarget=-e
// اجرا روی دستگاه فیزیکی یا شبیهساز مشخص شده
dotnet run -p:AdbTarget="-s emulator-5554"
ویژگی AdbTarget
به ابزار خط فرمان adb
(Android Debug Bridge) ارسال میشود.
توجه: برای اطلاعات بیشتر به Pull Request در گیتهاب مراجعه کنید.
روش جدیدی برای ایجاد متدهای مارشال که برای فراخوانی کدهای #C از جاوا مورد نیاز است، اکنون به صورت پیشفرض فعال است. این ویژگی که در .NET 9 معرفی شد، در .NET 10 برای پایدارسازی بیشتر، بهبود یافته است. این قابلیت عملکرد زمان راهاندازی (startup) برنامه را بهبود میبخشد.
اگر در پیشنمایشهای .NET 10 با هنگ کردن برنامه هنگام راهاندازی مواجه شدید که در .NET 9 وجود نداشت، سعی کنید متدهای مارشال را غیرفعال کنید. اگر این کار مشکل را برطرف کرد، لطفاً یک issue ثبت کنید تا ما را از مشکلات باقیمانده مطلع سازید.
<AndroidEnableMarshalMethods>false</AndroidEnableMarshalMethods>
aapt2
را فراخوانی نمیکنندبرای بیلدهای زمان-طراحی، دیگر aapt2
فراخوانی نمیشود؛ در عوض، فایلهای .aar
و منابع اندروید زیربنایی به طور مستقیم تجزیه (parse) میشوند. این تغییر، زمان بیلد زمان-طراحی را در برخی از تستهای واحد ما از بیش از ۲ ثانیه به کمتر از ۶۰۰ میلیثانیه کاهش داده است.
تمرکز این نسخه بر بهبود کیفیت بوده است. لیست دقیقی از تغییرات و مسائل شناختهشده را میتوانید در صفحه انتشار xamarin/xamarin-macios در گیتهاب پیدا کنید.
در گذشته، ما هشدارهای تریمر را سرکوب میکردیم، زیرا کتابخانه کلاس پایه (BCL) خود دارای هشدارهای تریمر بود و این بدان معنا بود که توسعهدهندگان نمیتوانستند تمام هشدارها را برطرف کنند. با این حال، معتقدیم که در .NET 9 تمام هشدارهای تریمر مربوط به کدهای خودمان را برطرف کردهایم. اکنون آمادهایم تا توسعهدهندگان نیز همین کار را انجام دهند، بنابراین هشدارهای تریمر را به صورت پیشفرض فعال کردهایم.
این ویژگی را میتوان با افزودن کد زیر به فایل پروژه غیرفعال کرد:
<PropertyGroup>
<SuppressTrimAnalysisWarnings>true</SuppressTrimAnalysisWarnings>
</PropertyGroup>
برای اطلاعات بیشتر به Issue در گیتهاب مراجعه کنید.
پروژههای کتابخانهای میتوانند انواع مختلفی از منابع باندل (مانند storyboards, xibs, property lists, png images, CoreML models, texture atlases) داشته باشند که به عنوان منابع جاسازی شده (embedded resources) در کتابخانه کامپایلشده قرار میگیرند. در گذشته، هرگونه پردازشی (مانند کامپایل کردن storyboards یا xibs، یا بهینهسازی property lists/png images) قبل از جاسازی انجام میشد، اما این کار بیلد کتابخانهها را بسیار پیچیده میکرد، زیرا این پردازش:
بنابراین، ما در .NET 9 پشتیبانی اختیاری (opt-in) برای جاسازی منابع اصلی در کتابخانهها اضافه کردیم و در .NET 10 آن را به حالت پیشفرض (opt-out) تغییر دادیم.
رفتار پیشفرض را میتوان در فایل پروژه به صورت زیر تغییر داد:
<PropertyGroup>
<BundleOriginalResources>false</BundleOriginalResources>
</PropertyGroup>
برای اطلاعات بیشتر به Issue در گیتهاب مراجعه کنید.
منبع (Reference):
https://github.com/dotnet/core/blob/main/release-notes/10.0/preview/preview1/dotnetmaui.md
0 نظرات
نظر خود را ثبت کنید