dotnet-starter-kit:一个Web API+Blazor多租户、模块化、简洁DDD架构!

推荐一个Web API+Blazor多租户、模块化、简洁DDD项目框架。

01 项目简介

dotnet-starter-kit是一个基于 .NET 8 的开源项目,架构构建基于 Clean Architecture 原则的解决方案。支持多租户、模块化,一个开箱即用的项目,方便我们快速开发项目。

数据库支持:PostgreSQL 、MySQL、MSSQL、Oracle。

作为学习项目也是不错的选择,从中可以学习如多租户、CQRS、洋葱架构、清洁编码标准、使用Terraform到AWS的云部署、Docker概念、CICD管道和工作流等。

详细教程文档:https://fullstackhero.net/dotnet-webapi-boilerplate/

02 技术栈

  • ASP.NET Core 8

  • Entity Framework Core 8

  • Blazor

  • MediatR

  • PostgreSQL

  • Redis

  • FluentValidation

03 运行与部署

1、下载项目至本地电脑。

2、打开 ./src/FSH.Starter.sln 文件。

3、启动 FSH Starter 解决方案,它包含三个项目:

Aspire Dashboard(已设为默认项目)

Web API

Blazor

4、 API 设置连接字符串。

修改文件./src/api/server/appsettings.Development.json,

修改DatabaseOptions的ConnectionString字符串连接。

5、分别启动项目

Aspire作为默认项目,以https://localhost:7200/启动Aspire Dashboard。

API项目以https://localhost:7000/swagger/index.html 运行。

Blazor项目以https://localhost:7100/ 运行。

部署:

Docker:支持Docker,方便容器化部署。

AWS:项目提供了部署到 AWS 的指南。

04 项目界面

图片

05 项目地址

https://github.com/fullstackhero/dotnet-starter-kit

- End -

推荐阅读

盘点6个.NetCore+Vue前后端分离的开源项目

盘点4个.Net跨平台图形开源库!

盘点下5个Winform UI开源控件库

盘点3个.Net热门HTTP开源库

盘点3个.NET开源任务调度项目

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/50691.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript(18)——事件类型,事件对象

事件类型 鼠标事件: click:鼠标点击 mouseenter:鼠标经过 mouseleave:鼠标离开 焦点事件: focus:获得焦点 blur:失去焦点 键盘事件: Keydown:键盘按下触发 Keyup&#…

学习java的设计模式

系列文章目录 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录一、一文讲完Java常用设计模式(全23种)二、其他1.其他 一、一文讲完Java常用设计模式(全23种&#x…

GitEval — 预测你的 GitHub 个人资料的质量

使用机器学习来预测你是否擅长编码 可直接在橱窗里购买,或者到文末领取优惠后购买: 如果你曾经申请过技术职位,你可能已经向公司发送了你的 GitHub 个人资料链接。此个人资料中的信息可以很好地表明你的编码能力以及是否适合团队。所有这些信…

Spring事件机制

文章目录 一、Spring事件二、实现Spring事件1、自定义事件2、事件监听器2.1 实现ApplicationListener接口2.2 EventListener2.3 TransactionalEventListener 3、事件发布4、异步使用 三、EventBus1、事件模式2、EventBus三要素3、同步事件3.1 定义事件类3.2 定义事件监听3.3 测…

05 Redis key的设计规范

Redis key的设计规范 一、Redis key的设计规范 ​ Redis的Key设计是非常重要的,因为它决定了数据在Redis中的存储方式和访问模式。以下是一些关于Redis Key设计的规范: ​ 简洁性:Key的名称应该尽可能简洁,避免过长和复杂的名称…

Zookeeper客户端和服务端NIO网络通信源码剖析

文章目录 服务端的ServerCnxFactory到底是个什么东西?ServerCnxFactory 的作用ServerCnxFactory 的实现使用 ServerCnxFactory 的示例注意事项ServerCnxFactory是什么时候完成初始化的?初始化流程代码示例详细步骤1. 创建实例2. 配置3. 启动初始化时机总结服务端基于NIO的Ser…

[tomato]靶机复现漏洞详解!

靶机地址: https://download.vulnhub.com/tomato/Tomato.ova 靶机环境:Vmware 网络:NAT模式 信息收集: arp-scan -l 扫描靶机ip地址 扫描开放的端口信息 nmap -sS -sV -p- 192.168.77.135 发现开放端口21&#xff…

2024年7月30日 十二生肖 今日运势

小运播报:2024年7月30日,星期二,农历六月廿五 (甲辰年辛未月乙未日),法定工作日。 红榜生肖:兔、马、猴 需要注意:狗、鼠、牛 喜神方位:西北方 财神方位:…

git 推送时出现错误 Locking support detected on remote “origin“

背景:代码托管是局域网搭建的gitlab 按照提示配置 lfs.locksverify true 还是没有用。 网上搜索了一番,其中有人提到可能时服务器磁盘满了,连到服务器上 df -h 查看, 发现根目录已经写满了: 使用命令行: d…

C/C++进阶 (8)哈希表(STL)

个人主页:仍有未知等待探索-CSDN博客 专题分栏:C 本文着重于模拟实现哈希表,并非是哈希表的使用。 实现的哈希表的底层用的是线性探测法,并非是哈希桶。 目录 一、标准库中的哈希表 1、unordered_map 2、unordered_set 二、模…

redis放在三层架构中的哪一层

文章目录 Redis放在controller还是service以下是一些常见的考虑因素:一、数据访问频率二、数据共享性三、数据更新频率四、数据的一致性要求 Redis放在controller还是service 在三层架构中,将 Redis 数据放置在 Controller 层还是 Service 层&#xff0c…

Laravel认证与授权:打造安全的Web应用

Laravel认证与授权:打造安全的Web应用 在构建现代Web应用时,用户认证和授权是两个核心功能。Laravel框架提供了一套完整的解决方案,使得开发者可以轻松实现这些功能。本文将详细解释如何在Laravel中实现用户认证和授权,并提供相应…

【参会邀请】第四届区块链技术与信息安全国际会议(ICBCTIS 2024)诚邀相聚江城!

我们诚挚地邀请您参与第四届区块链技术与信息安全国际会议(ICBCTIS 2024)。本届会议将于2024年8月17日~19日在中国武汉召开。会议将围绕区块链技术与信息安全等相关研究领域,特邀国内外数位在此领域学术卓越的学者专家做相关致辞与报告&#…

如何使用虚拟机如何安装 Kali Linux ?

1.下载虚拟机:https://www.virtualbox.org/wiki/Downloads 选择你的系统版本 2.下载kali linux系统镜像:https://www.kali.org/get-kali/#kali-virtual-machines 全部下载完成后,我们会得到以下文件! 1.压缩Kali Linux压缩包 2.安…

Django实战:开启数字化任务管理的新纪元

🚀 Django实战:开启数字化任务管理的新纪元 🌐 📖 引言 在数字化转型的浪潮中,任务管理的智能化成为提升组织效能的关键。今天,我将带领大家深入了解我们最新开发的OFTS系统——一款创新的组织任务管理软…

Robot Operating System——深度解析日志功能的实现

大纲 enable_logger_service的作用创建获取日志等级的Service创建设置日志等级的Service 不同等级日志的底层实现总结 在《Robot Operating System——远程修改日志等级》中,我们学习了日志相关的功能,但是没有进行深入分析。本文将分析下列几个课题 en…

【Opencv】色彩空间 color space

import os import cv2 img cv2.imread(os.path.join(.,dog.jpg)) # 在opencv中使用imread,读取的图片每个像素都是bgr色彩,蓝色,绿色,红色 cv2.imshow(img,img) cv2.waitKey(0) # 颜色空间转化:BGR2RGB img_rgb cv2.cvtC…

树深度对决策树性能的影响:深入分析

树深度对决策树性能的影响:深入分析 决策树是一种广泛应用于分类和回归任务的机器学习算法。它通过一系列决策规则将数据集划分为更小的子集,从而做出预测。决策树的深度是影响其性能的关键因素之一。本文将深入探讨树深度对决策树性能的影响&#xff0…

【Python学习手册(第四版)】学习笔记10-语句编写的通用规则

个人总结难免疏漏,请多包涵。更多内容请查看原文。本文以及学习笔记系列仅用于个人学习、研究交流。 本文较简单,5-10分钟即可阅读完成。介绍Python基本过程语句并讨论整体语法模型通用规则(冒号、省略、终止、缩进、其他特殊情况&#xff0…

Python里lambda怎么使用呢?

lambda 函数在Python中是一种简洁定义单行小函数的方式。它允许你快速定义一个简单的、可以在需要函数对象的地方使用的匿名函数。lambda 函数的一般语法如下: python lambda 参数: 表达式 这里,参数 是传递给函数的参数,可以有一个或多个&a…