در این سری آموزشی از وبسایت پرووید در رابطه با فریم ورک ASP.NET Core Blazor و ساختن برنامه های تک صفحه ای و یا اصطلاحاً SPA با استفاده از فریم ورک Blazor صحبت خواهیم کرد. با معرفی شدن .NET Core 3.0 و Visual Studio 16.3.0 امکان ایجاد کردن وب اپلیکیشن ها با استفاده از Blazor در Visual Studio قرار داده شده است. با استفاده از Blazor می توانیم کدهای سی شارپ را در مرورگر کاربر و در سمت Client اجرا کنیم. شبیه به Server-side Blazor به همراه SignalR و Client-side Blazor و Blazor Web Assembly امکان توسعه دادن اپلیکیشن های ASP.NET Core را با استفاده از سی شارپ فراهم می کنند و دیگر نیازی نیست که از JavaScript استفاده کنیم.
فریم ورک Blazor چیست؟
فریم ورک Blazor یک فریم ورک توسعه Single Page Application و یا اپلیکیشن های تک صفحه ای می باشد. واژه Blazor از ترکیب دو واژه Browser و Razor بوجود آمده است. همانطور که احتمالاً می دانید، Razor یک View Engine است که در بسیاری از تکنولوژی توسعه اپلیکیشن های وب در دات نت مورد استفاده قرار می گیرند. برای یادگیری Razor توصیه می کنیم که از آموزش ساختن وب اپلیکیشن با ASP.NET Core Razor و آموزش برنامه نویسی وب با Razor Pages در ASP.NET Core دیدن کنید. با استفاده از Blazor شما دیگر نیازی ندارید که View های Razor را بر روی سرور اجرا کرده و سپس HTML تولید شده را به سمت مرورگر ارسال کنید. به عبارت دیگر، Blazor امکان اجرا کردن این View ها بر روی کلاینت و یا همان مرورگر کاربر را در اختیار شما قرار میدهد.
فریم ورک Blazor چه چیزی نیست؟
دقت کنید که فریم ورک Blazor علی رغم تکنولوژی قبلی مایکروسافت یعنی Silverlight نیازی به نصب کردن یک پلاگین در مرورگر کاربر ندارد. در آموزش سیلورلایت Silverlight خدمتتان عرض کرده ایم که برای میزبانی کردن اپلیکیشن های درون مرورگر و یا اصطلاحاً In Browser Application ها با استفاده از Silverlight نیاز است که یک پلاگین بر روی کلاینت و یا مرورگر کاربر، نصب بشود. این موضوع باعث میشد که چنین برنامههایی امکان اجرا شدن بر روی دستگاه هایی که سیستم عامل iOS را دارند امکان پذیر نباشد. اپلیکیشن های ایجاد شده با فریم ورک Blazor امکان اجرا شدن بدون نیاز به نصب شدن هر گونه پلاگینی بر روی مرورگر کاربر را دارند. Blazor هم می تواند به صورت Server Side، اجرا بشود که در این روال، در واقع، کد در سرور اجرا می شود و مرورگر، شبیه یک ترمینال بدون درگیر شدن با سرور کدها را دریافت خواهد کرد. علاوه بر این موضوع، امکان اجرا شدن Blazor بر روی خود مرورگر کاربر و با استفاده از استاندارد Web Assembly نیز وجود دارد. در رابطه با Web Assembly و Blazor می توانید در آموزش شروع به کار با بلیزیر Blazor در ASP.NET Core بیشتر مطالعه کنید. از آنجایی که Web Assembly یک استاندارد وب است در بسیاری از مرورگرهای اصلی وجود دارد و این موضوع باعث میشود تا Client Side Blazor بتواند به سادگی بر روی مرورگرهای مختلف و سیستم عامل هایی از قبیل ویندوز و لینوکس و مک و اندروید و iOS اجرا بگردد. Blazor یک فریم ورک کاملاً Open Source است که برنامه نویسان مختلف می توانند در آن مشارکت کرده و روند رشد آن را همراهی کنند.
استاندارد Web Assembly چیست؟
استاندارد Web Assembly که به صورت کوتاه به آن WASAM نیز می گویند، مجموعه ای از دستورالعمل ها می باشد که به منظور اجرا شدن بر روی هر سیستم میزبانی که بتواند آن دستورالعمل ها را درک کند، طراحی گردیده است. علاوه بر این موضوع، سیستم میزبان می تواند کدهای مربوط به استاندارد Web Assembly را به Native Machine Code کامپایل کرده و آنها را اجرا نماید. دقت کنید که استاندارد Web Assembly در واقع مجموعه ای از دستورالعمل ها می باشد که با یک فرمت باینری منحصر به فرد پیاده سازی گردیده اند. حال، هر میزبان نرم افزاری و یا سخت افزاری که از این استانداردها تبعیت کند امکان خواندن این باینریها و اجرا کردن آنها را خواهد داشت. این روال می تواند به صورت مفسری و یا کامپایلری مستقیم به زبان خاص ماشین موردنظر تبدیل بگردد. یکی از شباهت های استاندارد Web Assembly با CIL و یا Common Intermediate Language موجود در برنامههای فریم ورک دات نت دیده میشود. دقیقاً، شبیه آنچه که در برنامه های دات نت و Common Intermediate Language اتفاق می افتد، کدهای مربوط به Web Assembly نیز می توانند از یک زبان سطح بالاتر از قبیل زبان برنامه نویسی سی شارپ تولید بگردند. نکته دیگر اینکه Blazor به منظور اجرا شدن بر روی یک سیستم و استفاده کردن از استاندارد Web Assembly نیازی به نصب بودن دات نت نخواهد داشت.