首先了解一下MasaFramework
是什麼
MasaFramework
是一個基於.Net6.0
的後端框架, 可以被用於開發Web應用程式、WPF專案、控制檯專案
其實就是MasaFramework
提供了很多功能的包,很強大,對於Dapr的支援非常好,如果有想嘗試Dapr的可以試試MasaFramework
然後我們開始使用MasaFramework
,進入實戰
安裝MasaFramework
專案模板
dotnet new --install Masa.Template
這樣就安裝成功了
建立專案
開啟一個目錄,開啟控制檯進行建立模板專案,建立一個mfDemo
的專案模板
dotnet new masafx --name mfDemo
這樣就建立完成了,開啟解決方案
我們可以看到開啟解決方案以後的專案結構
專案區分src/ApiGateways
,src/Contracts
,src/Services
,src/Web
四層,這個時候可能就會有很多人有疑惑了,為什麼跟傳統的Abp
架構設計有些差異,其實這個就是MasaFramework
的框架美妙之處。
src/ApiGateways
中包含對外使用的介面實現,相當於我可以直接將src/ApiGateways
給src/Web
的前端專案使用,這樣的好處就是減少前端專案的依賴性,並且對於介面的快速對接
src/Contracts
中包含了基本的模型,和一些共用的東西,src/Contracts
是純粹的,沒有任何依賴,所以src/ApiGateways
和src/Services
都會直接依賴src/Contracts
,用於共用Module
或其他東西,
src/Services
中就是包含了具體業務和實現,並且包含Host
在Application
中包含業務處理或事件處理
如果你並未使用MiniApi
的話應該出現的就是Controllers
其實建議使用MiniApi
,因為倆個實現方式不一樣,導致MiniApi
在效能上對比Controllers
更好
Infrastructure
中就是專案的基礎設施了,看圖我們發現Entity
和Middleware
,Repository
,DbContext
都在基礎設施中
MasaFramework
的設計就是簡化專案複雜,將其柔和在一個專案中,如果你剛剛使用MasaFramework
,千萬千萬不要拆分,你拆分了和MasaFramework
本身設計就不太相符合,但是如果你是熟練的大佬,當我沒說,剛剛入門MasaFramework
請務必使用本身框架的設計
src/Web
就是我們的實際的前端專案了
建立的預設的模板提供是Blazor Server
模式的專案,可以自行拆分成三層專案mfDemo.Shared
mfDemo.Server
,mfDemo.WebAssembly
三層專案架構。
mfDemo.Shared
可以理解成專案的所有實現和介面等一切功能,
mfDemo.Server
其實就是個Blazor Server
的殼,用於託管mfDemo.Shared
專案
mfDemo.WebAssembly
其實也是個Blazor WebAssembly
的殼,用於託管mfDemo.Shared
專案
這樣我們的專案就可以支援Blazor Server
和Blazor WebAssembly
兩種模式了,
通過上文我們可以基本將MasaFramework
的專案結構瞭解清楚,也知道MasaFramework
的設計了,
當前是MasaFramework
的第一篇入門,我會繼續學習MasaFramework
並且分享給大家
來自token的分享
學習交流:737776595