Blazor(2)-簡介

Blazor

前面有說到,眾多的前端框架對於一個經驗不多的web開發者來說,是有非常多課題需要克服的。 不論是巨大的時間成本或是太過多樣複雜的技術要學習,可以說要逐一嘗試每一種框架技術是近乎不可能的。

那麼,使用Blazor就能夠解決上述問題嗎?首先我們先來看看Blazor優點: ref

  • 使用C#:不論前端後端,都以C#撰寫程式碼,讓.net工程師可以無痛學習開發。
  • 使用Visual Studio:.net工程師可以直接使用已經習慣的VS強大工具及擴充套件。
  • .net生態:利用.net程式庫的現有.net生態系統。
  • 自由開發:不受限於框架的design pattern,可自由設計開發。
  • 共用程式碼,以C#.net撰寫的前後端應用程式邏輯可直接共用,不需再同步修改兩份以上的程式碼。

總結來說,使用Blazor的最大好處是可以更輕鬆的學習前後端框架,不須學習額外的其他前端語言及框架。 並且依靠原本.net系列的生態系,不論是專案升級或是新人學習都能夠減少非常大量的學習成本。

Client端?Server端?

現今最流行的前端三大框架:Vue、React及Angular主要都是Client端程式為主, 而過去.net系列框架:web form、 asp.net MVC、RazorPages都是以Server端程式為主。 為什麼以前稱霸的Server side Web APP會被Client side給取代呢?這邊簡單解釋一下兩者的差異。

SSR(Server-Side Rendering)

SSR(伺服器端渲染),意思是Server收到請求後,會一次在Server端將需處理的資料處理完畢後, 直接生成完整的Html程式碼後回傳至給瀏覽器進行畫面呈現。

圖:SSR渲染時間軸, 圖片來源

在Borwser發出請求至Server後,Server會先處理請求資料,處理完畢後將資料及畫面一併渲染,並回傳至Borwser進行呈現,此時來到FCP(First Contentful Paint)點。 畫面呈現之後,會接著下載並執行頁面所需的Js,完成後就來到了TTI(Time to Interactive)點,供使用者進行互動。

CSR(Client-Side Rendering)

CSR(客戶端渲染),意思是畫面渲染都由Borwser來進行。不論是顯示邏輯、Route、畫面跳轉等都由客戶端處理。 現今流行的SPA就是CSR,所有動作皆是Borwser來處理,利用Js來替換內容及跳轉頁面。

圖:CSR渲染時間軸, 圖片來源

在Bowser發出請求後,會直接將Html下載下來並呈現,此時來到FCP(First Contentful Paint)點。CSR的頁面大多都是由JS渲染出來的,因此這個階段通常會是空白或是簡單的Loading畫面。 畫面呈現完之後會開始下載、解譯並執行JS同捆包,執行後才開始渲染畫面,完成就到了TTI(Time to Interactive)點。供使用者進行互動。

SSR&CSR差異

  • SSR初次執行速度優於CSR:SSR初次渲染畫面較快,CSR因要下載並解析較大量的JS包因此首次執行較慢
  • CSR使用者體驗優於SSR:SSR每次互動都需要由Server端重新渲染畫面。而CSR的所有互動都由JS執行並渲染,只需從Server端取得資料就好
  • CSR的Server負載優於SSR:SSR需不斷請求Server渲染畫面。而CSR的Server只需提供所需資料就好

這邊簡單介紹Blazor及兩種Hosting Model的渲染方式,後續講解Hosting Models時會在詳細說明Blazor Server及Blazor WebAssemble。

An unhandled error has occurred. Reload 🗙