Blazor

Blazor چیست؟

Blazor یک چارچوب وب فرانت اند دات نت است که از رندر server-side و Client-side  در یک مدل برنامه نویسی واحد پشتیبانی می کند.

در Blazor می توانید:

  • با استفاده از سی شارپ، UI های تعاملی غنی ایجاد کنید.
  • منطق برنامه سمت سرور و سمت کلاینت نوشته شده در دات نت را به اشتراک بگذارید.
  • برای پشتیبانی گسترده مرورگر، از جمله مرورگرهای تلفن همراه، رابط کاربری را به صورت HTML و CSS ارائه دهید.
  • با دات نت و Blazor برنامه های ترکیبی دسکتاپ و موبایل بسازید.

 استفاده از دات نت برای توسعه وب سمت مشتری مزایای زیر را ارائه می دهد:

  • کد های خود را در سی شارپ می بنویسید، که می تواند بهره وری در توسعه و نگهداری برنامه را بهبود بخشد.
  • از اکوسیستم دات نت موجود کتابخانه های دات نت استفاده کنید.
  • از عملکرد، قابلیت اطمینان و امنیت دات نت بهره مند شوید.
  • می توانید با یک محیط توسعه مانند Visual Studio یا Visual Studio Code در Windows، Linux، یا macOS کار کنید و پلتفرم های میزبانی مدرن مانند Docker ادغام شوید.

کامپوننت ها در Blazor

برنامه های Blazor بر اساس Component هستند. یک Component در Blazor یک عنصر از UI است، مانند صفحه، گفتگو یا فرم ورود داده.

کامپوننت‌ ها کلاس‌های C# هستند که در اسمبلی NET تعبیه شده‌اند که:

  • منطق رندر رابط کاربری انعطاف پذیر را تعریف کنید.
  • مدیریت رویدادهای کاربر
  • قابل تودرتو و استفاده مجدد
  • می توان به صورت کتابخانه های کلاس Razor یا بسته های NuGet به اشتراک گذاشته و توزیع کرد.

کلاس کامپوننت معمولاً به شکل صفحه نشانه گذاری Razor با پسوند فایل .razor نوشته می شود. کامپوننت ها در Blazor به طور رسمی به عنوان اجزای Razor و به طور غیر رسمی به عنوان اجزای Blazor شناخته می شوند. Razor یک نحو برای ترکیب نشانه گذاری HTML با کد C# است که برای بهره وری توسعه دهندگان طراحی شده است.

با Blazor یک برنامه FullStack بسازید

Blazor Web App  یک معماری مبتنی بر کامپوننت را با رندر سمت سرور و تعامل کامل سمت کلاینت در یک solution ارائه می دهد، که در آن می توانید بین حالت های رندر سمت سرور و سمت کلاینت جابجا شوید و حتی آنها را در همان صفحه ترکیب کنید.

Blazor Web Apps  می‌تواند با رندر کردن استاتیک محتوای HTML از سرور در پاسخ به درخواست‌ها، UI  را به سرعت به مرورگر ارائه دهد. صفحه به سرعت بارگیری می شود زیرا رندر رابط کاربری به سرعت در سرور بدون نیاز به دانلود یک بسته بزرگ جاوا اسکریپت انجام می شود.  Blazor همچنین می‌تواند تجربه کاربر را با progressive enhancement  های مختلف در رندر سرور، مانند enhanced navigation  با streaming rendering محتوای تولید شده به ‌صورت ناهمزمان، بهبود بخشد.

Blazor از رندر تعاملی سمت سرور(interactive SSR) پشتیبانی می کند، که در آن تعاملات UI از سرور از طریق یک اتصال بلادرنگ با مرورگر انجام می شود.  SSR تعاملی یک تجربه کاربری غنی را که از یک client app انتظار می رود، را بدون نیاز به API endpoint ها برای دسترسی به منابع سرور امکان پذیر می کند.

Blazor Web App از تعامل با رندر سمت کلاینت (CSR) که بر .NET runtime ساخته شده با WebAssembly متکی است را پشتیبانی می کند. هنگام اجرای Blazor در WebAssembly، کد دات نت شما می تواند به عملکرد کامل مرورگر دسترسی داشته باشد و با جاوا اسکریپت تعامل داشته باشد.

برنامه های Blazor می توانند به طور کامل اجرا بر روی WebAssembly در مرورگر را بدون دخالت سرور هدف قرار دهند. برای یک standalone Blazor WebAssembly app، asset ها به عنوان فایل های ثابت در یک وب سرور یا سرویسی که قادر به ارائه محتوای ثابت به کلاینت است، مستقر می شوند. پس از دانلود، standalone Blazor WebAssembly app را می‌توان کش کرد و به صورت آفلاین به عنوان یک برنامه وب پیشرو (PWA) اجرا کرد.

با Blazor Hybrid یک native client app بسازید

Blazor Hybrid استفاده از کامپوننت های Razor را در یک native client app با ترکیبی از فناوری‌های بومی native و وب برای پلتفرم‌های وب، موبایل و دسکتاپ امکان‌پذیر می‌کند. کد به صورت بومی در فرآیند دات نت اجرا می شود و UI وب را با استفاده از یک interop محلی به یک کنترل Web View تعبیه شده ارائه می کند . WebAssembly در برنامه های هیبریدی استفاده نمی شود. برنامه‌های هیبریدی با .NET Multi-platform App UI (.NET MAUI) که یک چارچوب چند پلتفرمی برای ایجاد برنامه‌های بومی موبایل و دسکتاپ با C# و XAML است، ساخته شده‌اند.

Blazor Hybrid از Windows Presentation Foundation (WPF) و Windows Forms برای انتقال برنامه‌ها از فناوری قبلی به NET MAUI پشتیبانی می‌کند.