(1)入门MasaFramework教程
(1)入门MasaFramework教程
首先了解一下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
(1)入门MasaFramework教程的更多相关文章
- Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...
- Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数
上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...
- Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数
上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...
- Angular2入门系列教程4-服务
上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...
- ASP.NET Aries 入门开发教程7:DataGrid的行操作(主键操作区)
前言: 抓紧勤奋,再接再励,预计共10篇来结束这个系列. 上一篇介绍:ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑 本篇介绍主键操作区相关内容. 1:什么时候有默认的 ...
- ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑
前言: 为了赶进度,周末也写文了! 前几篇讲完查询框和工具栏,这节讲表格数据相关的操作. 先看一下列表: 接下来我们有很多事情可以做. 1:格式化 - 键值的翻译 对于“启用”列,已经配置了格式化 # ...
- ASP.NET Aries 入门开发教程4:查询区的下拉配置
背景: 今天去深圳溜达了一天,刚回来,看到首页都是微软大法好,看来离.NET的春天就差3个月了~~ 回到正题,这篇的教程讲解下拉配置. 查询区的下拉配置: 1:查询框怎么配置成下拉? 在配置表头:格式 ...
- 2013 duilib入门简明教程 -- 第一个程序 Hello World(3)
小伙伴们有点迫不及待了么,来看一看Hello World吧: 新建一个空的win32项目,新建一个main.cpp文件,将以下代码复制进去: #include <windows.h> #i ...
- 2013 duilib入门简明教程 -- 部分bug (11)
一.WindowImplBase的bug 在第8个教程[2013 duilib入门简明教程 -- 完整的自绘标题栏(8)]中,可以发现窗口最大化之后有两个问题, 1.最大化按钮的样式 ...
- 2013 duilib入门简明教程 -- 部分bug 2 (14)
上一个教程中提到了ActiveX的Bug,即如果主窗口直接用变量生成,则关闭窗口时会产生崩溃 如果用new的方式生成,则不会崩溃,所以给出一个临时的快速解决方案,即主窗口 ...
随机推荐
- Jenkins多节点python环境隔离(Windows)
Jenkins多节点python环境隔离(Windows) 使用Jenkins构建过程中,需要使用多个Jenkins节点并发构建 由于条件限制,只有一台Windows宿主机,所以在这台宿主机上部署多个 ...
- OWASP ZAP基本使用教程(Kali版)
简介OWASP ZAP是一款非常好用的测试工具,也是Kali里自带的工具,一键就可以扫描多种不同类型的漏洞,最好用的一点就是他可以自动爬取子域名.非常的快捷方便下面我就给大家带来OWASP ZAP的基 ...
- Linux下Jenkins的安装和启动(war包)
1.下载Jenkins war包 Jenkins jar 下载 或者使用在线地址下载如下 wget http://mirrors.jenkins-ci.org/war/latest/jenkins.w ...
- Windows 进程间通信 共享内存
向内存中写数据 1 // SharedMemorySample_write_main.cpp 2 #include <SDKDDKVer.h> 3 #include <Windows ...
- secureCRT设置配色方案
https://blog.csdn.net/qq_42672770/article/details/81301494
- c二级
一·基本数据结构与算法 算法基本概念 算法:解决问题的方法 程序:用某种语言来诠释算法,将算法写成代码. 算法基本特征: 1.可行性 2.确定性 3.有穷性 4.有足够的情报 算法的基本要素 1.算法 ...
- Mybatis配置报错:Failed to configure a DataSource: 'url' attribute is not specified and no embe...
问题分析及解决方案 问题原因: Mybatis没有找到合适的加载类,其实是大部分spring - datasource - url没有加载成功,分析原因如下所示. DataSourceAutoConf ...
- AX2012 日期时间格式化
public static str DateTimeFormatStr(utcDateTime _dateTime, str _format = '{0:yyyy-MM-dd HH:mm:ss}') ...
- 通过Windows定时任务执行Python脚本给钉钉群发送消息
前提:已经存在有成功发送钉钉群机器人消息的python脚本,参考上一篇Python调用钉钉群机器人发送群消息 Windows定时任务设置 1.本机是Win7系统:控制面板->系统和安全-> ...
- Vuex----Getters
Getter 用于对 Store中的数据进行加工处理形成新的数据. Getter 不会修改 Store 中的原数据,它只起到一个包装器的作用,将Store中的数据加工后输出出来. const stor ...