Blazor چیست؟ + چه کاربردها و مزایایی دارد؟
مایکروسافت نوعی فریم ورک وب دات نت جدید به نام Blazor منتشر کرده است. این نوعی فریم ورک وب رایگان و منبع باز برای ساخت برنامه های وب با استفاده از سی شارپ به حساب می آید که در مرورگرهای وب اجرا می شوند. در این مقاله قصد دارم در مورد اینکه Blazor چیست، چه کاربردی دارد و اجزای آن توضیحاتی ارائه دهیم.
Blazor چیست؟
فریم ورک Blazor یا بلیزور ابزاری مشهور در جامعه فناوری .Net محسوب می شود. بلیزور متن باز است و توسط مایکروسافت برای ساخت برنامه های تک صفحه ای طراحی شده است. Blazor به طور منحصر به فردی فریم ورک razor را با فریمورک پیشرفته .Net و WebAssembly ترکیب می کند. این ویژگی امکان توسعه برنامه های سمت سرور و سمت سرویس گیرنده یا مشتری را فراهم می کند.
بلیزور به دلیل توانایی خود در ساخت رابط های کاربری گرافیکی (UIs) غنی و پیچیده برای وب سایت ها و برنامه ها معروف است. با ادغام فرآیندهای فرانت اند و بک اند با استفاده از زبانی واحد، بلیزور توسعه را ساده می کند و از عملکرد یکپارچه در مرورگر و تنظیمات آفلاین اطمینان می دهد.
از نظر توسعه برنامه های کاربردی وب مدرن، بلیزور هم شامل توسعه سمت سرور و سمت مشتری است. زبان های برنامه نویسی مختلفی برای این منظور موجود هستند. برای توسعه سمت سرور، توسعه دهندگان اغلب زبان هایی مانند C#، Java، PHP و غیره را انتخاب می کنند. از سوی دیگر، برای توسعه سمت کلاینت معمولاً از فریم ورک های جاوا اسکریپت مانند Vue.js، Angular و React استفاده می کنند.
مدل های میزبانی Blazor
Blazor دو مدل میزبانی اصلی دارد که هر کدام انواع مختلفی از توسعه را ارائه می دهند:
- Blazor WebAssembly (برای برنامه های سمت کلاینت یا مشتری)
- سرور بلیزور (برای برنامه های سمت سرور)
WEBASSEMBLY چیست؟
Blazor WebAssembly یا به اختصار WASM که در می 2020 توسط مایکروسافت معرفی شد، به برنامه ها اجازه می دهد تا در یک مرورگر کار کنند. هنگامی که کاربر به یک برنامه وب دسترسی پیدا می کند، تمام منطق سمت کلاینت و وابستگی های مربوطه دانلود می شوند. پس از بارگیری، برنامه می تواند حتی در صورت قطع شدن اتصال اینترنت به کار خود ادامه دهد و هر تغییری را می توان بعداً همگام سازی کرد.
مزایای WEBASMBLY
از مهمترین مزایای WEBASMBLY می توان موارد زیر را نام برد:
- سمت سرویس گیرنده را قادر می سازد تا برنامه ها را مستقیماً در مرورگر اجرا کند. پس از دانلود، برنامه حتی بدون اتصال به سرور به کار خود ادامه میدهد، اما نمیتواند دادههای جدید را واکشی کند.
- به طور کامل از قابلیت ها و منابع مشتری استفاده می کند.
- برای میزبانی نیازی به وب سرور اصلی ASP.NET ندارد.
- تنها با به روز رسانی تغییرات در DOM (مدل شیء سند) بار سرور را کاهش می دهد و زمان بارگذاری را بهبود می بخشد.
معایب WEBASMBLY
از مهمترین معایب WEBASMBLY می توان موارد زیر را نام برد:
- محدود به قابلیت های مرورگر
- برای سازگاری و اشکال زدایی استاندارد دات نت محدودیت هایی وجود دارد.
- به نرم افزار و سخت افزار کلاینت سازگار با Wasm نیاز دارد که آن را فقط به آخرین مرورگرها محدود می کند.
سرور BLAZOR
مدل میزبانی سمت سرور Blazor که در سپتامبر 2019 راه اندازی شد، از ارتباط SignalR برای انتقال هرگونه تغییر یا رویداد سمت مشتری به سرور استفاده می کند. سپس سرور این تغییرات را پردازش کرده و رابط کاربری سمت کلاینت را بر این اساس به روز می کند، به این معنی که رندر رابط کاربری در سمت سرور انجام می شود.
مزایای سرور BLAZOR
از مهمترین مزایای سرور بلیزور می توان موارد زیر را ذکر کرد:
- برنامه های وب بلیزوت می توانند سریع تر بارگیری شوند، زیرا محتوای HTML از قبل ارائه می شود.
- می تواند به طور کامل از قابلیت های سرور استفاده کند.
- بدون محدودیت نسخه های مرورگر و سازگار با مرورگرهای قدیمی.
- از آنجایی که کد برنامه برای مشتری ارسال نمی شود، امنیت بیشتری را ارائه می دهد.
معایب سرور بلیزور
از معایب سرور بلیزور موارد زیر را می توان نام برد:
- نیاز به یک اتصال سرور ثابت دارد. برنامه نمی تواند به صورت آفلاین کار کند.
- برای اجرا به سرور اصلی ASP.NET نیاز دارد.
- تاخیر بیشتر به دلیل انتقال مداوم داده ها بین مشتری و سرور
ساختار پروژه BLAZOR
هنگام توسعه یک برنامه Blazor، درک ساختار پروژه ضروری است. در ادامه یک مرور کلی از ساختار پروژه های بلیزور آورده شده است:
1- PROGRAM.CS
این فایل حاوی متد اصلی برنامه است که به عنوان نقطه ورود برای پروژه های Blazor Server و WebAssembly عمل می کند. در پروژه Blazor Server، متد Main یا متد اصلی که به آن CreateHostBuilder نیز گفته می شود، میزبان هسته ASP.NET را پیکربندی می کند.
برای پروژه های Blazor WebAssembly، کامپوننت ریشه به متد اصلی تعریف شده و در فایل App.razor در پوشه پروژه ریشه قرار می گیرد.
2- WWROOT
این فایل در پوشه پروژه root قرار دارد و به عنوان پوشه webroot در نظر گرفته می شود. این فایل دسترسی به فایل های ثابت مانند تصاویر و شیوه نامه ها را با استفاده از یک مسیر نسبی به پوشه webroot تسهیل می کند.
3- کامپوننت های Blazor
اکثر فایل ها در پروژه های Blazor فایل های .razor هستند که کامپوننت های لازم برای ساخت رابط کاربری برنامه را تعریف می کنند. کامپوننت های مورد استفاده در برنامه های Blazor WebAssembly و Blazor Server معمولاً یکسان هستند.
4- پوشه صفحات
پوشه صفحات (PAGES Folder) شامل صفحه _Host razor و اجزای قابل مسیریابی است که با پسوندهای .razor آنها مشخص شده اند.
5- پوشه به اشتراک گذاشته شده
پوشه به اشتراک گذاشته شده (Shared Folder) حاوی کامپوننت های Razor و سایر عناصری است که می توانند در صفحات به اشتراک گذاشته شوند که در کل شامل موارد زیر است:
- مؤلفه MainLayout (MainLayout.razor): این مؤلفه طرحبندی اولیه برنامه است.
- MainLayout.razor.css: این صفحه استایل برای طرح اصلی برنامه است.
- مؤلفه NavMenu (NavMenu.razor): این مؤلفه نوار کناری به ناوبری کمک کرده و از مؤلفه NavLink برای ارائه پیوندهای ناوبری به سایر مؤلفه های Razor استفاده می کند.
- Navmenu.razor.css: این شیوه نامه منوی پیمایش برنامه است.
- کامپوننت SurveyPrompt (SurveyPrompt.razor): این کامپوننت برای انجام نظرسنجی در برنامه Blazor است.
6- _IMPORTS.RAZOR
این فایل حاوی دستورالعمل های Razor است که می تواند در تمام اجزای برنامه استفاده شود.
7- فایل های تنظیم برنامه (APP SETTING FILES)
فایل appsettings.json و فایل های تنظیمات محیطی، تنظیمات پیکربندی را برای برنامه بلیزور ارائه میکنند.
8- پوشه داده (DATA FOLDER)
این پوشه دارای کلاس WeatherForecast و اجرای WeatherForecastService است که داده های آب و هوا را به مؤلفه FetchData ارائه می کند.
چرا بلیزور؟
Blazor، پیشنهادی از ASP.NET، توسعه وب را با ارائه توسعه فول استک از طریق فریمورک دات نت ساده می کند. در اینجا برخی از دلایل استفاده از Blazor آورده شده است:
- دات نت مجموعه ای از API های پایدار و کاربر پسند و ابزارهای سازگار با همه پلتفرم ها را ارائه می دهد.
- زبان های برنامه نویسی رایج مانند C# و F# ویژگی هایی را ارائه می دهند که کدنویسی را برای توسعه دهندگان بصری تر و لذت بخش تر می کند.
- ویژوال استودیو که یکی از بهترین IDE ها در نظر گرفته می شود، تجربه توسعه دات نت قوی را در پلتفرم های مختلف از جمله ویندوز، لینوکس و macOS تسهیل می کند.
- دات نت توسعه وب را با ویژگی هایی مانند سرعت، عملکرد، امنیت، مقیاس پذیری و قابلیت اطمینان بهبود می بخشد و توسعه کامل پشته را ساده تر می کند.
- بلیزور شامل ویژگی های یک فریم ورک SPA (برنامه تک صفحه ای) مانند مسیریابی، طرح بندی ها، تزریق وابستگی، تعامل جاوا اسکریپت، فرم ها و اعتبارسنجی، و رندر سمت سرور است.
نرم افزارهایی که در آنها Blazor قابل اجراست
Blazor WebAssembly با هر مرورگر وب که از WebAssembly پشتیبانی می کند سازگار است. در حال حاضر، اکثر مرورگرهای مدرن از WebAssembly پشتیبانی می کنند، بنابراین مشکلات سازگاری بسیار کم است. با این حال، همچنان توصیه می شود که پشتیبانی WebAssembly را برای مرورگر دلخواه خود بررسی کنید. در حال حاضر مرورگرهای زیر از بلیزور پشتیبانی می کنند:
- اینترنت اکسپلورر
- مایکروسافت ادج
- فایرفاکس
- کروم
- سافاری
- iOS Safari
- اپرا مینی
- مرورگر اندروید
- مرورگر بلک بری
- Opera Mobile
- گوگل کروم اندروید
- فایرفاکس برای آندروید
- اینترنت اکسپلورر موبایل
- مرورگر UC برای اندروید
- مرورگر مختص گوشی های سامسونگ
اکثر مرورگرها از WebAssembly پشتیبانی می کنند. با این حال، در مواردی که پشتیبانی از همه مرورگرها (مانند اینترنت اکسپلورر) ضروری است، استفاده از بلیزور در سمت کلاینت احتمالا امکان پذیر نباشد. طبق اسناد رسمی مایکروسافت، Blazor فقط توسط Internet Explorer 11 در سمت سرور پشتیبانی می شود.
نتیجه گیری
Blazor فریمورکی محبوب است که با بهره گیری کامل از پلتفرم های C# و .NET، رابط های کاربری پویا و امنی را برای برنامه های کاربردی وب توسعه می دهد. با یکپارچه سازی عملیات بک اند و فرانت اند با زبانی واحد، روند توسعه روان را حتی زمانی که با برنامه های آفلاین و مرورگر سروکار دارید، تسهیل می کند.
اگر هدف شما پشتیبانی از مرورگرهای وب مدرن است، بلیزور یک انتخاب عالی محسوب می شود. با این حال، اگر پشتیبانی از مرورگرهای قدیمی تر، مانند Microsoft Internet Explorer، مورد نیاز باشد، بلیزور ممکن است گزینه خوبی نباشد.
سوالات متداول
چرا باید از Blazor استفاده کنیم؟
استفاده از Blazor توسعه فول استک در فریم ورک دات نت را ساده تر کرده و ویژگی هایی که ارائه می کند باعث پیشبرد سریع تر و بهتر پروژه می شود.
بلیزور توسط کدام کمپانی توسعه داده شده است؟
Blazor توسط مایکروسافت یعنی کمپانی که فریم ورک دات نت را توسعه داده است، خلق شده و یکی از دلایل محبوبیت بالای آن همین مساله است.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.