روش فعالسازی file nesting در VSCode
معرفی Blazor MVC
Rider 2021.2 منتشر شد
.NET 5 Preview 7 is now available and is ready for evaluation. Here’s what’s new in this release:
- Blazor WebAssembly apps now target .NET 5
- Updated debugging requirements for Blazor WebAssembly
- Blazor accessibility improvements
- Blazor performance improvements
- Certificate authentication performance improvements
- Sending HTTP/2 PING frames
- Support for additional endpoints types in the Kestrel sockets transport
- Custom header decoding in Kestrel
- Other minor improvements
بررسی تغییرات Blazor 8x - قسمت سوم - روش ارتقاء برنامههای Blazor Server قدیمی به دات نت 8
همانطور که در این مطلب هم اشاره شد، حالت پیشفرض رندر در برنامههای Blazor 8x، فقط SSR است. بنابراین قسمتهای تعاملی تمام کامپوننتها (ثالث یا غیر ثالث) در این حالت کار نمیکنند؛ مگر اینکه:
- یکی از حالتهای رندر تعاملی را در بالاترین سطح ممکن فعال کنید (اضافه کردن صریح rendermode@ در فایل App.razor به کامپوننتهای HeadOutlet و Routes) تا تمام صفحات و کامپوننتهای برنامه از آن ارثبری کنند.
- یا rendermode@ را در حین تعریف المان کامپوننت، صراحتا ذکر کنید (حالت تعریف رندر جزیرهای).
- یا rendermode@ را در حین تعریف صفحهی جاری ذکر کنید تا تمام کامپوننتهای واقع در آن صفحه، از آن ارثبری کنند.
یک نکتهی تکمیلی: استفاده از BlazorStaticRendererService جهت تولید یک کامپوننت کش کردن قسمتی از محتوای صفحه در برنامههای Blazor SSR
فرض کنید هر کدام از آیتمهای منوی سمت راست صفحه، به همراه آماری مرتبط هم هستند که باید جداگانه محاسبه شوند. اگر قرار باشد بهازای هر کاربر و هر بازدید صفحهای، این اطلاعات دوباره محاسبه شوند، بار قابل توجهی به برنامه و سرور وارد خواهد شد و همچنین مرور صفحات هم بهشدت کند میشوند؛ چون قسمت منوی سمت راست صفحه، هربار باید از ابتدا رندر شود. در این مطلب، با سرویس BlazorStaticRendererService آشنا شدیم که کار آن، رندر کردن محتوای یک کامپوننت و بازگشت رشتهی نهایی معادل آن است. اگر این مورد را به همراه IMemoryCache توکار داتنت، ترکیب کنیم، به کامپوننتی شبیه به cache tag helper توکار ASP.NET Core میرسیم:
<cache expires-after="@TimeSpan.FromMinutes(10)"> @Html.Partial("_WhatsNew") *last updated @DateTime.Now.ToLongTimeString() </cache>
کدهای کامل آنرا در اینجا (^ و ^) میتوانید مطالعه کنید که به این صورت مورد استفاده قرار گرفتهاست تا فقط قسمتی از صفحه را کش کند و نه کل آنرا.
جالب توجهاست که OutputCache مخصوص ASP.NET Core، در Blazor SSR هم کار میکند. برای استفادهی از آن در Blazor SSR، پس از انجام تنظیمات ابتدایی میانافزار مخصوص آن که ترتیب افزودن آن باید به صورت زیر باشد:
app.UseStaticFiles(); app.UseSession(); app.UseRouting(); app.UseAntiforgery(); app.UseOutputCache(); app.MapRazorComponents<App>(); app.MapControllers(); app.Run();
فقط کافی است ویژگی OutputCache را به نحو زیر به فایل razor. خود اضافه کنید:
@attribute [OutputCache(Duration = 1000)]
که البته کار آن، کش کردن محتوای کل یک صفحهاست و نه فقط قسمتی از آن.
کتاب Blazor- A Beginners Guide
The book covers these all-important topics:
- What Blazor is
- The problems it solves and how it solves them
- Strategies for moving to Blazor from previous ASP.NET generations and JavaScript
- Ways to get more out of Blazor by enhancing it with Telerik UI for Blazor to shorten development cycles and benefit your entire team
نسخه نهایی Blazor WebAssembly 3.2.0 تا اواسط ماه May 2020 (ماه جاری) منتشر میشود
The Blazor WebAssembly Release Candidate is here! This release contains all of the features and improvements that we expect to release for the upcoming Blazor WebAssembly release. There are no more breaking changes planned at this point.