当前位置: 首页 > news >正文

(一)Modular Monolith Architecture(项目结构/.net项目初始化/垂直切片架构)


文章目录

  • 项目地址
  • 一、项目结构
    • 1.1 Modules
      • 1. Events 模块
      • 2. Users 模块
      • 3. Ticketing 模块
      • 4. Attendance 模块
    • 1.2 数据库模块
    • 1.3 模块架构选择
      • 1. 全是Clean Architecture
      • 2. 分别使用不同的架构
  • 二、初始化项目
    • 2.1 本地创建项目结构
      • 1. 创建空的solution
      • 2. 添加基础配置
      • 3. 创建github仓库
  • 三、垂直切片架构
    • 3.1 项目API project
    • 3.2 创建Events模块
      • 1. 创建 Database
      • 2. 创建api
      • 3. 创建项目的统一注册
      • 4. 在`Program.cs`里注册


项目地址

  • 教程作者:
  • 教程地址:
  • 代码仓库地址:
  • 所用到的框架和插件:
dbt 
airflow

一、项目结构

  • 整体服务概览

在这里插入图片描述

1.1 Modules

在这里插入图片描述

1. Events 模块

  • 活动信息管理:这个模块用于管理和展示所有的活动基础信息。

    1. events:核心表,存储活动标题、描述、地点、开始/结束时间、状态(比如发布、草稿)、分类 ID。
    2. categories:活动分类表,比如「音乐会」「讲座」等。
    3. ticket_types:每个活动可以有多个票种(如 VIP、普通票等),每种票有名字、价格和库存。
    4. images:活动相关图片,带有 URL 和描述,关联到 events。

2. Users 模块

  • 用户与权限管理: 这个模块用于管理系统用户以及权限角色设置。

3. Ticketing 模块

  • 购票与支付流程核心:整个系统的“买票”核心模块,涵盖订单、支付、退款、购物车等功能。
    1. customers:购票用户(可以跟 users 区分开,仅用于购票)。
    2. orders:用户的购票订单,包含总价、订单状态(已支付、退款等)。
    3. order_items:每个订单下的具体票项,关联票种、数量和价格。
    4. tickets:生成的门票,通常有唯一识别码。
    5. payments:支付记录,关联订单和交易状态。
    6. refunds:退款信息,关联订单。
    7. discount_codes:优惠码,按活动设置折扣额度、类型、使用次数等。
    8. cart 和 cart_item:购物车功能,允许用户在付款前选票。

4. Attendance 模块

  • 门票验证与出席统计: 用于记录谁参加了哪个活动,以及门票的验证过程。
    1. attendees:记录具体某用户参加了某活动,用 ticket_id 和 event_id 标识。
    2. tickets:用于验证门票(可用于扫码入场)。
    3. event_stats:统计信息,比如参加人数、核销率等(字段未写清,可能包括出席率等数据)。
    4. events:冗余引用,用于方便获取 attendance 模块下的活动。

1.2 数据库模块

在这里插入图片描述

1.3 模块架构选择

1. 全是Clean Architecture

在这里插入图片描述

2. 分别使用不同的架构

在这里插入图片描述

二、初始化项目

2.1 本地创建项目结构

1. 创建空的solution

  1. 创建一个空文件夹Evently
  2. 进入文件夹,创建空 solution
dotnet new sln -n Evently

2. 添加基础配置

  • 双击进入solution
  1. 创建配置文件.editorconfig
  2. 创建xml文件Directory.Build.props 用于管理所有的包
<Project><PropertyGroup><TargetFramework>net9.0</TargetFramework><ImplicitUsings>enable</ImplicitUsings><Nullable>enable</Nullable><AnalysisLevel>latest</AnalysisLevel><AnalysisMode>All</AnalysisMode><TreatWarningsAsErrors>true</TreatWarningsAsErrors><CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors><EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild><<

相关文章:

  • 【NLP】30. 深入理解 In-Context Learning 的核心机制与策略
  • 浅析AI大模型为何需要向量数据库?【入门基础】
  • 【全队项目】智能学术海报生成系统PosterGenius--前后端系统介绍
  • NGINX 的 ngx_http_auth_jwt_module模块
  • 《繁花》投资、交易启示及思考
  • 深入探索 Apache Spark:从初识到集群运行原理
  • 【Hive入门】Hive安全管理与权限控制:基于SQL标准的授权GRANT REVOKE深度解析
  • Python中有序序列容器的概念及其与可变性的关系
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】4.4 异构数据源整合(CSV/JSON/Excel数据导入)
  • Linux:深入理解数据链路层
  • NOI 2025 大纲更新:算法竞赛的新风向标
  • 算法笔记.约数个数
  • 【今日三题】小红的口罩(小堆) / 春游(模拟) / 数位染色(01背包)
  • 常用非对称加密算法的Python实现及详解
  • Android 控件CalendarView、TextClock用法
  • MongoDB 整合SpringBoot
  • [C语言]第一章-初识
  • ROS2 开发踩坑记录(持续更新...)
  • NSOperation深入解析:从使用到底层原理
  • GAF-CNN-SSA-LSSVM故障诊断/分类预测,附带模型研究报告(Matlab)
  • 央行:5月8日起7天期逆回购操作利率由此前的1.50%调整为1.40%
  • 李云泽:大型保险集团资本补充已经提上日程
  • 原四川省农村信用社联合社党委副书记、监事长杨家卷被查
  • 美政府称不再对哈佛大学提供联邦资助
  • 外交部:中方和欧洲议会决定同步全面取消对相互交往的限制
  • 青岛鞋企双星名人集团家族内斗:创始人发公开信指控子孙夺权