NET 6 Preview 3. منتشر شد

دوشنبه 30 فروردین 1400

این ماه هم NET 6 Preview 3. منتشر شد. این نسخه تقریبا به صورت کامل به ویژگی‌های عملکردی سطح پایین اختصاص یافته است.

NET 6 Preview 3. منتشر شد

این موارد انواع بهبودهایی هستند که بسیاری افراد لزوما همیشه آن‌ها را درک نکرده و از آن‌ها قدردانی نمی‌کنند، اما به برنامه های زیادی بسیار کمک می‌کنند. بیشتر این بهبودها مستقیما بر روی سیستم نوع CLR اعمال می‌شوند، چه عملکرد آن را سریع‌تر بسازند چه با پردازنده های مدرن بهتر در تعامل باشند. در چند سال گذشته، تعداد کمی روند اصلی عملکرد با .NET وجود داشته است از جمله انتقال کد زمان اجرا به سی شارپ. این پیشرفت همچنین تلاش های مستمر بر روی مجموعه متمرکزی از استراتژی های عملکردی را نشان می‌دهد.

دو مورد از این تغییرات عملکردی از طرف Ben Adams بوده است که آن‌ها را بررسی می‌کنیم. او به خاطر بازی کلمات بر روی نام کوچک خود بسیار مشهور شده است. شاید بتوانیم این نسخه را به NET 6 Preview B3n. تغییر نام دهیم.

همچنین Nathan Moore و SingleAccretion نیز در آن مشارکت کرده‌اند.

می‌توانید NET 6 Preview 3. را برای ویندوز، macOS و لینوکس دانلود کنید.

برای EF Core، پیش نمایش 3 شامل چندین رفع باگ و بهبودهای در حال پیشرفت در زیر ساخت‌ها برای پشتیبانی از ویژگی‌های آتی از جمله مدل‌های کامپایل شده و جداول زمانی است.

دات نت 6 با Visual Studio 16.10 Preview 1 و Visual Studio برای Mac 8.9 تست شده است. اگر می‌خواهید .NET 6 را امتحان کنید توصیه می‌شد از این موارد استفاده کنید.

پشتیبانی

NET 6. در نوامبر 2021 منتشر می‌شود و به عنوان انتشار Long Term Support (LTS) به مدت سه سال پشتیبانی خواهد شد. platform matrix در مقایسه با .NET 5 به طور قابل توجهی گسترش یافته است.

موارد اضافه شده عبارتند از:

Android

iOS

Mac و Mac Catalyst، برای x64 و Apple Silicon “M1”

Windows Arm64 به طور خاص (Windows Desktop)

NET 6 Debian container images. بر اساس Debian 11 (bullseye) هستند که در حال حاضر در حال آزمایش است.

کتابخانه ها

API ها و پیشرفت های زیر به کتابخانه های NET. اضافه شده اند.

مدیریت سریع تر structها به عنوان مقادیر Dictionary

یک api ریسک پذیر جدید، CollectionsMarshal.GetValueRefOrNullRef، اضافه شده است که به روز رسانی مقادیر struct را در Dictionary ها سریع تر می‌کند. API جدید برای سناریوهایی با کارایی بالا در نظر گرفته شده است، نه برای استفاده عمومی. یک ref را به struct value برمی‌گرداند که می‌تواند با تکنیک های معمولی آپدیت شود.

قبل از این تغییر، آپدیت مقدار struct dictionary می‌توانست برای سناریوهایی با کارایی بالا گران تمام شود، برای (stack) پشته سازی struct به جستجو و کپی دیکشنری نیاز دارید؛ بعد از تغییر struct، باید مجددا به dictionary key اختصاص داده شود و در نتیجه عملیات جستجو و کپی دیگری باید انجام شود. این پیشرفت key hashing را به 1 (از 2) کاهش داده است و همه عملیات کپی struct را حذف کرده است.

مثال:

ref MyStruct value = ref CollectionsMarshal.GetValueRefOrNullRef(dictionary, key);
// Returns Unsafe.NullRef<TValue>() if it doesn't exist; check using Unsafe.IsNullRef(ref value)
if (!Unsafe.IsNullRef(ref value))
{
    // Mutate in-place
    value.MyInt++;
}

چک کردن و تبدیل کردن سریع تر اینترفیس

عملکرد تبدیل (cast کردن) اینترفیس به 16% - 38% افزایش یافته است. به ویژه برای تطبیق الگوی سی شارپ بین اینترفیس ها مفید است.

یکی از بزرگ ترین مزایای انتقال بخش‌هایی از NET runtime. از C++ به C# مدیریت شده این است که سد همکاری را کاهش داده است. این شامل cast کردن اینترفیس است که به عنوان تغییر اولیه NET 6. به سی شارپ منتقل شده است. افراد زیادی در اکوسیستم دات نت در C# نسبت به C++ سواد بیشتری دارند. فقط توانایی خواندن برخی از کدها که runtime را تشکیل می‌دهند، گام بزرگی برای ایجاد اعتماد در همکاری، در اشکال مختلف است.

ابزارها: پشتیبانی اولیه NET Hot Reload. اکنون برای برنامه های وب در دسترس است

پشتیبانی اولیه NET Hot Reload. اکنون با استفاده از dotnet watch برای پروژه های ASP.NET Core و Blazor در دسترس است. NET Hot Reload. بدون ریستارت برنامه و از دست دادن وضعیت برنامه، تغییرات کد را در برنامه در حال اجرا اعمال می‌کند. تغییرات کدی را که نمی‌توان برای برنامه های در حال اجرا اعمال کرد، همچنان می‌توانند با rebuild کردن و ریستارت کردن برنامه اعمال شوند.

این فقط اولین گام در برنامه جامع تر تیم دات نت برای آوردن این تکنولوژی برای همه توسعه دهندگان دات نت از جمله دسکتاپ (WPF, WinUI, WinForms)، سناریوهای کلاینت cross-platform NET MAUI.، و موارد دیگر است. NET Hot Reload. در نسخه های آتی NET 6. در پلت فرم‌های دیگر نیز پشتیبانی خواهد شد. علاوه بر این، تیم دات نت NET Hot Reload. را به عنوان یک تجربه یکپارچه در نسخه های آتی ویژوال استودیو در دسترس خواهد گذاشت.

جمع بندی

تیم دات نت در حال حاضر در نیمه راه انتشار NET 6. است، حداقل از لحاظ توسعه ویژگی‌ها. شما می‌توانید سایر ویژگی های اضافه شده در انتشار Preview 2 و Preview 1 را مطالعه کنید. انتظار می‌رود که برخی از ویژگی‌های بزرگتر در پیش نمایش های بعدی اعمال شوند. 

ایمان مدائنی

نویسنده 1299 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید