Skip to content

zhouda1fu/Ncp.Admin

Repository files navigation

Ncp.Admin

基于 NetCorePal Cloud Framework 的后台管理模板,后端采用 ASP.NET Core + DDD,前端基于 Vben Admin(Vue 3 + Vite + TypeScript + Ant Design Vue)。


项目预览

以下为前端管理界面效果图。

登录页

登录页

仪表盘 / 数据分析

数据分析

部门管理

部门管理

角色管理

角色管理

API 文档(Scalar)

Scalar API


环境准备

使用 Aspire(推荐)

项目启用了 Aspire 支持,只需要 Docker 环境即可,无需手动配置各种基础设施服务。

# 仅需确保 Docker 环境运行
docker version

# 直接运行 AppHost 项目,Aspire 会自动管理所有依赖服务
cd src/Ncp.Admin.AppHost
dotnet run

Aspire 会自动为您:

  • 启动和管理数据库容器(本模板使用 PostgreSQL
  • 启动和管理消息队列容器(RabbitMQ、Kafka、NATS 等)
  • 启动和管理 Redis 容器
  • 提供统一的 Aspire Dashboard 界面查看所有服务状态
  • 自动配置服务间的连接字符串和依赖关系

访问 Aspire Dashboard(通常在 http://localhost:15888)可以查看和管理所有服务。

推荐方式:使用初始化脚本(不使用 Aspire 时)

如果您没有启用 Aspire,项目提供了完整的基础设施初始化脚本,支持快速搭建开发环境:

使用 Docker Compose(推荐)

# 进入脚本目录
cd scripts

# 启动默认基础设施 (PostgreSQL + Redis + RabbitMQ,本模板推荐)
docker-compose --profile postgres up -d

# 仅 Redis + RabbitMQ,使用 MySQL 作为数据库(需自行改回连接串等配置)
docker-compose up -d

# 使用 SQL Server 替代 PostgreSQL
docker-compose --profile sqlserver up -d

# 使用 Kafka 替代 RabbitMQ
docker-compose --profile kafka up -d

# 停止所有服务
docker-compose down

# 停止并删除数据卷(完全清理)
docker-compose down -v

使用初始化脚本

# Linux/macOS
cd scripts
./init-infrastructure.sh

# Windows PowerShell
cd scripts
.\init-infrastructure.ps1

# 清理环境
./clean-infrastructure.sh        # Linux/macOS
.\clean-infrastructure.ps1       # Windows

手动方式:单独运行 Docker 容器

如果需要手动控制每个容器,可以使用以下命令:

# Redis
docker run --restart unless-stopped --name netcorepal-redis -p 6379:6379 -v netcorepal_redis_data:/data -d redis:7.2-alpine redis-server --appendonly yes --databases 1024

# PostgreSQL(本模板默认数据库)
docker run --restart unless-stopped --name netcorepal-postgres -p 5432:5432 -e POSTGRES_PASSWORD=123456 -e TZ=Asia/Shanghai -v netcorepal_postgres_data:/var/lib/postgresql/data -d postgres:16-alpine

# RabbitMQ
docker run --restart unless-stopped --name netcorepal-rabbitmq -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guest -v netcorepal_rabbitmq_data:/var/lib/rabbitmq -d rabbitmq:3.12-management-alpine

服务访问信息

启动后,可以通过以下地址访问各个服务:

前端项目启动

前端基于 Vben Admin,使用 Vue 3 + Vite + TypeScript + Ant Design Vue。界面效果见上方 项目预览

环境要求

  • Node.js: >= 20.12.0
  • pnpm: >= 10.0.0

安装依赖

# 进入前端目录
cd src/frontend

# 安装依赖
npm i -g corepack
pnpm install

启动开发服务器

# 在 frontend 目录下执行
pnpm dev:antd

启动成功后,前端应用将在 http://localhost:5666 运行。

构建生产版本

# 在 frontend 目录下执行
pnpm build:antd

构建产物将输出到 frontend/apps/admin-antd/dist 目录。

其他常用命令

# 代码检查
pnpm lint

# 代码格式化
pnpm format

# 类型检查
pnpm check:type

# 预览构建结果
pnpm preview

环境变量配置

前端项目的环境变量配置文件位于 frontend/apps/admin-antd/.env.development

  • VITE_PORT: 开发服务器端口(默认:5666)
  • VITE_GLOB_API_URL: 后端 API 地址(默认:http://localhost:5511/api)
  • VITE_NITRO_MOCK: 是否开启 Mock 服务(默认:false)

IDE 代码片段配置

本模板提供了丰富的代码片段,帮助您快速生成常用的代码结构。

Visual Studio 配置

运行以下 PowerShell 命令自动安装代码片段:

cd vs-snippets
.\Install-VSSnippets.ps1

或者手动安装:

  1. 打开 Visual Studio
  2. 转到 工具 > 代码片段管理器
  3. 导入 vs-snippets/NetCorePalTemplates.snippet 文件

VS Code 配置

VS Code 的代码片段已预配置在 .vscode/csharp.code-snippets 文件中,打开项目时自动生效。

JetBrains Rider 配置

Rider 用户可以直接使用 Ncp.Admin.sln.DotSettings 文件中的 Live Templates 配置。

可用的代码片段

NetCorePal (ncp) 快捷键

快捷键 描述 生成内容
ncpcmd NetCorePal 命令 ICommand 实现(含验证器和处理器)
ncpcmdres 命令(含返回值) ICommand<Response> 实现
ncpar 聚合根 Entity<Id> 和 IAggregateRoot
ncprepo NetCorePal 仓储 IRepository 接口和实现
ncpie 集成事件 IntegrationEvent 和处理器
ncpdeh 域事件处理器 IDomainEventHandler 实现
ncpiec 集成事件转换器 IIntegrationEventConverter
ncpde 域事件 IDomainEvent 记录

Endpoint (ep) 快捷键

快捷键 描述 生成内容
epp FastEndpoint(NCP风格) 完整的垂直切片实现
epreq 仅请求端点 Endpoint<Request>
epres 仅响应端点 EndpointWithoutRequest<Response>
epdto 端点 DTOs Request 和 Response 类
epval 端点验证器 Validator<Request>
epmap 端点映射器 Mapper<Request, Response, Entity>
epfull 完整端点切片 带映射器的完整实现
epsum 端点摘要 Summary<Endpoint, Request>
epnoreq 无请求端点 EndpointWithoutRequest
epreqres 请求响应端点 Endpoint<Request, Response>
epdat 端点数据 静态数据类

更多详细配置请参考:vs-snippets/README.md

依赖与框架

数据库迁移

本模板使用 PostgreSQL。请确保 appsettings.json 或环境中的 ConnectionStrings:PostgreSQL 已配置为有效的连接串(使用 Aspire 时由 AppHost 自动注入)。

# 安装工具  SEE: https://learn.microsoft.com/zh-cn/ef/core/cli/dotnet#installing-the-tools
dotnet tool install --global dotnet-ef --version 9.0.0

# 更新数据库(需指定启动项目以加载连接串)
dotnet ef database update -p src/Ncp.Admin.Infrastructure -s src/Ncp.Admin.Web

# 创建迁移 SEE:https://learn.microsoft.com/zh-cn/ef/core/managing-schemas/migrations/?tabs=dotnet-core-cli
dotnet ef migrations add YourMigrationName -p src/Ncp.Admin.Infrastructure -s src/Ncp.Admin.Web

代码分析可视化

框架提供了强大的代码流分析和可视化功能,帮助开发者直观地理解DDD架构中的组件关系和数据流向。

🎯 核心特性

  • 自动代码分析:通过源生成器自动分析代码结构,识别控制器、命令、聚合根、事件等组件
  • 多种图表类型:支持架构流程图、命令链路图、事件流程图、类图等多种可视化图表
  • 交互式HTML可视化:生成完整的交互式HTML页面,内置导航和图表预览功能
  • 一键在线编辑:集成"View in Mermaid Live"按钮,支持一键跳转到在线编辑器

🚀 快速开始

安装命令行工具来生成独立的HTML文件:

# 安装全局工具
dotnet tool install -g NetCorePal.Extensions.CodeAnalysis.Tools

# 进入项目目录并生成可视化文件
cd src/Ncp.Admin.Web
netcorepal-codeanalysis generate --output architecture.html

✨ 主要功能

  • 交互式HTML页面

    • 左侧树形导航,支持不同图表类型切换
    • 内置Mermaid.js实时渲染
    • 响应式设计,适配不同设备
    • 专业的现代化界面
  • 一键在线编辑

    • 每个图表右上角的"View in Mermaid Live"按钮
    • 智能压缩算法优化URL长度
    • 自动跳转到Mermaid Live Editor
    • 支持在线编辑、导出图片、生成分享链接

📖 详细文档

完整的使用说明和示例请参考:

关于监控

这里使用了prometheus-net作为与基础设施prometheus集成的监控方案,默认通过地址 /metrics 输出监控指标。

更多信息请参见:https://github.com/prometheus-net/prometheus-net

About

ncp

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors