CodeShot

Blazor Server در مقابل Blazor WebAssembly

Blazor Server کد C# را روی سرور اجرا می‌کند و تغییرات UI را از طریق یک اتصال SignalR دائمی به مرورگر می‌فرستد، در حالی که Blazor WebAssembly کل برنامه را به‌صورت باینری .NET در خود مرورگر دانلود و اجرا می‌کند و بعد از بارگذاری اولیه هیچ وابستگی دائمی به سرور ندارد.

ویژگیBlazor ServerBlazor WebAssembly
محل اجرای منطقسرورمرورگر (WASM)
نیاز به اتصال دائمیبله (SignalR)فقط بار اولیه
پشتیبانی آفلاینندارددارد
حجم دانلود اولیهکمزیاد (Runtime .NET)

کِی از Blazor Server استفاده کنیم؟

وقتی می‌خواهید بار اولیه سبک و زمان بارگذاری سریع داشته باشید و برنامه همیشه به یک اتصال پایدار اینترنت دسترسی دارد.

کِی از Blazor WebAssembly استفاده کنیم؟

وقتی می‌خواهید برنامه به‌صورت آفلاین یا PWA کار کند، به مقیاس‌پذیری سرور بدون نگرانی از تعداد اتصالات SignalR نیاز دارید.

مثال Blazor Server

// Blazor Server: منطق روی سرور اجرا می‌شود
// و فقط تغییرات UI از طریق SignalR ارسال می‌شود
<Router AppAssembly="@typeof(Program).Assembly" />

مثال Blazor WebAssembly

// Blazor WebAssembly: کل .NET Runtime
// در مرورگر (WASM) دانلود و اجرا می‌شود
dotnet new blazorwasm -o MyApp

اشتباه رایج

اشتباه رایج استفاده از Blazor Server برای برنامه‌ای با کاربران زیاد و بدون برنامه‌ریزی برای مقیاس‌پذیری اتصالات SignalR است؛ هر کاربر یک اتصال دائمی مصرف می‌کند و روی سرورهای پرترافیک می‌تواند منابع را به‌سرعت مصرف کند.

جمع‌بندی

برای بار اولیه سبک و اتصال شبکه پایدار از Blazor Server و برای عملکرد آفلاین یا کاهش بار سرور از Blazor WebAssembly استفاده کنید.