提供您專業技能的最佳管道,IT企業主管唯一推薦

提供您專業技能的最佳管道,IT企業主管唯一推薦

2021年6月15日 星期二

下一個專案該選MVC、Razor Pages還是Blazor?

 


作者:許薰尹  精誠資訊/恆逸教育訓練中心資深講師



2016年微軟推出了真正跨平台的.NET Core,經過日新月異時間的淬鍊,.NET已經邁向第七版了,為了在版本上不與舊一代.NET Framework 4.x版混淆,.NET Core 3.x版的下一個版本,是第五版,同時正名,把「Core」的字眼去掉,命為.NET 5,最新的版本是.NET 7,擁抱新一代.NET的時代已開始。

.NET中包含的ASP.NET應用程式用於開發網站應用程式,它的特色是:

l   開放源碼

l    可以跨WindowsmacOSLinux平台執行

l   一台機器可以多版本同時運行

l   可以使用Visual Studio開發工具、Visual Studio for MacVisual Studio Code(免費)進行開發

l   可整合現代化、流行的用戶端開發框架,如AngularReactVue.js

l    可裝載在多種網站伺服器與環境運行,如KestrelIISNginxApacheDocker等等




不過目前ASP.NET應用程式開發分為三種:

l    ASP.NET MVC

l    ASP.NET Razor Pages

l    ASP.NET Blazor



l   ASP.NET MVC

這三種開發方式都可以使用Razor語法來產生瀏覽器顯示的HTMLCSSWeb UI介面。更進一步來說,ASP.NET MVC將網站應用程式切割成三大塊:Model(模型)View(檢視)Controller(控制器),讓應用程式易於撰寫、除錯以及自動化測試。

 


l   ASP.NET Razor Pages

ASP.NET Core 2.0版新增的Razor Pages,採用類似Model-View-ViewModel(MVVM)設計模式進行開發,支援雙向繫結,開發方式類似PHP、傳統的ASPJava Server PagesASP.NET Web PagesASP.NET Web Forms等等,ASP.NET Razor Pages以頁面(Page)為基礎。

 

ASP.NET Razor Pages將原來ASP.NET MVC開發步驟:加入控制器(Controller)→加入動作(Action) →加入檢視(View),變成加一個頁面(Page)。相較之下,ASP.NET Razor PagesASP.NET MVC開發架構簡單、易學,最建議應用在具有Web UI的網站,例如企業入口網站。

 

就筆者的觀點而言,ASP.NET Razor PagesASP.NET MVC底層都是以ASP.NET為基礎,兩者之間的相似度有80%,差別在於採用不同的路由系統,以及程式寫在不同的位置罷了。

 


l   ASP.NET Blazor

ASP.NET Blazor採用單一頁面應用程式框架(Single Page App FrameworkSPA)SPA框架意味著將所有的檢視與UI邏輯移到用戶端處理。


ASP.NET Blazor適用於全端開發(Full-Stack)



可以使用.NET來建立互動式的用戶端Web UI,號稱從前端瀏覽器寫到後端伺服器上的程式,都可以使用相同的C#語言來取代JavaScript

ASP.NET Blazor可以執行在伺服端或透過WebAssembly執行在用戶端瀏覽器。參考下圖來自官方的文件,為WebAssembly的運行環境:




下圖則是Blazor Server的運行環境:



 

ASP.NET三種開發架構比起來差異性在哪呢?

參考下圖ASP.NET Razor PageASP.NET MVC都是由用戶端瀏覽器送出一個請求,例如要求Index頁面/檢視,伺服端便將整個頁面/檢視的執行結果傳回:



而ASP.NET Blazor則是使用多個元件(Component),組成一個呈現在使用者看到的使用者介面。參考下圖是Blazor Web Assembly運作方式,第一次執行時將整個應用程式下載到瀏覽器,若有需要可透過網路叫用後端服務導向程式REST API來取得資料。您可以將Blazor想像成Vue.jsAngular,只不過我們使用的程式語言不是JavaScript而是C#



ASP.NET MVCASP.NET Razor PageASP.NET Blazor主要差異請參考下表:



總結

ASP.NET MVC:適用於建立在網站伺服器執行的應用程式,瀏覽器只需要接收、載入HTML,然後顯示。檢視的部分由*.cshtml檔案的程式碼處理;商業邏輯則交由控制器(Controller)程式碼負責。

👍學習推薦


ASP.NET Razor Page:檢視的部分由*.cshtml檔案的程式碼處理;商業邏輯則交由對應的*.cshtml.cs檔案程式碼負責。檔案數量比MVC少。

👍學習推薦

l   【UAC495】全面掌握ASP.NET Core Razor Page網站開發技巧



ASP.NET Blazor:主要應用在SPA類型的應用程式,在用戶端處理互動式邏輯。

👍學習推薦

l   【UAC498】從設計到實作ASP.NET Core Blazor網站開發





👍相關學習推薦

Related Posts:

  • 掌握.NET 7,打造跨平台應用作者:羅慧真  精誠資訊/恆逸教育訓練中心資深講師2023年 Microsoft .NET 更新到第七版了。迅速轉動的資訊界,每一年更新幾個版本已經是常態,業界也早已經習慣如此的變動,並且採取的策略便是,若非必要就以不變應萬變,明日地球依舊會轉動。按此策略前進,那麼數算起來,您的… Read More
  • 【Android App開發】除了Java以外的新選擇:Kotlin ▍作者:張益裕 恆逸教育訓練中心資深講師 如果您是一位Android或Java技術開發人員,Groovy、Scala、JRuby或Jython這些JVM Language,或許曾經聽過、看過,甚至已經研究過,不過您可能最後還是回到Java程式語言的懷抱。Java程式設計語言已經二十幾歲了… Read More
  • .NET 8與C# 12新特性導覽  .NET 8與C# 12新特性導覽羅慧真 Anita Lo精誠資訊/恆逸教育訓練中心-資深講師技術分類:程式設計2023年11月微軟已正式公布 .NET 8 及 C# 12,每一次版本的更新都帶來更方便的語法、執行效能和跨越更多種平台類型 (例如.NET 7公布的.NET MA… Read More
  • .NET MAUI代碼一次撰寫,遊走四大平台(圖片來源:微軟網站)作者:羅慧真  精誠資訊/恆逸教育訓練中心資深講師有想過撰寫一次代碼,遊走四大平台(Android、iOS、macOS、Windows)的實現嗎?  .NET MAUI實現了這樣的願景,它的前身是由 Xamarin.Forms 演進而來。… Read More
  • 【學長姐帶路】沒有IT背景,如何用4個月跨領域轉職程式設計師?不要讓過去的學經歷,限制了你的夢想與未來零經驗、非本科系,也可以四個月成功轉職資訊業!2024.3月上課前,他們都沒有IT背景2024.7月結業一個月內,他們都已成功轉職程式設計師來看看微軟養成班學員的學習分享!👩盧玉雯背景:國立高雄科技大學行銷與流通管理系轉職前:產險公司行政專員➤為什麼想轉職?… Read More

0 意見:

張貼留言