(1/30)大家一起學blazor:初見blazor

(1/30)大家一起學blazor:初見blazor

筆者接觸軟體行業的時間不長,先後接觸三種架構

最后更新 2021/12/9 下午10:35
StrayaWorker
预计阅读 3 分钟
分类
Blazor
专题
一起學blazor系列
标签
.NET C# ASP.NET Core Blazor 架構設計

筆者接觸軟體行業的時間不長,先後接觸三種架構,分別為 asp.net mvc、asp.net core & blazor、asp.net core & angular,由於 asp.net mvc 是筆者初入軟體行業的新人時期,迷迷糊糊地就在前輩的帶領下完成了項目,所以沒什麼感悟,只是大概了解前後端的差別,前端以 http request 發送向後端取數據,後端回傳數據,前端再將結果呈現在頁面上。

待到項目收尾,在主管力推轉型之下改用 asp.net core & blazor 並指派筆者做出模板,筆者搜尋網路資源東拼西湊摸索出了一套堪用的架構,當時只覺得 blazor 跟 asp.net mvc 差距甚大,前端不需要弱類型的 javascript,前後端都是強類型的世界,對筆者的懶人個性起到莫大幫助,可惜接下來由於客戶需求,只能改用 asp.net core & angular,沒辦法深入研究 blazor。

不過有失必有得,在新項目的高壓強度及同事的指導下,筆者大致理解了 angular 的 module, component 分層架構、observable 類似 ajax 的概念,雖然仍是一知半解,但筆者也對 angular 大致熟悉了,發現 component 的概念跟 blazor 的相似,可說是殊途同歸。

由於筆者參加鐵人賽的目的在於紀錄心得,因此有些地方的描述會較為繁瑣,另外筆者從事軟體行業經驗並不豐富,若筆者文章內容有誤,也請各位不吝賜教。

筆者這次鐵人賽想要用 blazor 完成一個可以供使用者輸入日誌的網站,預計涵蓋的項目大概會有:

  1. blazor 簡介
  2. blazor server, blazor webassembly 2 種 hosting 模式及項目結構
  3. component 組件居間、事件處理
  4. ASP.NET Core
  5. EF Core
  6. 登錄、授權

blazor 使用 c# 編寫,雖然也可以用 vb、f# 編寫,但筆者只熟習 c#,c# 屬於.net 框架,.net 框架在 visual studio 開發較為方便,因此筆者會使用 visual studio 開發,版本為.net 5。關於 asp.net, .net framework, net core 的差別,筆者此前看到有人詳述,覺得非常有幫助,若時間允許,筆者會再分享出來。另外筆者過程會使用 git 作為版本控制工具,最終程式代碼會放在 github 上。

GitHub link

Visual Studio download Link

註:本文代碼通過 .net 6 + visual studio 2022 重構,可點擊原文連結與重構後代碼比較學習,謝謝閱讀,支持原作者

Keep Exploring

延伸阅读

更多文章
同分类 / 同标签 2021/12/25

(29/30)大家一起學blazor:blazor單元測試

開發一個系統最無聊的過程大概就是解決bug了,尤其是那種嘗試對null 對象取值的錯誤(`object reference not set to an instance of an object.`),這應該是大部分人剛踏入編程領域最常碰到的問題,為了從枯燥的解決bug過程解脫,這篇就來居間`單元測試`。

继续阅读
同分类 / 同标签 2021/12/25

(28/30)大家一起學blazor:policy-based authorization

之前有說到`asp.net core identity` 使用的是基於`claim` 的驗證,其實`asp.net core identity` 有不同類型的授權方式,最簡單的`登錄授權`、`角色授權`、`claim 授權`,但上述幾種都是以一種方式實現:原則授權(`policy-based authorization`)。

继续阅读