آپدیت های ASP.NET Core در NET 6 Preview 2.

چهارشنبه 18 فروردین 1400

NET 6 Preview 2. اکنون در دسترس است و شامل پیشرفت‌های جدید و بسیار خوبی در ASP.NET Core است.

آپدیت های ASP.NET Core در NET 6 Preview 2.

در اینجا موارد جدیدی در این نسخه پیش نمایش وجود دارد:

آپدیت Razor compiler برای استفاده از source generatorها

پشتیبانی از event argument های سفارشی در Blazor

جداسازی CSS برای MVC Views و Razor Pages

استنباط نوع های جنریک کامپوننت از کامپوننت‌های ancestor (جد)

حفظ حالت از پیش رندر شده در برنامه های Blazor

تفسیرهایی برای SignalR – Nullable

شروع کار

برای شروع کار با ASP.NET Core در  NET 6 SDK ، .NET 6 Preview 2. را نصب کنید.

اگر از ویژوال استودیو بر روی ویندوز استفاده می‌کنید، توصیه می‌کنیم آخرین پیش نمایش Visual Studio 2019 16.10 را نصب کنید. اگر از macOS استفاده می‌کنید، توصیه می‌کنیم آخرین پیش نمایش Visual Studio 2019 برای Mac 8.10 را نصب کنید.

ارتقاء یک پروژه موجود

برای ارتقاء یک پروژه موجود ASP.NET Core از NET 6 Preview 1. به NET 6 Preview 2.:

همه رفرنس‌های پکیج *Microsoft.AspNetCore. را به 6.0.0-Preview.2.* آپدیت کنید.

همه رفرنس‌های پکیج *Microsoft.AspNetCore. را به 6.0.0-Preview.2.* آپدیت کنید.

لیست کامل تفکیک تغییرات ASP.NET Core برای NET 6. را مشاهده کنید.

Razor compiler برای استفاده از source generator ها آپدیت شده است

تیم دات نت Razor compiler را در این پیش نمایش آپدیت کرده است. Source generatorها در حین کامپایل اجرا می‌شوند و می‌توانند آنچه را که کامپایل شده است را بررسی کنند تا فایل‌های دیگر که کامپایل شده‌اند را همراه با بقیه پروژه تولید کنند. استفاده از Source generatorها Razor compiler را ساده کرده است و به طور قابل توجهی سرعت زمانbuild  را افزایش می‌دهد.

نمودار زیر بهبودهای زمان build را هنگام استفاده از Razor compiler جدید برای ساخت قالب‌های پیش فرض MVC و Blazor Server نشان می‌دهد:

پشتیبانی از event argument های سفارشی در Blazor

پشتیبانی Blazor برای event های سفارشی اکنون گسترش یافته است تا از event argumentهای سفارشی پشتیبانی کند. این به شما اجازه می‌دهد تا داده‌های دلخواه را به NET event handlers. با رویدادهای (event) سفارشی ارسال کنید.

جداسازی CSS برای ویوهای MVC و Razor Pageها

اکنون جداسازی CSS با MVC views و Razor Pages پشتیبانی می‌شود درست مثل آنچه که در کامپوننت‌های Blazor است. برای افزودن CSS مخصوص یک view یا page، به سادگی فایل cshtml.css را متناسب با نام فایل cshtml اضافه کنید.

استنباط نوع های جنریک کامپوننت از کامپوننت‌های ancestor (جد)

وقتی از کامپوننت جنریک Blazor استفاده می‌کنید، مثل Grid<TItem> یا ListView<TItem>، Blazor می‌تواند به طور معمول پارامترهای جنریک را بر اساس پارامترهای ارسال شده به کامپوننت استنباط کند، پس لازم نیست صریحا آن‌ها را مشخص کنید. اگرچه در کامپوننت‌های سطح بالا ممکن است شما چندین کامپوننت جنریک داشته باشید که در جایی که نوع پارامترهایی که قبلا تعیین شده‌اند تا مطابق باشند، با هم استفاده می‌شوند، مثل Grid<TItem> و Column<TItem>. در این سناریوهای ترکیبی، پارامترهای جنریک معمولا باید صریحا مشخص شوند.

نگهداری وضعیت از قبل رندر شده در برنامه‌های Blazor

برنامه‌های Blazor را می‌توان از طریق سرور از قبل رندر کرد تا زمان بارگیری برنامه سریع انجام شود. HTML از قبل رندر شده می‌تواند بلافاصله رندر شود در حالی که برنامه برای تعامل در پس زمینه تنظیم شده است. با این حال، هر وضعیتی که در حین پیش رندر شدن استفاده شده است از بین می‌رود و باید هنگامی که برنامه به طور کامل بارگیری می‌شود دوباره ایجاد شود. اگر هر وضعیتی به صورت غیر همزمان تنظیم شود، پس UI ممکن است سو سو بزند زیرا UI از قبل رندر شده با placeholderهای موقت جایگزین می‌شود و دوباره به طور کامل رندر می‌شود.

برای حل این مشکل، تیم دات نت با استفاده از <preserve-component-state /> tag helper پشتیبانی از وضعیتی که می‌خواهید ادامه دهید را به صفحه از قبل رندر شده اضافه کرده است. در برنامه خود شما تصمیم می‌گیرید که با استفاده از سرویس جدید ComponentApplicationState کدام وضعیت را می‌خواهید ادامه دهید. وقتی که وضعیت در رابطه با مورد نگهداری شده در صفحه از قبل رندر شده است، رویداد ComponentApplicationState.OnPersisting فعال می‌شود. سپس شما می‌توانید هنگام تنظیم اولیه کامپویننت‌های خود هر وضعیتی که می‌خواهید ادامه دهید را بازیابی کنید.

تفسیرهایی برای SignalR – Nullable

پکیج ASP.NET Core SignalR Client برای قابلیت null پذیری تفسیرهایی را اعمال کرده است. این یعنی اینکه C# compiler وقتی که شما قابلیت null پذیری را فعال می‌کنید، بر اساس مدیریت شما برای null ها در SignalR APIs، بازخورد مناسبی را ارائه می‌دهد. سرور SignalR برای قابلیت null پذیری قبلا در NET 5. آپدیت شده است، اما کمی اصلاحات در NET 6. انجام شده است.

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

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

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

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