فرق بین (Blazor Client (web Assembly و Blazor Server چیست ؟
فرق بین (Blazor Client (web Assembly و Blazor Server چیست ؟ چرا مایکروسافت در ویژوال استودیو هر دو گزینه رو قرار داده ؟
تفاوت Blazor Client Side و Blazor Server Side
بلیزر یا Blazor یکی تکنولوژی های جدید مایکروسافت هست که هدف اصلی اون ایجاد صفحات تک صفحه ای یا Single Page Application می باشد. در سپتامبر 2019 نسخه Blazor Server Side به همراه Core 3.0 ارایه شد و در ماه مه سال 2020 یعنی یکسال بعد هم نسخه Blazor Client Side که Blazor Web Assembly هم گفته میشه به همراه Core 5.0 ارایه شد.
برخی از ویژگیهای Blazor Server Side
در مدل Blazor Server Side یا میزبانی سمت سرور، بلیزر از داخل یک برنامه Asp.net Core از داخل سرور اجرا می شود. یعنی همه عملیات توسط سرور انجام می شود و نتیجه نهایی به کلاینت ارجاع داده می شود. به روزرسانی های سمت کلاینت و مدیریت رویدادهای کاربر در مدل سمت سرور از طریق یک اتصال SignalR انجام می شود.
در مدل Blazor Server Side :
- کدهای سی شارپ مربوط به Blazor در سمت سرور اجرا می شود.
- برای دسترسی به کدهای Dom یا همان Html از جاوااسکریپت استفاده می شود.
- پیامهای بین سرور و کلاینت و به روزرسانی های صفحه از طریق SignalR انجام می شود.
- در صورت تغییر DOM یا Html سرور پیامهای بروزرسانی را به عقب برمیگرداند تا نتیجه به کاربر نمایش داده شود.
برخی از ویژگیهای Blazor Client Side یا Web Assembly
در مدل Blazor Client Side، برنامه Blazor همه کتابخانه ها و وابستگی های مربوط به .Net را از سرور دانلود کرده و روی مرورگر کلاینت بارگزاری می کند و برنامه مستقیما روی UI مرورگر اجرا می شود. ضمنا همه بروزرسانی ها و تغییرات رابط کاربری در همان لحظه و روی مرورگر کاربر اجرا می شود.
در مدل Blazor Web Assembly
- مدل WASM روی مرورگر کاربر اجرا می شود و از توانایی حافظه و CPU کلاینت استفاده می کند.
- اولین اجرای پروژه ممکن است قدری کند باشد. چون در اولین اجرا بایستی برخی فایلهای مورد نیاز مثل CLR و WebAssembly و ... دانلود شود.
- اجرای دستورات Blazor در کلاینت به صورت کاملا ایمن صورت می پذیرد. (secure WASM sandbox)
- در این مدل Blazor به DOM به صورت مستقیم دسترسی دارد.
مزایا و معایب Blazor Server Side
مزایا
- بارگزاری سریعتر نسبت به روش WASM
- دسترسی به منابع ایمن مانند دیتابیس
- پشتیبانی از اکثر مرورگرها. مدل WASM از برخی از مرورگرهای قدیمی تر پشتیبانی نمی کند.
- کدهای سی شارپ به سمت مرورگر ارسال نمی شود.
- پشتیبانی محتوا توسط موتورهای جست و جو
معایب
- داشتن تاخیر اضافی به دلیل ارسال مرتب اطلاعات به سمت جلو و عقب برای به روزرسانی اطلاعات
- پشتیبانی آفلاین ندارد.
- نیاز به سرور دارد.
- مقیاس پذیری می تواند چالش برانگیز باشد.
مزایا و معایب Blazor WebAssembly
مزایا
- کدنویسی سریعتر در سمت UI
- عملکرد بهتر کدها
- پشتیبانی به صورت آفلاین
- قابلیت استفاده از CDN بدون نیاز به سرور
- پشتیبانی از نسخه های قدیمی سی شارپ مثل سی شارپ 2
معایب
- سخت بودن اشکال زدایی
- چهت دسترسی به منابع ایمن مثل دیتابیس نیاز به لایه امنیتی و API دارد.
- عدم پشتیبانی مناسب توسط موتورهای جست و جو
نتیجه گیری
اگر تعداد کاربران شما خیلی زیاد است و کدهای شما خیلی مهم و حساس نیست مدل WASM مناسب می باشد اما اگر احساس می کنید کدهای شما خیلی حساس و مهم است بهتر است از مدل Server Side استفاده کنید.
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2