موضوع مقاله: بلیزر (نرم‌افزار آزاد) | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # بلیزر (نرم‌افزار آزاد) | مقدمه: از بلِیزِر می‌توان برای توسعه برنامه‌های تک‌صفحه‌ای، برنامه‌های موبایل و برنامه‌های رندر شده در سمت سرور با استفاده از فناوری‌های دات‌نت استفاده کرد. | ## بخش 1: بلیزر (نرم‌افزار آزاد) | تاریخچه در سال ۲۰۱۷، در کنفرانس NDC Oslo، استیو ساندرسون، مهندس نرم‌افزار در مایکروسافت، یک چارچوب آزمایشی برای توسعهٔ برنامه‌های وب سمت کلاینت با دات‌نت را معرفی کردسخنرانی اصلی در NDC Oslo که آن را «بلِیزِر» نامید. این دمو شامل یک برنامهٔ تعاملی بود که در مرورگر با استفاده از وب‌اسمبلی اجرا می‌شد و محیط توسعهٔ اولیه‌ای در ویژوال استودیو داشت. ساندرسون نشان داد که چگونه می‌توان با استفاده از سی‌شارپ و نحو ریزور، کامپوننت‌های تعاملی ساخت. پذیرش و انتشار رسمی بلِیزِر به عنوان یک پروژهٔ رسمی متن‌باز توسط مایکروسافت پذیرفته شد و در سال ۲۰۱۸، به عنوان بخشی از دات‌نت کور نسخهٔ ۳٫۱، Blazor Server به صورت عمومی منتشر شد. این نسخه امکان توسعهٔ برنامه‌های وب تعاملی با محوریت سرور را فراهم می‌کرد که مرورگر کلاینت را از طریق وب‌ساکت به‌روزرسانی می‌کرد. برخلاف نمونهٔ اولیه، این نسخه از زمان‌اجرای Mono روی وب‌اسمبلی استفاده می‌کرد که همان زمان‌اجرایی است که برای توسعهٔ برنامه‌های موبایل با دات‌نت MAUI (پیش‌تر زامارین) استفاده می‌شود. تغییرات نسخه‌ها با انتشار دات‌نت ۵، بلِیزِر دیگر در اینترنت اکسپلورر و نسخهٔ قدیمی مایکروسافت اج کار نمی‌کرد.سکوهای پشتیبانی شده در دات‌نت ۵ در سال ۲۰۲۳، با انتشار دات‌نت ۸، بلِیزِر در سمت سرور تغییرات اساسی‌ای را تجربه کرداعلامیهٔ دات‌نت ۸ که امکان رندر صفحات در سمت سرور (SSR) بدون قابلیت تعاملی ذاتی) را فراهم می‌ساخت. با این تغییر، توسعه‌دهندگان می‌توانند به ازای هر کامپوننت (یا صفحه) انتخاب کنند که آیا باید تعاملی باشد یا خیر، و اینکه آیا باید در سرور اجرا شود یا در مرورگر با استفاده از وب‌اسمبلی. کامپوننت‌ها کامپوننت‌ها در بلِیزِر به صورت رسمی با نام کامپوننت‌های ریزور شناخته می‌شوند. ساختار کامپوننت یک کامپوننت ریزور عمدتاً از اچ‌تی‌ام‌ال تشکیل شده که با نحو ریزور ترکیب می‌شود. | ## بخش 2: بلیزر (نرم‌افزار آزاد) | این نحو امکان استفاده از سی‌شارپ را به صورت درون‌خطی فراهم می‌کند تا رندرینگ را کنترل نماید. مدل کامپوننت در بلِیزِر تضمین می‌کند که هنگامی که وضعیت کامپوننت تغییر می‌کند (معمولاً در پاسخ به اقدامات کاربر)، نشانه‌گذاری رندر شده به‌روزرسانی می‌شود. روش‌های توسعه اگرچه هم نشانه‌گذاری و هم کد سی‌شارپ می‌توانند در یک فایل `.razor` قرار گیرند، اما امکان استفاده از یک فایل جداگانه به نام کد پشتیبان (code-behind) با یک کلاس جزئی نیز وجود دارد. اچ‌تی‌ام‌ال و نشانه‌گذاری ریزور یک کامپوننت به کدی تبدیل می‌شود که یک درخت رندر می‌سازد و این درخت در نهایت رندرینگ نهایی را هدایت می‌کند. رندرینگ ایستای سمت سرور (SSR) به‌صورت پیش‌فرض، کامپوننت‌ها به‌صورت اچ‌تی‌ام‌ال ایستا توسط سرور رندر می‌شوند و قابلیت تعاملی ندارند. حالت رندر در سلسله مراتب کامپوننت‌ها از والد بالاترینی که حالت رندر مشخصی دارد به ارث می‌رسد. کامپوننت‌های فرزند نمی‌توانند این حالت را بازنویسی کنند، مگر اینکه حالت رندرشان به صورت پیش‌فرض روی سرور ایستا تنظیم شده باشد. تعامل توسط سرور کنترل شده و تغییرات از طریق وب سوکت و با استفاده از سیگنالار به کلاینت ارسال می‌شود. وب‌اسمبلی تعاملی - کامپوننت در حالت تعاملی در مرورگر و با استفاده از وب‌اسمبلی اجرا می‌شود. تعاملی خودکار - در ابتدا کامپوننت در حالت سرور تعاملی بارگیری می‌شود و همزمان بستهٔ بلِیزِر دانلود می‌شود. | ## بخش 3: بلیزر (نرم‌افزار آزاد) | پیش‌رندرینگ کامپوننت‌های تعاملی قبل از فعال شدن در کلاینت، ابتدا در سرور پیش‌رندر می‌شوند. پیمایش پیشرفته این ویژگی پیمایش در سایت‌های ایستا را بسیار روان‌تر می‌کند، به گونه‌ای که حس یک برنامه تک‌صفحه‌ای (SPA) را القا می‌کند. هنگام پیمایش از یک صفحهٔ ایستا به صفحهٔ دیگر، برنامه به صورت هوشمندانه تنها محتوای صفحهٔ مقصد را دریافت کرده و فقط تغییرات لازم را در DOM اعمال می‌کند. وب‌اسمبلی (مستقل) این مدل یک برنامهٔ تعاملی مستقل مبتنی بر وب‌اسمبلی است که در مرورگر کلاینت اجرا می‌شود. با ورود به برنامه در مرورگر، بستهٔ برنامه دانلود شده و درون محیط حفاظت‌شدهٔ مرورگر اجرا می‌شود. ترکیبی اجازه می‌دهد برنامه‌های بلِیزِر درون یک برنامهٔ بومی با استفاده از وب‌ویو اجرا شوند.مستندات مایکروسافت رندرینگ در فرآیند میزبان انجام می‌شود و نیاز به وب سرور ندارد. از این روش برای ساخت برنامه‌های موبایل بومی با بلِیزِر و استفاده از دات‌نت MAUI استفاده می‌شود. سرور (قدیمی) هدف این مدل فعال کردن کامپوننت‌های تعاملی مبتنی بر سرور بود که تغییرات از طریق وب‌ساکت‌ها به کلاینت ارسال می‌شد. توسعه وب با بلِیزِر: راهنمای عملی برای توسعه‌دهندگان دات‌نت برای ساخت رابط‌های کاربری تعاملی با سی‌شارپ. | ## جمع‌بندی | بلِیزِر وب‌اسمبلی با مثال: راهنمای پروژه‌محور برای ساخت برنامه‌های وب با دات‌نت، بلِیزِر وب‌اسمبلی و سی‌شارپ.