首先了解一下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