بلیزر (نرم‌افزار آزاد) کیست؟ توضیح بده.
"این مقاله در حال ترجمه از ویکی انگلیسی استلطفا حذف نشود." بلِیزِر (Blazor) یک چارچوب وب رایگان و متن‌باز است که به توسعه‌دهندگان امکان می‌دهد تا با استفاده از سی‌شارپ و اچ‌تی‌ام‌ال، رابط کاربری تحت وب مبتنی بر کامپوننت ایجاد کنند. این چارچوب توسط مایکروسافت به عنوان بخشی از چارچوب برنامه‌های وب ASP.NET Core توسعه داده می‌شود.از بلِیزِر می‌توان برای توسعه برنامه‌های تک‌صفحه‌ای، برنامه‌های موبایل و برنامه‌های رندر شده در سمت سرور با استفاده از فناوری‌های دات‌نت استفاده کرد.تاریخچه.در سال ۲۰۱۷، در کنفرانس "NDC Oslo"، "استیو ساندرسون"، مهندس نرم‌افزار در مایکروسافت، یک چارچوب آزمایشی برای توسعهٔ برنامه‌های وب سمت کلاینت با دات‌نت را معرفی کرد که آن را «بلِیزِر» نامید. این دمو شامل یک برنامهٔ تعاملی بود که در مرورگر با استفاده از وب‌اسمبلی اجرا می‌شد و محیط توسعهٔ اولیه‌ای در ویژوال استودیو داشت. ساندرسون نشان داد که چگونه می‌توان با استفاده از سی‌شارپ و نحو ریزور، کامپوننت‌های تعاملی ساخت. این برنامه سپس به اسمبلی‌های دات‌نت کامپایل می‌شد که روی یک زمان‌اجرای سبک‌وزن متن‌باز شخص ثالث به نام "DotNetAnywhere" که به وب‌اسمبلی کامپایل شده بود، اجرا می‌شد.نام «بلِیزِر» (Blazor) —‌ همان‌طور که استیو ساندرسون توضیح داد—‌ ترکیبی از دو واژهٔ «Browser» (مرورگر) و «Razor» (ریزور، از نحو ریزور مورد استفاده) است.پذیرش و انتشار رسمی.بلِیزِر به عنوان یک پروژهٔ رسمی متن‌باز توسط مایکروسافت پذیرفته شد و در سال ۲۰۱۸، به عنوان بخشی از دات‌نت کور نسخهٔ ۳٫۱، Blazor Server به صورت عمومی منتشر شد. این نسخه امکان توسعهٔ برنامه‌های وب تعاملی با محوریت سرور را فراهم می‌کرد که مرورگر کلاینت را از طریق وب‌ساکت به‌روزرسانی می‌کرد. مدت کوتاهی پس از آن، Blazor WebAssembly منتشر شد. برخلاف نمونهٔ اولیه، این نسخه از زمان‌اجرای Mono روی وب‌اسمبلی استفاده می‌کرد که همان زمان‌اجرایی است که برای توسعهٔ برنامه‌های موبایل با دات‌نت MAUI (پیش‌تر زامارین) استفاده می‌شود.کد منبع بلِیزِر در ابتدا در مخزن جداگانه‌ای در گیت‌هاب قرار داشت، تا اینکه در مخزن یک‌پارچهٔ ASP.NET Core ادغام شد. از آن زمان تاکنون، توسعهٔ این پروژه از همانجا ادامه یافته است.تغییرات نسخه‌ها.با انتشار دات‌نت ۵، بلِیزِر دیگر در اینترنت اکسپلورر و نسخهٔ قدیمی مایکروسافت اج کار نمی‌کرد.در سال ۲۰۲۳، با انتشار دات‌نت ۸، بلِیزِر در سمت سرور تغییرات اساسی‌ای را تجربه کرد که امکان رندر صفحات در سمت سرور (SSR) بدون قابلیت تعاملی ذاتی) را فراهم می‌ساخت. این تغییر بلِیزِر را به جایگزینی برای صفحات ریزور MVC تبدیل کرد. با این تغییر، توسعه‌دهندگان می‌توانند به ازای هر کامپوننت (یا صفحه) انتخاب کنند که آیا باید تعاملی باشد یا خیر، و اینکه آیا باید در سرور اجرا شود یا در مرورگر با استفاده از وب‌اسمبلی. این موارد به عنوان «حالت‌های رندر تعاملی» شناخته می‌شوند.کامپوننت‌ها.کامپوننت‌ها در بلِیزِر به صورت رسمی با نام کامپوننت‌های ریزور شناخته می‌شوند.ساختار کامپوننت.یک کامپوننت ریزور عمدتاً از اچ‌تی‌ام‌ال تشکیل شده که با نحو ریزور ترکیب می‌شود. این نحو امکان استفاده از سی‌شارپ را به صورت درون‌خطی فراهم می‌کند تا رندرینگ را کنترل نماید.مدل کامپوننت در بلِیزِر تضمین می‌کند که هنگامی که وضعیت کامپوننت تغییر می‌کند (معمولاً در پاسخ به اقدامات کاربر)، نشانه‌گذاری رندر شده به‌روزرسانی می‌شود.روش‌های توسعه.اگرچه هم نشانه‌گذاری و هم کد سی‌شارپ می‌توانند در یک فایل `.razor` قرار گیرند، اما امکان استفاده از یک فایل جداگانه به نام کد پشتیبان (code-behind) با یک کلاس جزئی نیز وجود دارد.فرآیند کامپایل.کامپوننت‌ها به کلاس‌های دات‌نت کامپایل می‌شوند. اچ‌تی‌ام‌ال و نشانه‌گذاری ریزور یک کامپوننت به کدی تبدیل می‌شود که یک درخت رندر می‌سازد و این درخت در نهایت رندرینگ نهایی را هدایت می‌کند.نمونه کد.کد زیر یک نمونه از فریم ورک بلیزر می باشد که کاربر با کلیک روی یک کلید، می تواند مقدار یک متغیر را افزایش دهد:&lt;h1&gt;Counter&lt;/h1&gt;&lt;p&gt;Count: @count&lt;/p&gt;&lt;button @onclick="Increment"&gt;Increment&lt;/button&gt;@code private int count = 0; private void Increment() count++;مدل‌های میزبانی.برنامه‌های بلِیزِر را می‌توان به روش‌های مختلفی میزبانی کرد. در ادامه مدل‌های میزبانی در نسخهٔ دات‌نت ۸ آمده‌است.برنامه وب بلِیزِر (سرور).برنامه‌ای مبتنی بر سرور که به عنوان بخشی از یک برنامهٔ ASP.NET Core اجرا می‌شود.رندرینگ ایستای سمت سرور (SSR).به‌صورت پیش‌فرض، کامپوننت‌ها به‌صورت اچ‌تی‌ام‌ال ایستا توسط سرور رندر می‌شوند و قابلیت تعاملی ندارند. با تنظیم حالت رندر می‌توان برای هر کامپوننت قابلیت تعاملی فعال کرد.این روش معادل روشی است که نمایش‌های MVC و صفحات ریزور رندر می‌شوند.حالت‌های رندر.منبع: در دات‌نت ۸، بلِیزِر مفهوم حالت‌های رندر را معرفی کرد که تعیین می‌کند آیا کامپوننت‌های ریزور تعاملی هستند و چه چیزی این تعامل را کنترل می‌کند.حالت رندر در سلسله مراتب کامپوننت‌ها از والد بالاترینی که حالت رندر مشخصی دارد به ارث می‌رسد. کامپوننت‌های فرزند نمی‌توانند این حالت را بازنویسی کنند، مگر اینکه حالت رندرشان به صورت پیش‌فرض روی سرور ایستا تنظیم شده باشد.پیش‌رندرینگ.کامپوننت‌های تعاملی قبل از فعال شدن در کلاینت، ابتدا در سرور پیش‌رندر می‌شوند. این رفتار به‌صورت پیش‌فرض فعال است اما می‌توان آن را غیرفعال کرد.پیمایش پیشرفته.این ویژگی پیمایش در سایت‌های ایستا را بسیار روان‌تر می‌کند، به گونه‌ای که حس یک برنامه تک‌صفحه‌ای (SPA) را القا می‌کند.هنگام پیمایش از یک صفحهٔ ایستا به صفحهٔ دیگر، برنامه به صورت هوشمندانه تنها محتوای صفحهٔ مقصد را دریافت کرده و فقط تغییرات لازم را در DOM اعمال می‌کند. در نتیجه برخلاف روش سنتی، صفحه هنگام بارگذاری کامل چشمک نمی‌زند.وب‌اسمبلی (مستقل).این مدل یک برنامهٔ تعاملی مستقل مبتنی بر وب‌اسمبلی است که در مرورگر کلاینت اجرا می‌شود.با ورود به برنامه در مرورگر، بستهٔ برنامه دانلود شده و درون محیط حفاظت‌شدهٔ مرورگر اجرا می‌شود.برنامه‌های وب‌اسمبلی را می‌توان به برنامهٔ وب پیشرونده (PWA) نیز تبدیل کرد.پیش از دات‌نت ۸، قالبی وجود داشت که در آن برنامهٔ بلِیزِر وب‌اسمبلی درون یک برنامهٔ ASP.NET Core حاوی APIهای وب میزبانی می‌شد. این قالب به نفع قالب برنامهٔ وب بلِیزِر حذف شد، اگرچه عملکرد آن هنوز پابرجاست.ترکیبی.اجازه می‌دهد برنامه‌های بلِیزِر درون یک برنامهٔ بومی با استفاده از وب‌ویو اجرا شوند. رندرینگ در فرآیند میزبان انجام می‌شود و نیاز به وب سرور ندارد.برنامه‌های ترکیبی می‌توانند در WPF یا برنامه‌های Windows Forms میزبانی شوند.از این روش برای ساخت برنامه‌های موبایل بومی با بلِیزِر و استفاده از دات‌نت MAUI استفاده می‌شود.سرور (قدیمی).هدف این مدل فعال کردن کامپوننت‌های تعاملی مبتنی بر سرور بود که تغییرات از طریق وب‌ساکت‌ها به کلاینت ارسال می‌شد.کامپوننت‌ها درون یک صفحهٔ ریزور MVC رندر می‌شدند.همچنین امکان پیش‌رندرینگ کامپوننت‌های وب‌اسمبلی را فراهم می‌کرد.این مدل میزبانی به صورت رسمی با نام "بلِیزِر سرور" شناخته می‌شد.در نسخه‌های جدید به نفع مدل «برنامهٔ وب بلِیزِر» منسوخ شده است.