Blazor چیست؟
Blazor یک فریمورک full-stack web UI است که به شما امکان می دهد برنامه های کاربردی مدرن با استفاده از C#، HTML، CSS و Razor بسازید. با انتشار .NET 8، Blazor Web App اکنون در دسترس است که به شما امکان می دهد برنامه هایی را توسعه دهید که محتوا را در حالت های رندر سمت سرور، رندر سمت کلاینت، رندر خودکار یا حتی استاتیک ارائه می کنند.
Auto Render یا رندر خودکار Blazor در NET 8
فریمورک Blazor از ابتدای پیدایش با پیشرفت های مستمر مشخص شده است و آن را به یک انتخاب قانع کننده برای توسعه دهندگان تبدیل کرده است. ظهور دات نت 8 یک ویژگی قابل توجه را به ارمغان می آورد - حالت رندر خودکار، که فاصله بین Blazor Server و Blazor WebAssembly را پر می کند. این حالت یک تغییر دهنده بازی است زیرا هر دو حالت را ارائه می دهد: سرعت Blazor Server برای رندر اولیه و قابلیت های Blazor WebAssembly در سمت کلاینت برای تعاملات بعدی. با جابجایی هوشمندانه بین رندر سرور و کلاینت بر اساس موقعیت، حالت رندر خودکار تجربه کاربر را با کاهش زمان بارگذاری و بهبود عملکرد تعاملی افزایش میدهد و Blazor را به چارچوبی جذاب برای توسعه وب مدرن تبدیل میکند.
درک Render Mode ها در Blazor
در Blazor، رندر می تواند در سمت کلاینت (مرورگر کاربر) یا سمت سرور (وب سرور) اتفاق بیفتد. رندر سمت کلاینت(Blazor WebAssembly)مستلزم اجرای برنامه به طور مستقیم در مرورگر کاربر است، در حالی که رندر سمت سرور (Blazor Server) برنامه را روی سرور پردازش می کند و به روز رسانی های UI را از طریق یک اتصال SignalR ارسال می کند.
حالتهای رندر بسیار مهم هستند زیرا مستقیماً بر عملکرد، مقیاسپذیری و تجربه کلی کاربر تأثیر میگذارند. به عنوان مثال، رندر سمت سرور معمولاً منجر به زمان بارگذاری سریعتر میشود، اما ممکن است در طول تعاملات کاربر دچار تأخیر شود.
هر حالت رندر مزایا و معایب منحصر به فردی را ارائه می دهد:
Blazor Server :
مزایا: بارگذاری اولیه سریعتر، پردازش سمت سرور.
معایب: تأخیر در تعاملات کاربر، چالش های مقیاس پذیری با افزایش کاربران.
Blazor WebAssembly:
مزایا: پردازش سمت کلاینت، بدون وابستگی سرور.
معایب: بارگذاری اولیه کندتر به دلیل دانلود برنامه و .NET runtime.
Auto Render Mode:
مزایا: بارگذاری اولیه سریعتر را با تعاملات سمت کلاینت ترکیب می کند.
معایب: پیچیدگی در راه اندازی، بازگشت احتمالی به رندر سرور در صورت ناکافی بودن منابع کلاینت.
انتخاب حالت رندر استراتژیک است زیرا با اهداف برنامه در مورد عملکرد، سرعت تعامل با کاربر و بار سرور مطابقت دارد و تجربه کاربری بهینه و پاسخگو را تضمین می کند.
حالت رندر خودکار یا Auto RenderMode چیست؟
حالت رندر خودکار در Blazor ترکیبی از Blazor Server و Blazor WebAssembly است که مزایای بارگذاری اولیه سریع و عملیات تعاملی سمت کلاینت را در هم می آمیزد. این حالت خاص دات نت 8 است که به محدودیت های فردی Blazor Server و Blazor WebAssembly می پردازد.
SignalR چیست؟
SignalR یک کتابخانه برای توسعه دهندگان .NET است که فرآیند افزودن قابلیت real-time به برنامه ها را ساده می کند. قابلیت real-time توانایی ارسال محتوای سرور به کلاینت های متصل در زمان واقعی است.
SignalRمی تواند برای افزودن هر نوع قابلیت real-time به برنامه های.NETاستفاده شود. در حالی که اپ های چت اغلب به عنوان مثال استفاده می شود، شما می توانید کارهای بسیار بیشتری انجام دهید. هر زمانی که یک کاربر صفحه وب را برای دیدن داده های جدید رفرش می کند، یا صفحه نظرسنجی طولانی برای بازیابی داده های جدید اجرا می کند، کاندیدای استفاده از SignalR است. به عنوان مثال می توان به داشبورد و برنامه های نظارتی، برنامه های کاربردی مشترک (مانند ویرایش همزمان اسناد)، به روز رسانی پیشرفت کار و فرم های بلادرنگ اشاره کرد.
SignalRهمچنین انواع کاملاً جدیدی از برنامه های کاربردی وب را فعال می کند که به بروز رسانی با فرکانس بالا از سرور نیاز دارند، به عنوان مثال، بازی های real-time.
SignalR یک API ساده برای ایجاد فراخوانی RPC ارائه میکند که توابع جاوا اسکریپت را در مرورگرهای کلاینت (و دیگر پلتفرمهای کلاینت) از کد NET سمت سرور فراخوانی میکند. SignalR همچنین شامل API برای مدیریت اتصال (به عنوان مثال رخدادهای اتصال و قطع اتصال) و گروه بندی اتصالات است.
SignalR مدیریت اتصال را به طور خودکار مدیریت می کند و به شما امکان می دهد پیام ها را به طور همزمان برای همه کلاینت های متصل پخش کنید، مانند یک اتاق گفتگو. همچنین می توانید برای کلاینت های خاصی پیام ارسال کنید. ارتباط بین سرویس گیرنده و سرور، بر خلاف اتصال HTTP کلاسیک که برای هر ارتباط دوباره برقرار می شود، پایدار است.
سرفصل دوره ایجاد اپلیکیشن چت با Blazor Auto و SignalR
ما در این دوره آموزشی با استفاده از فریمورک Blazor در دات نت 8 و SignalR به پیاده سازی یک اپلیکیشن چت خواهیم پرداخت.
همچنین در این دوره آموزشی از رندر خودکار یا Blazor Auto Render Mode استفاده خواهیم کرد. از امکانات این اپ می توان به احرازهویت، چت خصوصی، ایجاد گروه و چت گروهی، ارسال فایل در چت، دریافت delivery پیام های ارسال شده، وضعیت آنلاین یا آفلاین بودن کاربران به صورت real-time و ... اشاره کرد.
پیش نیازها :
برای این دوره آشنایی با فریمورک Blazor، SignalR و Web API الزامی می باشد.
برای یادگیری Blazor می توانید دوره های آموزش مقدماتی تا پیشرفته Blazor WebAssembly و آموزش پروژه محور Blazor: Full stack Web UI را دنبال نمایید.
برای آشنایی با SignalR می توانید دوره آموزش SignalR در Asp.Net Core را دنبال نمایید.
برای آشنایی و یادگیری Web API می توانید دوره های آموزش جامع Web API و آموزش Minimal API را دنبال نمایید.
ما همچنین در این دوره از معماری Vertical Slice استفاده خواهیم کرد. برای آشنایی با این معماری می توانید دوره معماری Vertical Slice در Asp.net Core را دنبال نمایید.
در این پروژه برای ارسال فایل در چت های خصوصی و گروهی از هر دو روش HttpClient و gRPC را پیاده سازی خواهیم کرد. برای آشنایی با gRPC می توانید آموزش gRPC در Asp.net Core را دنبال نمایید.
تکنولوژی ها و فریمورک ها
ما در این دوره از جدیدترین و بروزترین تکنولوژی ها و فریمورک های روز دنیا استفاده خواهیم کرد.
از مهمترین آن ها می توان به موارد زیر اشاره کرد:
- Blazor Web App- Auto Render Mode
- SignalR
- Vertical Slice Architecture
- CQRS Pattern With MediatR
- Result Pattern
- Minimal API
- Identity
EF Core - Carter
- MudBlazor
- gRPC
- Streaming
برای ثبت نظر باید در سایت ثبت نام یا ورود نمایید