ویژگی های جدید دات نت 6

شنبه 24 مهر 1400

دات نت 6 پیش نمایشی جذاب را از ویژگی های خود ارائه خواهد داد، در این مطلب قصد داریم کمی بیشتر درباره ویژگی های دات نت 6 صحبت کنیم.

ویژگی های جدید دات نت 6

مایکروسافت اولین نسخه از دو کاندید دات نت 6 را منتشر کرد که قرار بود در ماه نوامبر به صورت نسخه یکپارچه از ابزارهای توسعه دات نت که به صورت متن باز و مولتی پلتفرم بودند منتشر شود. این تلاش چندین ساله که برای تغییر عظیمی انجام شده بود با معرفی دات نت 5( که خود از روی پروژه .NET Core و فریم ورک دات نت ساخته شده بود) تا نزدیکی معرفی پیش رفت ولی با اوج گرفتن شیوع کرونا ویروس در دنیا ارائه نتایج این تلاش ها یک سال به عقب افتاد. با این حال در نهایت تمامی قسمت های آن از جمله زامارین برای توسعه اپلیکیشن های تلفن همراه و توسعه سمت کلاینت ( که در حال حاضر به MAUI دات نت تغییر کرده است و از نرم افزارهای دسکتاپ نیز پشتیبانی می کند) و همینطور Mono که یک فریم ورک متن باز و رایگان دات نت است ادغام شدند.

در این مطلب قصد داریم کمی بیشتر درباره منتشر شدن کاندید اول دات نت 6 صحبت کنیم و اطلاعاتی را به شما ارائه دهیم.

پیش نمایش های دات نت 6

متخصصان و توسعه دهندگان شرکت مایکروسافت چندین سال است که گروهی از پیش نمایش ها، ویژگی ها و قابلیت های جدیدی را به دات نت 6 اضافه کرده اند و اخیرا تنها روی زیباتر کردن آن تمرکز کرده اند. بنابراین کدهای مربوط به این نسخه در حال حاضر نیز آماده آزمایش های نهایی می باشد. بنابراین اطلاعیه های RC 1 روی ویژگی های جدید تمرکز نمی کند بلکه روی ویژگی هایی که این نسخه از دات نت دارد تمرکز خواهد کرد و شاید برای شما جالب باشد که بدانید برخی از این ویژگی ها تا مدت ها محقق نخواهند شد. سایت Themes of .NET که برای مایکروسافت است یک نمای کلی از آنچه به کاربران ارائه خواهد شد را برای شما فراهم کرده است که در ادامه به بررسی آن می پردازیم.

نکاتی درباره ویژگی های دات نت 6

Richard Lander مدیر برنامه تیم دات نت در صحبت هایی که در 14 سپتامبر داشت بیان کرد: " در هر نسخه از دات نت ما چند پروژه مختلف را به اتمام می رسانیم که ممکن است چندین سال طول بکشد تا تکمیل شوند و طبق تعریفی که برای آنها ارائه داده ایم تا مدتی ارزش واقعی خود را ارائه نمی دهند. با توجه به این که این ویژگی ها به طور کامل به نتیجه نرسیده اند متوجه خواهید شد که برخی از این ویژگی ها در دات نت 7 یا نسخه های بعدی به واقعیت خواهند پیوست.

در ادامه برخی از ویژگی های رایج دات نت 6 که توسط Lander آماده شده است را به شما معرفی خواهیم کرد.

ویژگی Source build در نسخه 6 دات نت

GitHub repo در خصوص این ویژگی می گوید: هدف کلیدی از ساخت ویژگی source-build رعایت کردن قوانین پکیج بندی از توزیع های رایج لینوکس می باشد که از جمله آنها می توان به Fedora و Debian اشاره کرد. بسیاری از توزیع های مختلف لینوکس دارای قواعد مشابهی هستند. این قوانین علاقه مند هستند تا دو اصل کلی را رعایت کنند: قابلیت ساخت مجدد به صورت دائمی و سورس کد برای هر چیزی.

بهینه سازی Profile-guided یا به اختصار PGO

مایکروسافت در صحبت هایی که درباره PGO در دات نت 6 داشته است می گوید: PGO با افزودن اطلاعات جدید به فرایند بهینه سازی که بستگی به نحوه اجرای برنامه دارد به میزان زیادی عملکرد برنامه های ساخته شده با دات نت 6 را بهبود می دهد. توجه داشته باشید که این تاثیر فقط روی کدها نیست و روی اجرا و عملکرد نرم افزارها نیز تاثیر می گذارد. Lander در خصوص این موضوع می گوید: توسعه دهندگان می توانند از PGO برای موارد زیر استفاده کرده و از مزایای آن بهره مند شوند:

- کدهای راه اندازی نرم افزار را با کیفیت بالاتری کامپایل کنند

- کاهش سایز و اندازه باینری با کامپایل کردن کدهای کم کاربرد با کیفیت پایین تر( یا کلا حذف کردن این کدها از روند کامپایل)

- مرتب کردن دوباره باینری های اپلیکیشن ها به طوری که کدی که برای راه اندازی اپلیکیشن مورد استفاده قرار می گیرد در نزدیکی ابتدای فایل ها قرار گیرد.

Lander می گوید:" در حال حاضر هیچ کس این قابلیت را ندارد که بتواند از  PGO استفاده کند و این همان چیزی است که احتمالا شما در نسخه 7 دات نت یا حتی نسخه های بعدی قادر به استفاده از آن خواهید بود.

Dynamic PGO یکی دیگر از ویژگی هایی است که در آینده به دات نت اضافه خواهد بود. این ویژگی که در میان ویژگی های دات نت 6 معرفی شد مربوط به بهبود نحوه تولید و مصرف داده های پروفایل از سوی کامپایلر JIT است که تاکید زیادی روی سناریوهای پویا دارد که در آن هر چیزی در پروسه ممکن است اتفاق بیفتد. Lander در خصوص این ویژگی می گوید: " PGO پویا در واقع یک تصویر آینه ای از سیستم PGO استاتیک است. " در حالی که PGO استاتیک با crossgen2 ادغام شده است باید بدانید که PGO پویا با RyuJIT ادغام شده است. PGO استاتیک نیازمند یک محیط تمرینی جداگانه و ابزارهای خاص است و این در حالی است که PGO پویا به صورت خودکار کار می کند و از اپلیکیشن در حال اجرا استفاده می کند تا داده های مربوط را جمع آوری کند. در حالی که PGO استاتیک بعد از اجرا ادامه پیدا می کند شاید برای شما جالب باشد که بدانید PGO پویا و داینامیک بعد از هر بار اجرا از دست می رود.

معرفی ویژگی Crossgen2 در نسخه 6 دات نت 

ویژگی Crossgen2 در دات نت 6 جایگزین ویژگی crossgen شده است. Crossgen2 برای همه سناریوهای crossgen موجود در دسترس و فعال است و علاوه بر این باید دقت داشته باشید که مایکروسافت crossgen قدیمی را از SDK حذف کرده است و در حال حاضر امکان استفاده از آن برای توسعه دهندگان وجود ندارد. Crossgen( 1 و 2) عملیات پیش کامپایل IL را در کدهای بومی به عنوان یک مرحله انتشار فعال می کند. این عملیات پیش کامپایل در گام اول برای بهبود عملیات راه اندازی مفید و کاربردی است. Crossgen2 به طور کامل از ابتدا پیاده سازی شده است و ثابت شده است که یک بستر ایده آل برای نوآوری در کدنویسی به شمار می آید. به عنوان مثال Crossgen2 می تواند برای مجموعه های وسیع تری از الگوهای IL نسبت به crossgen1 مورد استفاده قرار گیرد.

کاهش مشکلات امنیتی در دات نت 6

در دات نت 6 تیم پشتیبانی پیش نمایش دو اقدام امنیتی کلیدی را که به طور پیش فرض در دات نت 7 فعال می شوند اضافه کرده است:

-  CET: تکنولوژی اجرای کنترل جریان یا Control-Flow Enforcement که برای شرکت اینتل است و سال گذشته برای محافظت در برابر تهدیدهای رایج بدافزاری معرفی شد. Lander در این خصوص می گوید در برخی از پردازنده های جدیدتر اینتل AMD این تکنولوژی وجود دارد و قابلیت هایی را به سخت افزار اضافه می کند که می توان در برابر برخی از انواع حملات رایج که شامل ربودن جریان کنترل می شود مقابله کرد.

-  W^X ویژگی دیگری است که به دات نت 6 اضافه شده است و مخفف عبارت write xor execute می باشد. Lander می گوید این ویژگی قابلیت مسدود کردن مسیر اصلی حمله با عدم اجازه به صفحات حافظه برای نوشتن و اجرای همزمان کدها به میزان زیادی امنیت را افزایش می دهد. این ویژگی آن قدر بهینه است که مایکروسافت از کاهش مسائل امنیتی در سایر بخش ها تا زمان اضافه شدن این ویژگی خودداری کرده است.

قابلیت HTTP/3 در دات نت 6

با وجود این که هنوز نسخه سوم از پروتکل HTTP به طور رسمی در مرحله پیش نویس قرار دارد ولی می توان امروزه از آن استفاده کرد. این پروتکل در واقع در پروتکل QUIC که یک پروتکل انتقال عمومی و رمزگذاری شده است اجرا می شود که می تواند چندین جریان از داده ها را در داخل یک جریان ادغام کند. Lander می گوید به عنوان یک پیش نویس رسمی که در پیش نمایش دات نت 6 به طور کامل نمایش داده شده است این پروتکل از QUIC استفاده می کند تا بتواند با چالش های عملکردی و بهینه سازی عملکرد دات نت 6 مقابله کند. او همچنین ادامه می دهد که این ویژگی یک ویژگی پیش نمایش است و به طور کامل از آن پشتیبانی نمی شود. ممکن است ناسازگاری هایی در این پروتکل وجود داشته باشد و به همین علت نیز باید آزمایشات گسترده تری روی سرورها و کلاینت های این پروتکل صورت گیرد.

Workload های SDK دات نت 6

این ویژگی در دات نت 6 یک طرح جدید برای workload های SDK است که در پیش نمایش 5 دات نت 6 معرفی شده بود. این ویژگی به مایکروسافت اجازه می دهد تا بدون این که سایز SDK را افزایش دهد انواع اپلیکیشن های جدید را پشتیبانی کند. این ویژگی در واقع با رویکرد قدیمی monolithic SDK جایگزین شده است که دارای زمان ساخت طولانی و سایز توزیع بسیار بزرگی بود. Lander می گوید: در نسخه های بعدی ما قصد داریم اجزای بیشتری را حذف کرده و آنها را به صورت اختیاری در بیاوریم که از جمله این اجزا می توان به ASP.NET و اپلیکیشن های دسکتاپ ویندوز اشاره کرد.

در انتها می توان متصور شد که این SDK تنها شامل MSBuild، NuGet، کامپایلرهای زبان برنامه نویسی و عملکرد دسترسی به workload خواهد بود. به طور کلی ما این هدف را داریم که به یک اکوسیستم دات نت دسترسی پیدا کنیم و تنها نرم افزاری را به شما ارائه دهیم که برای انجام کارهای خود به آن نیاز خواهید داشت. شما می توانید مشاهده کنید که چگونه این رویکرد برای سناریوهای CI عملکرد بهتری را از خود نشان می دهد و به ابزارهای دات نت 6 این امکان را می دهد تا مجموعه ای از قطعه کدهای سفارشی را برای کد خاصی که در حال ساخت آن هستند به دست بیاورند.

صحبت های پایانی Lander درباره دات نت 6

Lander در پایان می گوید: دات نت 6 دارای ویژگی ها و قابلیت های بسیار زیادی است. اکثر این ویژگی ها در دات نت 6 یا پیش نمایش های آن به شما ارائه شده اند. با این حال ویژگی های دیگری نیز در پیش نمایش ها معرفی شده اند که ممکن است الهام بخش آینده باشند و در نسخه 7 دات نت شاهد آنها باشیم.

 

برنامه نویسان

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

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

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