۳۰ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

موارد جدید در مایکروسافت دات نت ۶

پلتفرم توسعه نرم افزار نسل بعدی که .NET Framework و .NET Core را متحد می کند، اکنون در نسخه تولیدی موجود است.

پلتفرم توسعه نرم افزار نسل بعدی که .NET Framework و .NET Core را متحد می کند، اکنون در نسخه تولیدی موجود است.

به دنبال بیش از یک سال تلاش برای توسعه توسط تیم دات نت، مایکروسافت نسخه تولیدی پلتفرم توسعه نرم افزار NET 6 خود را منتشر کرده است.

منتشر شده در ۸ نوامبر، NET 6 را می‌توانید از dotnet.microsoft.com دانلود کنید . به عنوان آخرین مرحله در چشم انداز وحدت NET، صورتحساب می شود، .NET 6 دستاوردهای “عظیم” در عملکرد و همچنین پشتیبانی بومی از Apple Silicon و پشتیبانی بهبود یافته برای Arm64 را ارائه می دهد، بولتن در مورد انتشار تولید گفت.

Microsoft .NET 6 همچنین دارای ویژگی C# 10 ، با قابلیت‌هایی برای سریع‌تر و رسا کردن کد؛ F# 6، با بهبود عملکرد، سهولت استفاده و یکنواختی. یک سیستم بهینه‌سازی پویا و هدایت‌شده توسط پروفایل که بهینه‌سازی‌هایی را فقط در زمان اجرا ارائه می‌دهد. و تشخیص ابر از طریق ابزار dotnet-monitor و پشتیبانی از استاندارد OpenTelemetry برای تله متری مشاهده پذیری بهبود یافته است.

پشتیبانی از WebAssembly نیز بهبود یافته است و APIها برای HTTP/3، پردازش JSON، ریاضیات و دستکاری مستقیم حافظه اضافه شده است. NET 6 به مدت سه سال پشتیبانی خواهد شد. مایکروسافت گفت که توسعه دهندگان قبلاً ارتقاء برنامه ها را به آن آغاز کرده اند.

یک بولتن در RC2 برنامه ریزی شده است. قابلیت‌های NET 6 از جمله C# 10 که تکامل بیشتری از ویژگی‌های جدید مانند رکوردها و الگوها را ارائه می‌دهد. همچنین برای C# 10 با استفاده از دستورالعمل‌ها و فضاهای نامی با دامنه فایل، به توسعه‌دهندگان کمک می‌کند تا کد را ساده‌سازی کنند و کمتر boilerplate بنویسند. سی شارپ ۱۰ از ساختارهای رکورد نیز پشتیبانی می‌کند، مشابه رکوردهای C# 9 (مبتنی بر کلاس)، اما با تفاوت‌هایی مانند ساختارهای رکوردی که برای کامل‌تر شدن اضافه می‌شوند، بنابراین ساختارها می‌توانند مزایای رکورد مشابه کلاس‌ها را داشته باشند. یکی دیگر از ویژگی‌های C# 10، اعلان‌های فضای نام با دامنه فایل، برای کاهش تورفتگی و تعداد خطوط در نظر گرفته شده است.

.NET 6 شاهد دو نامزد انتشار و هفت نسخه پیش نمایش بود. سایر قابلیت‌های جدید ذکر شده در بولتن ۱۲ اکتبر برای نامزد انتشار دوم عبارتند از:

  • NET . ، عبارات سطح بالا، عبارات جدید با تایپ هدف، دستورالعمل های استفاده از سراسری، فضاهای نام با دامنه فایل، و انواع مرجع باطل شونده.
  • پشتیبانی از MacOS و Windows Arm64 تقریباً کامل شده است. NET 6 RC2 با نصب بیلدهای Arm64 و x64 در مکان های مختلف امکان همزیستی Arm64 + x64 را فراهم می کند. توسعه‌دهندگان باید تمام ساخت‌های دات‌نت را حذف نصب کنند و از ابتدا در ماشین‌های MacOS و Windows Arm64 شروع کنند تا .NET 6 RC2 یا نسخه‌های جدیدتر را اجرا کنند.

.NET 6 برای ارائه بهبودهایی برای برنامه های ابری، دسکتاپ و تلفن همراه تنظیم شده است. این قابلیت‌ها را برای Android، iOS، و MacOS که در حال حاضر در پلتفرم .NET تلفن همراه منبع باز Xamarin قرار دارند، یکپارچه می‌کند.

مایکروسافت همچنین در حال گسترش ابزار توسعه برنامه وب کلاینت Blazor است، بنابراین توسعه دهندگان می توانند یک برنامه مشتری ترکیبی بسازند که رابط کاربری وب و بومی را برای استفاده دسکتاپ و تلفن همراه ترکیب می کند. Blazor WebAssembly اولین پلتفرم یکپارچه قابل تحویل در .NET 5 بود. منتشر شده در نوامبر ۲۰۲۰، .NET 5 آغاز یکپارچگی بود و زمینه را برای توسعه دهندگان Xamarin برای استفاده از پلتفرم دات نت یکپارچه با ورود .NET 6.0.

یکپارچگی دات نت یک دات نت را از فناوری های جداگانه .NET Core، .NET Framework و Xamarin/Mono ایجاد می کند. بخش‌هایی از NET Framework قبلاً به NET Core منتقل شده بودند. NET 5 سفر ترکیب NET Core و Mono/Xamarin را در یک کتابخانه کلاس پایه و زنجیره ابزار آغاز کرد.

چگونه eBPF آینده لینوکس و مهندسی پلتفرم را شکل می دهد

Microsoft .NET 6 RC1 که در ۱۴ سپتامبر رونمایی شد، قبل از آن هفت نسخه پیش نمایش منتشر شده بود. RC1 با Visual Studio 2022 Preview 4 آزمایش شده و با آن پشتیبانی می شود. در بولتن در RC، مایکروسافت ویژگی های اساسی را در NET 6 پوشش داد:

  • ساخت منبع، یک سناریو و زیرساخت در حال توسعه با Red Hat است که برای برآورده کردن بسته‌بندی در نظر گرفته شده است. قوانین توزیع های رایج لینوکس مانند دبیان و فدورا. همچنین، ساخت منبع در نظر گرفته شده است تا مشارکت کنندگان NET Core را قادر سازد تا یک SDK هسته دات نت را با تغییرات هماهنگ در چندین مخزن بسازند. این فناوری برای حل چالش‌های رایجی است که توسعه‌دهندگان هنگام تلاش برای ساختن کل SDK هسته NET از منبع با آن مواجه می‌شوند.
  • بهینه‌سازی هدایت‌شده نمایه، که بر اساس این فرض است که کد اجرا به عنوان بخشی از یک استارتاپ اغلب یکنواخت است و عملکرد سطح بالاتری را می توان با استفاده از آن ارائه کرد. PGO می‌تواند کد راه‌اندازی را با کیفیت بالاتر کامپایل کند، اندازه باینری را کاهش دهد، و باینری‌های برنامه را بازآرایی کند، بنابراین کدهای مورد استفاده در راه‌اندازی در نزدیکی ابتدای فایل قرار می‌گیرند.
  • PGO پویا، تصویر آینه‌ای از PGO، یکپارچه با RyuJIT.NET فقط -کامپایلر به موقع عملکرد بهبود یافته است.
  • HTTP/3، پیش‌نمایش‌شده در NET 6، چالش‌های عملکردی و عملکردی را با نسخه های قبلی HTTP.
  • CrossGen 2، برای پیش‌ترکیب سریع.
  • فناوری اجرای کنترل اینتل (CET)، در برخی از پردازنده‌های جدید اینتل و AMD برای محافظت در برابر انواع رایج حملات شامل ربودن جریان کنترل موجود است.
  • W^X، یک کاهش امنیتی برای مسدود کردن مسیرهای حمله با عدم اجازه دادن به صفحات حافظه همزمان قابل نوشتن و اجرا باشد.

قبل از RC1، پیش‌نمایش ۷، منتشر شده در ۱۰ اوت، ویژگی‌های مختلف را صیقل داده بود. پیش‌نمایش ۷ شامل:

  • الگوهای NET SDK را برای استفاده از جدیدترین ویژگی های C# به روز کرد.
  • برای کتابخانه‌ها، APIهای بازتابی برای اطلاعات پوچ‌پذیری برجسته شدند.
  • ریاضی عمومی، یک ویژگی پیش‌نمایش اولیه .NET 7.
  • APIهای تخصیص حافظه بومی، همچنین یک ویژگی کتابخانه.
  • اعلان‌های سریال‌سازی

  • System.Text.Json و مرتب‌سازی ویژگی System.Text.Json. هر دو ویژگی کتابخانه هستند.
  • برای کتابخانه ها، الگوهای تماس ساده شده برای عملیات رمزنگاری وجود دارد.

پیش‌نمایش ۶، در ۱۴ ژوئیه رونمایی شد، قابلیت‌هایی از جمله:

  • بهبودهای حجم کاری اختیاری NET SDK.
  • پشتیبانی TLS برای DirectoryServices.Protocols.
  • عملکرد همگام سازی بیش از ناهمگام بهبود یافته.

قابلیت‌های ذکر شده در پیش‌نمایش ۵، منتشر شده در ۱۷ ژوئن ، شامل:

  • بارهای کاری SDK، بخشی از .NET unification vision، پشتیبانی می کند انواع برنامه های اضافی مانند موبایل و WebAssembly بدون افزایش اندازه SDK. این ویژگی به‌روزرسانی شده است تا شامل فعل‌های list و update باشد، با قابلیت dotnetworkload list به برنامه‌نویس می‌گوید کدام بارهای کاری نصب شده‌اند و به‌روزرسانی حجم کار dotnet برای به‌روزرسانی همه بارهای کاری نصب شده به جدیدترین نسخه موجود استفاده می‌شود. به عنوان مدیر بسته، بارهای کاری SDK در پیش نمایش ۴ معرفی شد.
  • ابزارهای

  • تأیید اعتبار بسته به توسعه‌دهندگان کتابخانه NuGet اجازه می‌دهد تا تأیید کنند که بسته‌ها سازگار و مناسب هستند. تشکیل شد.
  • آنالیزگرهای بیشتر برای پلتفرم کامپایلر Roslyn.
  • برای SDK، محافظ‌های سفارشی برای تحلیل‌گر سازگاری پلتفرم فعال هستند،
  • برای فرم‌های ویندوز، یک فونت پیش‌فرض را می‌توان برای یک برنامه تنظیم کرد.
  • برنامه‌های افزودنی APIها با تمرکز بر میزبانی و تزریق وابستگی بهبود یافته‌اند.
  • فشرده سازی WebSocket برای کتابخانه ها میزان داده های ارسال شده از طریق شبکه را کاهش می دهد.
  • پشتیبانی از فریم‌ورک‌های قدیمی‌تر، از جمله فریم‌ورک‌های قدیمی‌تر از NET Framework 4.6.1، .NET Core 3.1 و .NET Standard 2.0 در حال حذف شدن است.
  • یک منبع مولد در NET 6 به عنوان بخشی از text.json برای کاهش زمان راه اندازی، بهبود توان عملیاتی و کاهش استفاده از حافظه خصوصی معرفی شده است.
  • برای interop Objective-C، یک API .NET جدید یک تجربه واحد را در طول زمان اجرا امکان پذیر می کند.
  • پشتیبانی

  • OpenTelemetry Metrics API اضافه شده است. OpenTelemetry که در نسخه های اخیر دات نت پشتیبانی شده است، قابلیت مشاهده را ارتقا می دهد.
  • پشتیبانی

  • OpenSSL 3 برای رمزنگاری در لینوکس اضافه شده است.

پیش‌نمایش ۴ که در ۲۵ مه منتشر شد، با داشتن ویژگی‌ها و تجربیات کامل، پایه‌ای محکم برای ساخت نهایی دات نت ۶ ایجاد کرد. ساخت‌های «Go live» که در تولید پشتیبانی می‌شوند، در ماه اوت پیش‌بینی می‌شوند.

مایکروسافت در بولتن خود در پیش نمایش ۴ اشاره کرد هشت موضوع برای NET 6:

  • برای توسعه دهندگان و دانش آموزان جدید جذاب است.
  • یک تجربه عالی برای توسعه مشتری.
  • به عنوان یک چارچوب قانع کننده برای ساخت برنامه های بومی ابری شناخته شده است.
  • ارائه مدل‌های ساده‌تر و قابل پیش‌بینی‌تر برای استفاده از دات‌نت با برنامه‌های حیاتی و پاسخگویی بیشتر به نیازهای شرکت‌های بزرگ و مشتریان دولتی.
  • بهبود عملکرد “حلقه داخلی” برای توسعه دهندگان NET، با بهبود بهره وری برای عملکرد ساخت، راه اندازی مجدد داغ، و بارگذاری مجدد داغ.
  • رشد اکوسیستم دات نت از طریق افزایش اطمینان، کیفیت و پشتیبانی.
  • بهبود راه اندازی و توان عملیاتی با استفاده از اطلاعات اجرای زمان اجرا.
  • برآوردن انتظارات توسعه دهندگان.

ویژگی‌های جدید در پیش‌نمایش ۴ عبارتند از:

  • بهبودهایی در Hot Reload، ارائه تجربه ای برای ویرایش کد منبع در حالی که کد در حال اجرا است بدون نیاز به توقف دستی برنامه یا ضربه زدن به نقطه شکست. بهره وری توسعه دهندگان بهبود یافته است. با این نسخه، Hot Reload برای بسیاری از انواع برنامه ها مانند WPF، Windows Forms، WinUI، ASP.NET، Console Apps و سایر فریم ورک ها در بالای زمان اجرا CoreCLR کار می کند. این فناوری همچنین قرار است بعداً به برنامه‌های WebAssembly، iOS و Android که روی Mono اجرا می‌شوند، ارائه شود.
  • Text.Json از IAsyncEnumerable پشتیبانی می‌کند، و System.Text.Json (سریال‌زدایی) را با IAsyncEnumerable< می‌دهد /code> اشیاء. System.Text.Json اکنون از سریال سازی اشیاء IAsyncEnumerable به عنوان آرایه های JSON پشتیبانی می کند.
  • ویژگی JSON DOM قابل نوشتن به عنوان یک مدل برنامه نویسی ساده و با کارایی بالا برای Text.Json، ارائه یک API برای جلوگیری از پیچیدگی سریال سازی و هزینه سنتی یک DOM.
  • به طور قابل توجهی عملکرد FileStream در ویندوز بهبود یافته است.
  • یک منبع LoggerMessageAttribute APIهای گزارش‌گیری عملکردی ایجاد می‌کند.
  • بهبودهای Linq با APIهای جدید.
  • بهبودهای کامپایلر RyuJIT.
  • پشتیبانی از تاریخ، زمان و منطقه زمانی پیشرفته.
  • برای برش IL (زبان متوسط)، هشدارها به طور پیش فرض فعال هستند. هشدارهای برش، توسعه دهندگان را در مورد مکان هایی که برش ممکن است کدهایی را که در زمان اجرا استفاده می شود حذف کند، مطلع می کند.
  • بهبودهای انتشار برنامه تک فایل شامل تجزیه و تحلیل بهبود یافته برای هشدارهای سفارشی.
  • بسته‌های تک فایل اکنون از فشرده‌سازی پشتیبانی می‌کنند.
  • بررسی نسخه SDK داخلی ارائه شده است.
  • Crossgen2، برای تولید و بهینه‌سازی کد از طریق کامپایل‌سازی زودهنگام، اکنون به‌طور پیش‌فرض هنگام انتشار تصاویر ReadyToRun فعال است.

پیش‌نمایش ۳، که در ۸ آوریل رونمایی شد، دارای اضافات و بهبودهای زیر بود:

  • یک API ناامن جدید، CollectionsMarshal.GetValueRef، به روز رسانی مقادیر ساختار در دیکشنری ها را سریعتر می کند. این API برای سناریوهای با عملکرد بالا در نظر گرفته شده است.
  • عملکرد ریخته‌گری رابط ۱۶ درصد به ۳۸ درصد بهبود یافته است که به ویژه برای تطبیق الگوی C# با و بین رابط ها مفید است.
  • تولید کد در RyuJIT از طریق چندین تغییر بهبود یافته است تا فرآیند کارآمدتر شود یا کد حاصل سریعتر اجرا شود.
  • پشتیبانی اولیه از .NET Hot Reload برای پروژه های ASP.NET Core و Blazor با استفاده از dotnet watch در دسترس قرار گرفت. این اولین گام در یک برنامه جامع تر برای ارائه این فناوری به همه توسعه دهندگان دات نت، پشتیبانی از توسعه دسکتاپ، سناریوهای کلاینت بین پلتفرمی در NET MAUI (واسط کاربری برنامه چند پلتفرمی) و موارد دیگر بود.

پیش‌نمایش ۲ که در ۱۷ مارس منتشر شد، دارای بهبودهای API و کتابخانه، افزایش عملکرد زمان اجرا، و ساخت‌های اولیه .NET MAUI (واسطه برنامه چند پلتفرمی) بود که یک جعبه ابزار UI مدرن است که بر پایه Xamarin ساخته شده است. بولتن مایکروسافت در Preview 2 نیز بر مضامین این پلتفرم تأکید دارد. به عنوان بهبود عملکرد "حلقه داخلی"، به عنوان مثال، بهینه سازی ابزارها و گردش های کاری که به طور مکرر و مکرر استفاده می شوند توسط توسعه دهندگان برای به روز رسانی، ساخت و آزمایش کد خود. برای مثال، بارگذاری مجدد داغ، با فعال کردن کد برای ویرایش در حین اجرای برنامه، حتی بدون نصب اشکال‌زدایی، بهره‌وری توسعه‌دهنده را بهبود می‌بخشد. عملکرد راه‌اندازی زمان اجرا، مدل‌های برنامه کاربردی، dotnet CLI و MSBuild نیز به عنوان بخشی از موضوع حلقه‌های داخلی مورد توجه قرار گرفته‌اند.

موضوع دیگر بهبود تجربه توسعه برنامه مشتری است، از جمله یک محصول تلفن همراه یکپارچه تر برای دات نت. به عنوان بخشی از این تلاش، توسعه iOS، Android و MacOS در تجربه .NET SDK ادغام شده و از کتابخانه‌های NET استفاده می‌شود. علاوه بر این، چارچوب Xamarin.Forms cross-UI در حال تبدیل شدن به .NET MAUI است که به توسعه دهندگان این امکان را می دهد تا برنامه هایی را برای Android، Windows و MacOS از همان پایگاه کد ایجاد کنند. برنامه‌های Blazor به‌طور بومی در Windows و MacOS از طریق NET MAUI اجرا می‌شوند.

مایکروسافت همچنین افزودن APIها و بهبودهایی را به کتابخانه های دات نت تبلیغ کرد. برای مثال، JsonSerializer (System.Tex.Json) اکنون از توانایی نادیده گرفتن چرخه ها هنگام سریال کردن یک نمودار شی پشتیبانی می کند، در حالی که PriorityQueue مجموعه جدیدی است که امکان افزودن آیتم های جدید با مقدار و اولویت را فراهم می کند. پیش نمایش ۲ همچنین تجزیه بهتر فرمت های عددی استاندارد و همچنین بهبود زمان اجرا و JIT را به ارمغان آورد.

Preview 1 که در ۱۷ فوریه رونمایی شد، اندروید و iOS را به عنوان دو پلتفرم اول پشتیبانی شده در MAUI معرفی کرد. پیش‌نمایش‌های آینده، پشتیبانی از دسکتاپ MacOS و Windows را اضافه خواهند کرد. Blazor که در بالای MAUI ساخته شده است، برای یک ظرف برنامه بومی و کنترل‌های کانتینر برنامه بومی به پشته رابط کاربری متکی است.