這個專案是參考和整合了jasontaylordev/CleanArchitecture 和 blazorhero/CleanArchitecture 程式碼基礎上,重構出來的新的專案,這兩個專案都是非常優秀和人氣很旺的關於CleanArchitecture的專案模板,我也fork了他們的專案並新增了一些自己的功能模組,我個人非常喜歡blazorhero/CleanArchitecture這個專案,前端使用的是微軟的Blazor(webassembly)技術,對於.net開發人員可以很快開始工作,幾乎不需要額外的學習,但在專案的進行中發現了一個致命的問題就是在(WASM模式下)效能不行,載入資料一多就容易的卡頓,但相信後面會得到優化,jasontaylordev/CleanArchitecture 專案的前端用的Angular12 由於我對angular/vue/react的技術不是很熟練,學習起來實在是感覺力不從心,在實際開發過程中遇到了很多坑,都需要用google來解決,所以最後我還是選擇了自己最熟悉的開發方式asp.net MVC來對我原來的框架進行重構來實現CleanArchitecture設計模式。
我為什麼要不斷的升級和重構我個人的開發框架
首先我追求的是開發效率,開發速度一定要快,當然我個人做的專案都是小專案1-2月內完成的頁面不超過50個的那種,所以我必須再1-2周內完成所有的原型開發(能執行增刪改查操作的原型),所以我不考慮用前後端分離的解決方案原因很簡單前後端分離需要來回切換不同的程式碼風格同時需要封裝2次程式碼,對於一個人的開發工作無疑是增加了很多工作量。
第二考慮的就是編碼的效率和感受,主要是減少拷貝複製的操作,最求極簡的程式碼風格(CleanArchitecture就符合這一點,ABP就覺得太複雜了)不需要太多的分層和定義太多的介面,我喜歡編寫那種非常流暢容易理解的程式碼,寫程式碼追求那種像海上鋼琴師裡那種彈鋼琴的境界
第三就是前端UI必須漂亮符合主流的風格,但我本人對css和UI佈局是真的不行,所以我只能找一個我覺得好看的UI還必須是一整套,所以我選擇了SmartAdmin - Responsive WebApp 如果你們喜歡的話可以通過連結購買
下面我介紹一下我的專案
- Github 倉庫程式碼 github.com
- Demo地址 http://razor.i247365.net/
- 以前的專案 基於領域驅動設計(DDD)超輕量級快速開發架構 - 阿新 - 部落格園 (cnblogs.com)
- MVC Scaffolding SmartCode-Engine 更新 - 阿新 - 部落格園 (cnblogs.com)
技術棧
- [ASP.NET Core 5](https://devblogs.microsoft.com/aspnet/announcing-asp-net-core-in-net-5/)
- [Entity Framework Core 5](https://docs.microsoft.com/en-us/ef/core/)
- [SmartAdmin - Responsive WebApp](https://wrapbootstrap.com/theme/smartadmin-responsive-webapp-WB0573SK0/)
- [Razor Pages](https://docs.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-5.0&tabs=visual-studio)
- [Jquery EasyUI](https://www.jeasyui.com/)
- [MediatR](https://github.com/jbogard/MediatR)
- [AutoMapper](https://automapper.org/)
- [FluentValidation](https://fluentvalidation.net/)
- [NUnit](https://nunit.org/), [FluentAssertions](https://fluentassertions.com/), [Moq](https://github.com/moq) & [Respawn](https://github.com/jbogard/Respawn)
- [Docker](https://www.docker.com/)
專案結構
專案結構完全參考jasontaylordev/CleanArchitecture
Overview
Domain
Application
Infrastructure
[SmartAdmin - Responsive WebApp](https://wrapbootstrap.com/theme/smartadmin-responsive-webapp-WB0573SK0)
如何開發
生成資料庫
執行專案
初始賬號密碼
模板標準功能
新增/編輯/刪除/查詢/匯入/匯出
多語言支援
新增新的功能模組
新增一個實體物件
新增Application CQRS 功能模組
新增頁面
To-Do List
這個專案還剛剛很多基礎功能還沒有開發完成,後面我會繼續完善,如果喜歡請在Github上給個贊。?
- 賬號管理
- 授權管理
- 日誌查詢
- 審批工作流
- 文件管理
- 程式碼生成visual studio.net外掛 !important
- ....