首先了解一下 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,用于共享 Model 或其他东西。
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