آیا Blazor ارزش وقت گذاشتن را دارد؟

بر می گردیم به ماه سپتامبر ، شرکت نرم افزاری مایکروسافت نسخه جدید چارچوب .NET Core 3 با شور و هیجان عرضه کرد .اما این نسخه جدید شامل یک چاچوب طراحی وب جدید به نام Blazor بود .پس از این در ماه مه شرکت نرم افزاری مایکروسافت نسخه جدیدی از این چاچوب نرم افزاری یعنی Blazor 3.2 را منتشر کردو با عنوان Blazor WebAssemble به عنوان نسخه آماده استفاده ارائه کرد .Blazor یک تکنولوژی عجیبی است .اولا به دلیل آنکه آن دو نسخه متفاوت دارددوما آن نوید بخش دنیای وبی بدون تکنولوژی جاوا اسکریپت استبیایید به عقب برگردیم و تجزیه و تحلیل کنیم.Net Core و آینده آننسخه چاچوب نرم افزاری .Net Core 3 یکی از نسخه های مهم بروزرسانی شرکت مایکروسافت بوده است ..Net Core در 5 سال اخیر دست خوش تغییرات زیادی شده است . هدف به روز رسانی های .Net Core به منزله ساده سازی کل اکوسیستم است ..Net Core آینده .NET است .که قرار است در سال جاری به .Net 5 تغییر نام پیدا کند (این اتفاق در حال حاضر انجام شده است )مزیت اصلی.NET CORE نسبت به NET Framework قدیمی تر پشتیبانی پلتفرم های بیشتر است. .NET Core یک پلتفرم چند سکویی است و تقریباً در همه جا قابل اجرا است در حالی که . NET Framework فقط به ویندوز متصل است. همچنین بسیار پایدار ، بسیار سریع و دارای ابزار درجه یک برای توسعه دهندگان است.WebAssemblyبدون استفاده و وابستگی به .NET می توانید از WebAssembly استفاده کنید و رفته رفته این تکنولوژی به یک شبه زبان برای مونتاژ صفحات وب تبدیل می شود که بومی هست و در اکثر مرورگر ها قابل اجرا می باشداین نکته نباید فراموش شود که WebAssemble یک زبان نیست که برنامه نویسان همه بتوانند از آن استفاده کنندWebAssemble دارای یک هدف تلفیقی است که مورد استفاده قرار می گیرد و روند کار این تکنولوژی به این صورت است کهبه جای کامپایل کد برای پردازنده یا سیستم عامل خاص ، می توانید کدها را در WebAssemble کامپایل کنید و برنامه خود را در یک مرورگر اجرا کند.Blazor یک چارچوب UI جدید است که در NET Core 3 گنجانده شده است. از لحاظ مفهومی ، Blazor بیشتر شبیه Angular یا React است تا ASP.NET MVC. این یک چارچوب مبتنی بر م componentلفه ها برای ایجاد برنامه های وب غنی و تعاملی است. تفاوت اصلی بین Blazor و چارچوب های جاوا اسکریپت سنتی در این است که اجزای Blazor کاملاً با C # و Razor نوشته شده اند. به جاوا اسکریپت نیازی نیست!دو مدل از BLAZORدارای دو مدل Server و WebAssemble است. مدل سرور با .NET Core 3. عرضه شد. در آن زمان ، WebAssemble هنوز در پیش نمایش بود ، اما اکنون با Blazor 3.2 به طور کامل منتشر شده است. هر دو اکنون آماده تولید هستند. هر دو مدل از همان معماری اجزا گرا استفاده می کنند ، اما در نحوه اجرای آن اجزا بسیار متفاوت هستند. مدل سرور روی سرور اجرا می شود. کدی که به مرورگر ارسال می شود کد شما نیست ، بلکه بخش کوچکی از این چارچوب است که از SignalR (یک کتابخانه NET برای مدیریت اتصالات بی درنگ بین مشتری و سرور) برای ارسال رویدادها از مرورگر به سرور و DOM به مرورگر تغییر می کند. سرور اجزای شما را ارائه می دهد و تعاملات را از طریق Signal مدیریت می کنددرک مدل WebAssemble در واقع کمی آسان تر است. همه کد ، چارچوب و اجزای شما در مرورگر اجرا می شوند. کد C # شما مانند سایر برنامه های دات نت در DLLکامپایل می شود ، اما سپس به مرورگر ارسال می شود. Mono(زمان اجرا .NET در اصل برای لینوکس و زمان اجرا در پشت برنامه های Xamarin) همان چیزی است که در واقع به WebAssemble وارد می شود و کد شما را در مرورگر اجرا می کند. بسیار عجیب است که ابزارهای مرورگر را باز کرده و در حال بارگیری چند DLL از آن تماشا کنید.هر دو مدل مزایای خود را دارند. سرور به کار کمتری در مرورگر نیاز دارد ، اما از آنجا که شبکه درگیر است ، تاخیر در UI وجود دارد. WebAssemble سریعتر اجرا می شود ، اما نیاز به بارگیری اولیه سنگین (حدود 2 مگابایت از پروژه شروع کننده) دارد.یک مثال سریع از Blazorایجاد یک پروژه جدید Blazor ساده است . در آخرین نسخه های برنامه محیط توسعه Visual Studio الگو های آن موجود است (برای سیستم عامل های Mac و Windows) و یا شما می توانید از طریق .NET CLI (محیط متنی برای مدیریت کتابخانه های .NET) با استفاده از دستور `dotnet new blazorwasm -o ProjectName`. پروژه را ایحاد کنیدشما بعد از ساخت پروژه با CLI می توانید به پوشه پروژه بروید و با دستور dotnet run پروژه را اجرا کنیداجزای نمونه و طرح بندی یک روش عالی برای آشنایی با چگونگی ساخت برنامه ها با Blazor است.> نکته(نظر نویسنده): من در واقع روش "استاندارد" مخلوط کردن C # و Razor با استفاده از بلوک "کد @" را دوست ندارم. در عوض ، من ترجیح می دهم یک فایل C # جداگانه برای منطق ایجاد کنم و کد مشاهده را در فایل Razor بگذارم. این کار به راحتی انجام می شود زیرا کلاسهای تولید شده از اجزا کلاسهای جزئی هستند و می توانند گسترش یابندBlazor شامل تمام ویژگی هایی است که شما برای ایجاد برنامه های وب تعاملی نیاز دارید.مسیریابی ، اعتبار سنجی فرم و دسترسی HTTP همه موجود هستند و در الگوی اصلی پروژه موجود هستندو از آنجا که همه تکنولوژی ها در C # موجود است ، توسعه دهندگان NET می توانند به سرعت جلو بروند و کار کنند و حتی می توانند از کدهای سایر قسمت های سیستم خود دوباره استفاده کنند.Blazor از اعتبار سنجی داده ها در فرم ها پشتیبانی می کند ، بنابراین می توان از منطق کسب و کار پیرامون اعتبارسنجی مدل استفاده مجدد کرد.> توجه داشته باشید که WebAssemble همچنان مبتنی بر جعبه شناور مرورگری است که برنامه های وب مبتنی بر JavaScript مجبور به استفاده از آن می شوند.آینده ای که Blazor WebAssembleنظر جنجالی من در مورد Blazorاین است(نظر نویسنده) که مدل سرور نباید وجود داشته باشد. من فکر می کنم مدل WebAssemble برتر است و آینده ای است که می خواهم در وب ببینم. متوجه شدم که چرا مایکروسافت مدل سرور را ایجاد کرده است: این مدل می تواند سریعتر آماده شود و آنها می خواهند نشان دهند که اجزای ایجاد شده نسبتاً از نحوه اجرای آنها مستقل هستند. اما وقتی مدل WebAssemblebجلوتر و به همان اندازه توانایی دارد ، آب های اطراف Blazorرا گل آلود می کند.یکی از مزایای مدل WebAssemblyمستقل بودن از مکان یا نحوه میزبانی آن است. هنگامی که یک پروژه WebAssemble را منتشر می کنید ، پوشه ای پر از فایل دریافت می کنید. یک پروژه Blazor WebAssemble یک سایت ثابت است و می تواند در هر کجا میزبانی شود. نیازی به میزبانی آن در Azure یا حتی اجرای ASP.NET Coreنیست. و برنامه های Blazor WebAssembleمی توانند به عنوان برنامه های وب پیشرفته ایجاد شوند تا پشتیبانی آفلاین را فعال کنند زیرا به اتصال شبکه مداوم نیاز ندارند. WebAssembleدرهای آینده ای را باز می کند که تعامل در وب منحصراً به JavaScriptمتکی نیست و Blazorثابت می کند که می توان چارچوبی ایجاد کرد که از این مزیت نهایت استفاده را ببرد. من از استفاده از Blazorبرای پروژه های بیشتر هیجان زده ام و فکر می کنم ارزش وقت شما را دارد که آن را بررسی کنید