安装MasaFramework模板
执行以下命令安装最新Masa的模板
dotnet new install Masa.Template
安装完成将出现四个模板
Masa Blazor App
Masa Blazor App的模板创建的是一个没有携带解决方案的项目模板,默认项目结构如图:
一个简单的Masa Blazor Server项目。
Masa Blazor Pro Web
Masa Blazor Pro Web的模板创建类型有多种:
- Wasm就是单纯的Wasm模式。
- Wasm-Host就是启动一个Server托管Wasm。
- Wasm-PWA支持浏览器安装。
- Server就是单纯的Blazor Server模式。
- ServerAndWasm是提供一个razor类库作为界面,支持Blazor Server和Blazor Wasm俩种模式。
对于上面五种模式更推荐第五种模式,这样就可以在部署的时候部署Blazor Server和Blazor Wasm两种模式,可让用户自行切换,剖析以下Masa Blazor Pro Web的项目结构:
MasaWebPro1项目就是Razor类库,提供界面逻辑和实际业务。
MasaWebPro1.Server项目就只是以Blazor Server模式托管MasaWebPro1项目的界面。
MasaWebPro1.WebAssembly项目就只是以Blazor WebAssembly模式托管MasaWebPro1项目的界面。
运行项目将得到一个精美的项目模板:
可对其修改进行二次开发,也可以将Pro和MasaFramework结合一块使用。
Masa Blazor Website
Masa Blazor Website项目结构:
Masa Blazor Website算是老版本的文档站点的模板,简单描述一下,默认使用了全球化。
Masa Framework Project
Masa Framework Project就是我们的主角了。
需要使用MasaFramework的同志们就需要创建这个模板了,之前的模板都是单纯的Blazor。
当我们创建MasaFramework的时候存在多个选项:
- Use Controllers:使用控制器启用以后不使用MiniApis(更推荐使用MiniApis)
- Enable OpenAPI Support: 其实是否默认使用Swagger
- Add Dapr Support :添加Dapr的支持
- Use Dapr Actor :使用Dapr Actor
- Add Authorization An Authentication:添加授权和认证
- Add Fluent Validation Middleware:添加校验中间件
分别讲解一下Choice Add Service Project and Mode的Basic ,Cqrs,Ddd,Cqrs&Ddd四个项目模板,Choice Add Web Project其实就是Blazor的托管模式:
Basic:
一个最基本的MasaFramework的项目结构。
Cqrs:
MasaFramework的Cqrs结构,对比基本的MasaFramework项目来说有些差异的。
小知识:CQRS(Command Query Responsibility Segregation)是一种架构模式,它将读操作和写操作分离。CQRS 的基本思想是将读操作和写操作分离,这样可以优化系统性能和可扩展性。CQRS 还提供了一种简单的方法来实现事件驱动架构(Event-Driven Architecture),这种架构可以让系统更加灵活和可扩展。
Ddd:
MasaFramework的Ddd项目和基本模板的差异也很明显。
小知识:DDD(Domain Driven Design)是一种软件开发方法论,它强调在设计应用程序时,要将业务领域的概念和业务规则放在首位,而不是技术实现。DDD 的目标是让开发人员更好地理解和实现复杂的业务需求。
Cqrs&Ddd:
Cqrs&Ddd集成了Cqrs和Ddd俩个项目模板的特性,是一个稍微复杂的框架。
小知识:DDD 和 CQRS 通常一起使用,因为它们的目标是相同的:将业务领域的概念和业务规则放在首位,并将技术实现放在其次。在使用 DDD 和 CQRS 时,开发人员通常会将业务逻辑和数据访问逻辑分离,这样可以更好地管理代码和维护系统。
DDD 和 CQRS 是两种不同的方法论,但它们都强调将业务需求放在首位,并将技术实现放在其次。如果您正在开发复杂的应用程序,那么使用 DDD 和 CQRS 可能会对您有所帮助。
项目使用
如果你想使用MasaFramework的话,可以将Masa Pro的模板和MasaFramework的模板结合起来一块使用:
这个是我目前使用到MasaFramework的项目,Web是将Pro的模板嵌入进来,并进行修改,当前项目还在完善,这也是我第一个接触MasaFramework实践的项目,因为符合我需要的,体积小,依赖少。
结尾
来着token的分享
技术交流群:737776595
MasaFramework学习地址:MASA Framework
評論