فریمورکهای زیادی هستند که شما میتوانید برای طراحی یک سایت از آنها استفاده کنید اما این موضوع که فریمورک مناسب برای شما کدامیک از آنها خواهد بود موردی است که جای کار زیادی دارد. هر کدام از این فریمورکها قابلیت مخصوص به خود را دارد و میتواند امکانات مختلفی را به کاربران خود ارائه کنند. اما بعضی از آنها قابلیتهای خاصی دارند. بهعنوان مثال طراحی سایت با زبان #C میتواند یکی از این موارد باشد که باعث شده است فریمورک Blazor تا این اندازه رشد داشته باشد. در این مقاله میخواهیم در مورد مزایا و معایب Blazor صحبت کنیم و ببینیم که آیا استفاده از آن میتواند به درد ما بخورد یا خیر.
قبل از بررسی مزایا و معایب Blazor بهتر است کمی در مورد خود این پلتفرم و اینکه برای چه مواردی کاربردی ساخته شده است صحبت کنیم و ببینیم که اصلا قرار بوده است این فریمورک چه کاری را برای ما انجام دهد و اینکه چه انتظاری را باید از آن داشته باشیم.
Blazor از کجا آمده است و چه کاربردی دارد؟
در مورد اینکه این سیستم از کجا آمده است و چه کاربردی دارد باید به این موضوع اشاره کنیم که Blazor یک فریمورک طراحی وب است که با بستهی نرمافزاری NET. که توسط مایکروسافت منتشر شده است کار میکند. NET. را میتوان بزرگترین مجموعه فریمورکها و پلتفرمهای نرمافزاری از مایکروسافت معرفی کرد که قبلا به صورت غیر رایگان ارائه میشد. اما با تغییر سیاستهای سختگیرانه مایکروسافت این بسته در سال 2016 با نام NET Core. بهصورت اوپنسورس منتشر گردید.
در اوایل انتشار این بستهی نرمافزاری خیلی از قابلیتهایی که تا دیروز صرفا برای زبانهای مایکروسافت اعمال میشد اکنون قابل استفاده بود. همینطور برنامههایی که با NET Core. نوشته میشد قابلیت اجرا روی سیستمهای لینوکسی را داشت و استفاده از زبان میانی باعث شده بود تا تمامی موانع حذف شود. از این رو مایکروسافت توانست در دنیای توسعهی اوپنسورس یک نقش پررنگ را به دست بیاورد. اما هنوز موردی بود که نتوانسته بود وارد آن شود و آن هم طراحی سایت بود.
دو سال بعد از انتشار NET Core. مایکروسافت Blazor را منتشر کرد. یک فریمورک خوب و قدرتمند که به برنامهنویسان اجازه میداد تا با استفاده از زبان #C یک سایت اینترنتی را طراحی کنند. Blazor را میتوان یکی از اولین فریمورکهایی دانست که این قابلیت را دارا بود و به برنامهنویسان #C کمک کرد که وارد دنیای برنامهنویسی برای سایتهای اینترنتی شوند و از این نظر بسیار محبوب شد. در صورتی که به اطلاعات تکمیلی در مورد اینکه Blazor واقعا چیست و چه قابلیتهای دارد میتوانید به مقالهی «Blazor چیست» مراجعه کنید.
این فریمورک در کار خود بهشدت مصمم است و آنگونه که بهنظر میرسد به هیچ عنوان نمیخواهد از سایر فریمورکهایی که در حال کار هستند جا بماند. توسعه Blazor خوب پیش میرود و قابلیتهای خوبی مانند توانایی کار با PWAها (برای اطلاعات بیشتر در مورد این موضوع به مقاله «PWA چیست» مراجعه کنید) ارائه کرده است که تاثیر خوبی در رشد آن گذاشته است.
در این مقاله ما میخواهیم بهصورت کامل به بررسی این موضوع که مزایا و معایب Blazor چه هستند و این سیستم میتواند چه قابلیتهایی به یک برنامهنویس دهد و از آن مهمتر یک برنامهنویس وقتی با این فریمورک کار میکند باید حواسش به چه مواردی باشد و چه شرایط خاصی در انتظار آن است را بررسی کنیم. طبق روال بررسیهای اینترنتی در ابتدا مزایا و ویژگیهایی که این فریمورک میتواند برای ما داشته باشد را با هم بررسی خواهیم کرد.
مزایای Blazor چیست؟
تقریبا تا اینجای کار بهصورت ضمنی در مورد اینکه مزایای Blazor چیست صحبت کردهایم و یک سری موارد بدیهی را عنوان کردهایم. بهعنوان مثال شما میتوانید با استفاده از زبان #C سایت خود را طراحی کنید. در ادامهی این بخش میخواهیم در رابطه با مواردی صحبت کنیم که به نسبت جدیدتر بوده و Blazor تمایل دارد که با مانور روی آنها برنامهنویسان را برای خوب بودن این فریمورک قانع کند.
به طور کلی در پاسخ به سوال مزایای Blazor چیست میتوان این موارد را لیست کرد:
سرعت در رندر کردن صفحات
وقتی کاربری به یک صفحه دسترسی پیدا میکند چه اتفاقی میافتد؟! در واقع این اتفاق به این صورت خواهد افتاد که یک درخواست و ریکوئست از طرف کاربر برای وبسرور فرستاده میشود، وبسرور اطلاعات موردنظر را از پایگاه داده و یا بخشی که در بکاند مشغول به کار است گرفته و آن را در قالب کدهای یک صفحه که به صورت HTML و CSS و ترکیبی از JSها میباشد برای کاربر ارسال میکند. این کدها به مقصد رسیده و صفحه بهصورتی که باید به کاربر نمایش داده می شود.
به روشی که سیستم بکاند و سمت سرور سایت این صفحه را برای نمایش آماده میکند رندر کردن میگویند. کدهایی که در سایت استفاده شده است تاثیر زیادی در این آماده شدن سایت برای نمایش و یا همان رندر شدن دارند. اگر بخواهیم بگوییم که در این مورد از مزایا و معایب Blazor نقطه قوت و برتری سیستم کجاست، باید به این موضوع اشاره کنیم که Blazor از کدهای #C استفاده میکند که به صورت یکجا کامپایل میشوند و سرعت بالاتری در این زمینه دارند. پس بهجرئت میتوان گفت که سرعت بالا در رندر کردن صفحات یکی از مزایای اصلیای میباشد که میتوان آن را در بررسی مزایا و معایب Blazor مطرح کرد.
امکان ساخت PWAها
برنامههای وب پیشرونده یا پراگرسیو دستهای از برنامهها هستند که یک حالت میانی بین برنامههای نیتیو و نصبی روی سیستم و برنامههای تحت وب یا همان سایتها را دارند. در این برنامهها شما قادر خواهید بود تا با استفاده از یک برنامهی سمت کاربر که از منابع کاربر استفاده میکند و بهخوبی با سختافزار ارتباط برقرار میکند، به پویایی یک سایت اینترنتی دسترسی داشته باشید و اگر مطلب جدیدی را خواستید به کاربر ارائه کنید منتظر نمانید تا کاربر برنامه خود را آپدیت کند.
طراحی این نوع برنامهها ویژگیهای پایهای را نیاز دارد که از مهمترین آنها میتوان به امکان ایجاد و بهکارگیری سرویسورکرها روی کلاینت و همینطور استفاده از پوستهی اپلیکیشن در روی موبایل و سمت مبدا که به کاربر این قابلیت را میدهد که از طریق یک پوسته و قالب خاص که بعضا قابل ویرایش هم میباشد به سایت دسترسی داشته باشد، اشاره کنیم.
در بررسی مزایا و معایب Blazor میتوان گفت که این فریمورک توانایی این را دارد که این نوع از برنامهنویسی را برای ما پیادهسازی کند. البته باید گفت که برخی مشکلات نیز در آن وجود دارد و همین موارد ارائهکنندگان این فریمورک را به این امر وا داشته است که گسترش آن را برای ارائه PWAها در دستور کار قرار دهند و این موارد به سرعت در حال انجام است.
قابلیت کار کردن به صورت آفلاین در کلاینت
با توجه به اینکه صفحات در این معماری به صورت کامپایل شده در اختیار کاربران قرار میگیرد این کدها توانایی انجام کارهای پردازشی را تا حدودی دارند و میتوان بهصورت آفلاین هم با آنها کار کرد. این در حالی است که اگر نگاهی به ورژنهای قدیمی از فریمورکهای دیگر بیندازیم خواهیم دید که به محض قطع شدن ارتباط اینترنت خیلی از اسکریپتها و ماژولها از کار خواهد افتاد و شما صرفا به بخشهای نمایشی دسترسی خواهید داشت.
البته این نمونه از کار در بین سایر پلتفرمها در حال رشد است و نمیتوان صرفا آن را متعلق به Blazor دانست به عنوان مثال در لاراول 8 قابلیتهای خوبی برای این موضوع ارائه شده است که میتواند این پردازش آفلاین را با استفاده از PHP هم ارائه کند. اما همچنان این مورد را در پاسخ به این سوال که مزایای Blazor چیست میتوان بهعنوان یک مزیت خوب و فوقالعاده معرفی کرد.
ارتباط خوب با سرور
در تمامی پلتفرمهای دیگر زبانهایی که برای وب نوشته میشود با زبانی که سیستم عامل سرور از آن استفاده میکند متفاوت است. اما اگر بخواهیم بدانیم این داستان در مورد Blazor چیست باید به این موضوع اشاره کنیم که این فریمورک صرفا با سرورهای ویندوزی کار میکند. این به این معنا است که وقتی فریمورک Blazor را انتخاب کنید، هم سایت و هم سرور هر دو از زبان #C استفاده میکنند و این به معنای سازگاری همهجانبه این دو مورد میباشد و کیفیت بسیار خوبی را در اختیار شما قرار میدهد.
وقتی شما این قابلیت را بهکار بگیرید، هیچ مانع پردازشی نخواهید داشت و پردازشهای شما برای تکمیل بهواسطه سازگاریای که دارند به منابع کمتری نیاز خواهند داشت و خوب جواب خواهند داد. پس میتوان ارتباط خوب با سرور را بهعنوان یکی از موارد مهم در فهرست مزایا و معایب Blazor معرفی نمود.
قابلیت استفادهی مجدد از کدها
یکی دیگر از مسائلی که باید در ارائه فهرست مزایا و معایب Blazor به آن اشاره کرد امکان خوبی است که برای استفاده از DLLها در اختیار شما قرار داده میشود و این چیزی جز امکان استفاده از کامپوننتها و ماژولهای قابل استفاده مجدد نیست. شما با استفاده از این ماژولها میتوانید قابلیتهای بسیار خوبی را برای خود پیادهسازی کنید که به شما این امکان را میدهد که در زمان و انرژیای که برای طراحی یک سایت میخواهید بگذارید صرفهجویی کنید.
انجام کارها به روش ساده و اینکه بتوانید از چیزی که یک بار خلق کردهاید بارها استفاده کنید جزو آن دسته از مواردی است که مسیر برنامهنویسی همواره به دنبال آن حرکت کرده است و همیشه یکی از اصول اساسی بوده است. ظاهرا Blazor از پس پیادهسازی آن بهخوبی بر آمده است و میتوان به این مزیت از Blazor اتکا کرد.
انجام پردازش سمت کلاینت
یکی دیگر از موراد مهم انجام پردازشها در سمت کلاینت و استفاده از منابع سیستم کلاینت است. در خیلی از موارد که نیاز به کار پردازشی دارد در صورتی که این پردازش روی سرورهای سایت انجام بگیرد نیاز به منابع بالا میرود و این استفاده از منابع میتواند باعث افت کیفیت سایتی که طراحی کردید شود و هزینههایی که برای اجاره هاست و سرویس میزبانی پرداخته میشود بالا خواهد رفت.
Blazor به شما این امکان را میدهد که با استفاده از یک سیستم پردازشی قوی بتوانید از منابع سیستم کلاینتی که در حال استفاده از سایت شما است استفاده کنید، تا بدون نگرانی از مصرف منابع سرور، بتوانید پردازشهای مختلف را به انجام برسانید. اسکریپتهای اجرا شونده در سمت کاربر بخشی از معماری اصلی Blazor میباشد که توانسته است این مزیت را برای آن داشته باشد و همینطور کمک خوبی را برای موردی که در گزینهی دوم همین لیست مزایا معرفی کردیم فراهم کند.
معایب Blazor چیست؟
تا اینجای کار از بحث مزایا و معایب Blazor تمامی مزایا و فوایدی که این فریمورک برای طراحی سایت میتواند در اختیار برنامهنویسان قرار دهد را بررسی کردهایم. اکنون نوبت به این موضوع رسیده است که با هم معایب Blazor را بررسی کنیم و ببینیم که وقتی یک طراح سایت بهسراغ Blazor میآید باید چه نکات و مواردی را مدنظر قرار دهد و چه محدودیتهایی برای وی وجود خواهد داشت.
عمده نکات و محدودیتهایی که میتوان در بررسی مزایا و معایب Blazor به عنوان معایب معرفی کرد از این قرار هستند:
نیاز به سرورهای NET. و ویندوزی
یکی از مشکلاتی که سایتهای طراحی شده با Blazor به آن بر میخورند این است که برای اجرا حتما باید از سرورهای NET. و ویندوزی در آنها استفاده کرد. این موضوع باعث شده است تا محبوبیت این سرورها افت کرده و صرفا وبسرورهای IIS برای آنها مورد استفاده قرار بگیرد. هرچند که استفاده از IIS مزایای زیادی دارد و جزو وبسرورهای قدرتمند بهحساب میآید، اما مشکل اصلی اینجاست که خیلی از افراد اکنون از سرورهای لینوکسی استفاده میکنند و لازم است تا برای بهرهبرداری از سایتهای طراحی شده با Blazor یک سرور جدید ویندوزی تهیه شود.
هر چند که NET Core. به این منظور ارائه شده است که محصولات مایکروسافت را روی سیستمهای لینوکسی و بهصورت اوپنسورس ارائه کند اما ظاهرا Blazor این مورد را رعایت نکرده است. البته این ایراد ممکن است در آینده برطرف شود ولی در صورتی که فعلا قصد طراحی سایت با Blazor را دارید باید در جریان باشید که به یک سرور ویندوزی نیاز پیدا خواهید کرد.
عدم مقیاسپذیری و Scalable نبودن
یکی دیگر از مواردی که باید در بررسی مزایا و معایب Blazor در ردهی معایب آن قرار بگیرد Scalable نبودن سایتها و محصولات نرمافزاری طراحی شده با این فریمورک است. در صورتی که شما یک سایت اینترنتی را با استفاده از Blazor برای نفرات محدود طراحی کنید و تعداد کاربران شما به یکباره افزایش داشته باشد، سایت شما قادر نخواهد بود که با همان بازدهی روز اول کار کند.
بزرگ شدن برنامهی شما از نظر حجم کد و المانهای مختلف سایت مانند محصولات ارائه شده و موارد اینچنینی و هم از نظر تعداد کاربرانی که به آن مراجعه میکند، میتواند شما را ملزم کند که تغییراتی را در ساختار سایت اعمال کنید تا سایت بتواند بهتر برای شما کار کند.
البته باید توجه داشت که این مقیاسها عموما به علت عدم برنامهنویسی اصولی پیش میآید. اما این موضوع که برنامهنویسان بتوانند یک سایت را با چنین روشی تولید کنند کمی غیراصولی بهنظر میرسد و باید در ساختار و الگوهایی که این فریمورک برای طراحی سایت ارائه میکند تجدیدنظر کرد.
عدم کار روی تین کلاینتها
تین کلاینتها یا کامپیوترهای کوچک سیستمهایی هستند که صرفا میتوانند شما را به یک شبکه متصل کنند و شما با استفاده از یک ریموت به وسیلهی قابلیتهای خوبی مانند VDI به سرور خود متصل شده و از آن برای پردازش استفاده کنید. تین کلاینتها منابعی بسیار پایین دارند و به این منظور طراحی شدهاند تا از خدماتی که یک سرور به آنها میدهد استفاده کنند. سایتها و اپلیکیشنهای تحت وب پیادهسازی شده با استفاده از فریمورک Blazor امکان اجرا روی تین کلاینتها را ندارند و ازاینرو میتوان این مورد را بهعنوان یک ضعف بزرگ Blazor عنوان کرد.
سیستم کاری و پردازشی Blazor به این صورت میباشد که بخشی از پردازش را روی سیستمهای کلاینت انجام داده و در صورتی که سیستم کلاینت از منابع کافی برای این کار بهرهمند نباشد استفاده از برنامهها و نرمافزارهای طراحی شده با استفاده از Blazor تقریبا غیرممکن خواهد بود و در صورت استفاده نیز دردسرهای زیادی را برای کاربران خواهد داشت و صفحات بهخوبی لود نخواهند شد.
امکان تست و Debugging محدود
یکی از معضلات و مشکلات دیگری که در بررسی مزایا و معایب Blazor باید به آن توجه کرد امکان Debugging یا همان دیباگ کردن کدهای برنامه میباشد. شما میتوانید یک برنامهی نوشته شده در Blazor را دیباگ کنید اما این دیباگ کردن به شما اطلاعاتی بسیار محدود را میدهد و با توجه به اینکه ماهیت کدهای #C بهگونهای است که بسیار گسترده عمل میکنند احتمال رخ دادن خطا در داخل این برنامهها بسیار بالا خواهد بود.
بهطور کلی میتوان گفت که کدهای نوشته شده با استفاده از Blazor امکان دیباگ شدن خوبی را ندارند و این امر باعث شده است که خطاهای غیرمنتظره و عملکردهای ازپیشتعییننشده در سایتها و برنامههای طراحی شده با Blazor مشاهده شود.
نتیجهگیری
در این مقاله به بررسی کامل مزایا و معایب Blazor پرداختیم و دیدیم که سیستم طراحی سایت Blazor که بهعنوان یک طراح سایت با استفاده از زبان #C برای بستهی نرمافزاری NET Core. است که میتواند برای آن امکاناتی بسیار ایدهآل را داشته باشد و برای موارد مختلف مانند ارتباط با سرور، استفاده از المانهای قابل استفادهی مجدد و کامپوننتهای نرمافزاری و همینطور ساخت برنامهها بهصورت PWA یا همان پیشرونده مورد استفاده قرار بگیرد. البته باید به معایبی مانند Scalable نبودن و همینطور امکان دیباگ محدود برنامهها و سایتهای نوشته شده با این فریمورک توجه ویژهای داشت.
1 دیدگاه. Leave new
Blazor کاملا Cross Platform بوده و می تونه روی هر سروری هاست بشه
Blazor Server مقیاس پذیری بالایی داره
مسئله ی مقیاس پذیری در مورد blazor وب اسمبلی کاملا بی معنی هست چون روی کلاینت اجرا میشه