تاریخچه تغییرات قالب های ساخت پروژه با ASP.NET Core Blazor

3 دقیقه

تغییرات اساسی در قالب‌های ساخت پروژه‌های Blazor که نحوه انتخاب Hosting Model و Render Mode را مشخص میکند، از نسخه .ASP.NET Core 8 شروع شدند و تا حالا که نسخه 10 دات نت منتشر شده همچنان بدون تغییر باقی مانده است.

 

نسخه ASP.NET Core 3.0:

Blazor وارد فریم‌ورک ASP.NET Core شد که شامل 2 قالب Server و WebAssembly بود.

قالب ها:

  • Blazor WebAssembly App ( هنوز رسمی و پایدار نبود )
  • Blazor Server App

*این قالب ها شامل مثال هایی ( کامپوننت و… ) برای آشنایی با نحوه کدنویسی در بلیزور و کار با آن میباشند.

پشتیبانی از PWA در WebAssembly اضافه شد.

 

نسخه ASP.NET Core 3.1:

در اینجا بود که WebAssembly بصورت رسمی ارائه شد.

و شاهد نخستین تجربه اجرای کامل پروژه در مرورگر بصورت SPA با سی شارپ بودیم ;))

قالب جدیدی اضافه نشد!

فقط گزینه ای به قالب WebAssembly اضافه شد تحت عنوان ASP.NET Core Hosted  که با فعال کردن آن موارد زیر رو به پروژه اضافه میشد:

  • پروژه Server که از نوع Web API برای بک اند هست.
  • پروژه Shared از نوع Class Library برای اشتراک گذاری موارد مشترک در پروژه های ( WebAssembly و Web API )

 

نسخه ASP.NET Core 7.0:

در اینجا شاهد آخرین نسل از قالب های قدیمی هستیم…

و خبری از SSR و render mode های جدید نبود!

قالب های جدید:

  • Blazor WebAssembly App Empty
  • Blazor Server App Empty

 

این ها همان قالب های Server و WebAssembly هستند که بدون قالب استایل خاص و کامپوننت نمونه بودند ( فقط یک صفحه Index ساده داشتند ).

که برای افرادی که به درک و فهم خوبی از Blazor رسیده بودند و دیگر نیازی به مشاهده نمونه نداشتند اضافه شده بود!

 

نسخه ASP.NET Core 8.0:

خب در این نقطه سرنوشت ساز شاهد بزرگترین تغییرات Blazor هستیم ;))

از این نسخه تا به امروز ( نسخه 10 ) تغییری در قالب بندی برای ساخت پروژه با Blazor نداشته ایم و در واقع به یک حالت پایدار رسیدیم.

تیم توسعه پروژه دست به تغییرات بزرگی برای یکپارچه سازی قالب ها زد که با هدف کاهش تعداد قالب‌های جداگانه و ارائه‌ی تجربه‌ی یکسان برای توسعه Blazor بود که منجر به حذف قالب های قدیمی مثل WebAssembly و Blazor Server و همچنین گزینه ASP.NET Core Hosted در WebAssembly شد.

همچنین ویژگی Server-Side Rendering (SSR) اضافه شد.

قالب های جدید:

  • Blazor Web App
  • Blazor WebAssembly Standalone App

 

قالب Blazor Web App

یک پروژه واحد ASP.NET Core که  بسته به انتخاب‌ شما می‌تونه حالت server-side render داشته باشه و هم client-side (WebAssembly) . 
 

پشتیبانی از Interactive Render Modes:

  • Interactive Server: تعامل سمت سرور با SignalR در پس زمینه.
  • Interactive WebAssembly – تعامل روی مرورگر با WebAssembly
  • Interactive Auto – ترکیب SSR و WASM ( در ابتدا بصورتSSR و بعد از لود اولیه و دانود کد ها بصورت  WebAssembly )
  • None بدون هیچ interactivity ای مثل یک برنامه MVC یا Razor Pages ( یعنی فقط ساختار کامپوننت محور پروژه های Blazor ای رو شاهد هستیم).

می‌تونی تعیین کنی که interactivity در در کل پروژه یکسان ( global ) استفاده بشه یا در هر component بصورت مستقل تعیین بشه.

این قالب در حال حاضر اصلی‌ترین راه ساخت پروژه های Blazor در .NET 10 هست چون انعطاف کامل برای حالت‌های مختلف رندرینگ و SPA/SSR میده.

 

قالب Blazor WebAssembly Standalone App

این مورد جایگزین قالب WebAssembly شد.

در این قالب Render Mode فقط بصورت Client-Side هست و پروژه روی مرورگر اجرا میشه.

 

نکات مهم:

  • از Blazor Web App در .NET 10 به عنوان قالب اصلی استفاده می‌شود چون قابلیت‌های جدید render mode (SSR، WASM، Auto) را در یک پروژه ترکیب می‌کند.
  • بعد از ارائه قالب Blazor Web App مایکروسافت آن را به عنوان قالب پیشفرض در نظر گرفته و برای ساخت پروژه های جدید توصیه میکند!
  • بعد از نسخه ASP.NET Core 8.0 دیگر شاهد تغییرات سطح بالای زیادی مثل قالب ها نیستیم و بیشتر تمرکز روی performance، tooling و scalability رفته.
برچسب ها