這是最近剛剛重構完成的專案,有點迫不及待的分享給大家,為了跟上技術升級把原來基於MVC Razor Page開源專案 RazorPageCleanArchitecture 進行重構, 前端用Blazor-Server mode代替,後端架構和功能保持一致。具體內容可以訪問GitHub瞭解.
Source Code Repo
Blazor Dashboard Application: https://github.com/neozhu/CleanArchitectureWithBlazorServer
Razor Page Application:https://github.com/neozhu/RazorPageCleanArchitecture
Code Generator Tools:https://github.com/neozhu/CleanArchitectureCodeGenerator
Live Demo
Live Demo: https://mudblazor-s.dotnet6.cn/
Video: https://www.youtube.com/watch?v=GyZJl_dG-Pg
Screenshots
為什麼採用Blazor Server mode而不是用前後端分離的Webassembly mode開發
因為簡單,採用前後端分離的架構,需要在Server端加WebApiController,Webassembly還需要生成Http Client,這裡我覺得存在非常多的重複工作,而對於普通的小型專案我認為沒有必要把時間花在這裡,前後端分離反而會讓架構和程式碼變得更加複雜。當然Blazor Server mode還有很多優勢比如效能載入速度明顯要比Webassembly要快,具體的對比可以從網上查到。
開發環境
- DotNet 6
- Microsoft Visual Studio 2022 (64-bit)
- Support Docker
依賴第三方庫(重點)
- Entity Framework Core 6
- FluentValidation(https://github.com/FluentValidation/FluentValidation)
- MediatR(https://github.com/jbogard/MediatR)
- MudBlazor(https://mudblazor.com/)
技術
- Blazor Server
- MudBlazor UI Component
- MediatR
- Fluent Validation
主要功能
- 程式碼生成工具: https://github.com/neozhu/CleanArchitectureCodeGenerator
- Theme管理: 顏色主題的配置
- 多語言: 支援多語言切換
- 使用者管理:註冊,角色授權
- 角色管理:角色授權管理
- 選單導航管理: comming soon
- 服務監控:comming soon
- 定時任務:comming soon
- 字典管理:comming soon
- 通知管理:comming soon
- 操作日誌:comming soon
- 系統日誌:comming soon
以上還有很多功能沒有遷移過來,後面會慢慢更新。
How to
參考 application/features/Products 增刪改查的程式碼,還包含匯入匯出功能和圖片上傳功能
開發體驗
一句話用了Blazor開發Web應用程式再也不想回到用Jquery, DOM物件的操作了, 只用c#就能開發出與VUE或是Angular,React一樣的SPA應用, 這真的是一種非常酷的體驗。
最後
如果你對這個專案感興趣,可以給星嗎。