NetCorePal.Template
3.0.0-rc.3
See the version list below for details.
dotnet new install NetCorePal.Template::3.0.0-rc.3
工程模板
简介
本项目是一个基于dotnet new的模板项目,用于快速创建一个基于 netcorepal-cloud-framework 的项目。
项目支持linux、windows、macOS平台。
前提条件
安装
.NET 9.0 SDK或更高版本。SDK下载地址: https://dot.net/download
拥有
Docker环境,用于自动化单元测试和集成测试。Docker Desktop下载地址: https://www.docker.com/products/docker-desktop/
如何使用
安装模板
dotnet new install NetCorePal.Template
安装Preview版本
dotnet new install NetCorePal.Template::<package-version>"
# 例如
dotnet new install NetCorePal.Template::3.0.0-rc.2
安装Nightly版本
dotnet new install NetCorePal.Template::<package-version> --add-source "https://www.myget.org/F/netcorepal/api/v3/index.json"
创建项目
dotnet new netcorepal-web -n My.Project.Name
命令参数说明
模板支持多个参数来定制生成的项目,您可以根据需要选择不同的技术栈:
基本语法
dotnet new netcorepal-web -n <项目名称> [参数选项]
获取帮助
# 查看所有可用的参数和选项
dotnet new netcorepal-web --help
# 查看所有已安装的模板
dotnet new list
可用参数
| 参数 | 短参数 | 说明 | 可选值 | 默认值 |
|---|---|---|---|---|
--Framework |
-F |
目标 .NET 框架版本 | net8.0, net9.0, net10.0 |
net9.0 |
--Database |
-D |
数据库提供程序 | MySql, SqlServer, PostgreSQL, Sqlite |
MySql |
--MessageQueue |
-M |
消息队列提供程序 | RabbitMQ, Kafka, AzureServiceBus, AmazonSQS, NATS, RedisStreams, Pulsar |
RabbitMQ |
--UseAspire |
-U |
启用 Aspire Dashboard 支持 | true, false |
false |
使用示例
# 使用默认配置(.NET 9.0 + MySQL + RabbitMQ)
dotnet new netcorepal-web -n My.Project.Name
# 使用 .NET 8.0 框架
dotnet new netcorepal-web -n My.Project.Name --Framework net8.0
# 或使用短参数
dotnet new netcorepal-web -n My.Project.Name -F net8.0
# 使用 SQL Server 数据库
dotnet new netcorepal-web -n My.Project.Name --Database SqlServer
# 或使用短参数
dotnet new netcorepal-web -n My.Project.Name -D SqlServer
# 使用 PostgreSQL 数据库
dotnet new netcorepal-web -n My.Project.Name --Database PostgreSQL
# 使用 SQLite 数据库(轻量级文件数据库,适合开发和测试)
dotnet new netcorepal-web -n My.Project.Name --Database Sqlite
# 或使用短参数
dotnet new netcorepal-web -n My.Project.Name -D Sqlite
# 使用 Kafka 消息队列
dotnet new netcorepal-web -n My.Project.Name --MessageQueue Kafka
# 或使用短参数
dotnet new netcorepal-web -n My.Project.Name -M Kafka
# 组合使用多个参数(推荐使用短参数)
dotnet new netcorepal-web -n My.Project.Name -F net8.0 -D PostgreSQL -M Kafka
# 使用云服务(Azure Service Bus)
dotnet new netcorepal-web -n My.Project.Name -M AzureServiceBus
# 使用 Redis Streams 作为消息队列
dotnet new netcorepal-web -n My.Project.Name -M RedisStreams
# 启用 Aspire Dashboard 支持(用于可观测性和编排)
dotnet new netcorepal-web -n My.Project.Name --UseAspire
# 或使用短参数
dotnet new netcorepal-web -n My.Project.Name -U
# 组合使用 Aspire 与其他选项
dotnet new netcorepal-web -n My.Project.Name -F net9.0 -D PostgreSQL -U
提示: 创建项目后,请根据选择的数据库和消息队列配置,使用对应的基础设施初始化脚本来启动所需的服务。详细说明请参考生成项目中的
scripts/README.md文件。
关于 Aspire Dashboard
当启用 --UseAspire 选项时,模板会生成以下额外的项目:
- AppHost 项目:用于应用程序的编排和启动,集成了 Aspire Dashboard
- ServiceDefaults 项目:包含共享的服务配置,如 OpenTelemetry、服务发现、健康检查等
启用 Aspire Dashboard 后,可以通过运行 AppHost 项目来启动应用程序并访问 Dashboard:
cd src/My.Project.Name.AppHost
dotnet run
Aspire Dashboard 提供了以下功能:
- 分布式追踪:可视化查看请求在不同服务间的流转
- 指标监控:实时监控应用程序的性能指标
- 日志聚合:集中查看所有服务的日志
- 服务健康检查:监控各服务的健康状态
- 资源管理:查看和管理应用程序使用的资源
进入项目目录
cd My.Project.Name
构建项目
dotnet build
运行测试
dotnet test
本地开发
如果您需要基于源码开发或调试本模板,可以按以下步骤操作:
克隆仓库
git clone https://github.com/netcorepal/netcorepal-cloud-template.git
cd netcorepal-cloud-template
从本地源码安装模板
方式一:直接从源码目录安装(推荐)
dotnet new install 支持直接从包含模板的源码目录安装,无需构建和打包:
# 在项目根目录直接安装(推荐)
dotnet new install . --force
--force 参数可以强制安装或更新模板,无需先卸载旧版本。这种方式最简单快捷,特别适合本地开发和调试。
修改模板文件后,重新运行安装命令即可更新:
# 修改模板文件后,直接重新安装
dotnet new install . --force
方式二:从构建的包安装
如果需要测试完整的打包流程,可以先构建再安装:
# 恢复依赖
dotnet restore
# 构建项目
dotnet build
# 打包模板
dotnet pack
# 从生成的 nupkg 文件安装
dotnet new install ./bin/Debug/NetCorePal.Template.1.0.0.nupkg
# 或者使用通配符安装
dotnet new install ./bin/Debug/*.nupkg
测试本地模板
安装后,您可以像使用正式版本一样创建项目来测试模板:
# 使用本地安装的模板创建项目
dotnet new netcorepal-web -n TestProject
# 进入测试项目目录
cd TestProject
# 构建和测试
dotnet build
dotnet test
查看已安装的模板
# 列出所有已安装的模板
dotnet new list
# 查看模板详细信息
dotnet new netcorepal-web --help
其它命令
更新模板
dotnet new update
or
dotnet new install NetCorePal.Template::<VERSION>
卸载模板
dotnet new uninstall NetCorePal.Template
IDE 代码片段配置
本模板提供了丰富的代码片段,帮助您快速生成常用的代码结构。
Visual Studio 配置
运行以下 PowerShell 命令自动安装代码片段:
cd vs-snippets
.\Install-VSSnippets.ps1
或者手动安装:
- 打开 Visual Studio
- 转到
工具>代码片段管理器 - 导入
vs-snippets/NetCorePalTemplates.snippet文件
VS Code 配置
VS Code 的代码片段已预配置在 .vscode/csharp.code-snippets 文件中,打开项目时自动生效。
JetBrains Rider 配置
Rider 用户可以直接使用 ABC.Template.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 |
端点数据 | 静态数据类 |
代码分析可视化
框架提供了强大的代码流分析和可视化功能,帮助开发者直观地理解DDD架构中的组件关系和数据流向。
🎯 核心特性
- 自动代码分析:通过源生成器自动分析代码结构,识别控制器、命令、聚合根、事件等组件
- 多种图表类型:支持架构流程图、命令链路图、事件流程图、类图等多种可视化图表
- 交互式HTML可视化:生成完整的交互式HTML页面,内置导航和图表预览功能
- 一键在线编辑:集成"View in Mermaid Live"按钮,支持一键跳转到在线编辑器
🚀 快速开始
安装命令行工具来生成独立的HTML文件:
# 安装全局工具
dotnet tool install -g NetCorePal.Extensions.CodeAnalysis.Tools
# 进入项目目录并生成可视化文件
cd My.Project.Name/src/My.Project.Name.Web
netcorepal-codeanalysis generate --output architecture.html
✨ 主要功能
交互式HTML页面:
- 左侧树形导航,支持不同图表类型切换
- 内置Mermaid.js实时渲染
- 响应式设计,适配不同设备
- 专业的现代化界面
一键在线编辑:
- 每个图表右上角的"View in Mermaid Live"按钮
- 智能压缩算法优化URL长度
- 自动跳转到Mermaid Live Editor
- 支持在线编辑、导出图片、生成分享链接
📖 详细文档
完整的使用说明和示例请参考:
支持特性(WIP)
- 文件存储
- 本地文件
- 阿里云对象存储
- 配置管理
- 文件配置(json、ini、yaml)
- Kubernetes ConfigMap
- Nacos
- Apollo
- AgileConfig
- 数据库
- InMemory
- SqlServer
- MySql
- PostgreSql
- Sqlite
- 消息队列
- RabbitMQ
- Kafka
- RedisStreams
- AzureServiceBus
- AmazonSQS
- Pulsar
- 服务注册发现
- Kubernetes
- Etcd
- Consul
- Zookeeper
- Eureka
- Nacos
- API工具链
- Swagger
- 远程调用
- gRPC
- HttpClient
- 实时通讯
- SignalR
- WebSocket
- 缓存中间件
- Redis
- 熔断限流
- Polly
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.0.1 | 308 | 11/21/2025 |
| 3.0.0 | 279 | 11/12/2025 |
| 3.0.0-rc.3 | 145 | 11/6/2025 |
| 3.0.0-rc.2 | 155 | 10/30/2025 |
| 3.0.0-rc.1 | 88 | 10/25/2025 |
| 3.0.0-preview.1 | 185 | 9/30/2025 |
| 2.9.4 | 373 | 8/28/2025 |
| 2.9.3 | 293 | 8/27/2025 |
| 2.9.2 | 319 | 8/8/2025 |
| 2.9.0 | 337 | 8/5/2025 |
| 2.8.0 | 258 | 7/11/2025 |
| 2.7.3 | 240 | 6/28/2025 |
| 2.7.2 | 239 | 6/27/2025 |
| 2.7.1 | 427 | 6/12/2025 |
| 2.7.0 | 382 | 5/16/2025 |
| 2.6.1 | 290 | 3/28/2025 |
| 2.6.0 | 579 | 3/24/2025 |
| 2.5.1 | 280 | 3/14/2025 |
| 2.5.0 | 309 | 3/11/2025 |
| 2.4.2 | 366 | 3/5/2025 |
| 2.4.1 | 349 | 3/5/2025 |
| 2.4.0 | 299 | 2/26/2025 |
| 2.3.0 | 276 | 2/20/2025 |
| 2.2.1 | 258 | 1/16/2025 |
| 2.2.0 | 215 | 1/15/2025 |
| 2.1.0 | 222 | 1/10/2025 |
| 2.0.0 | 314 | 12/15/2024 |
| 1.5.1 | 335 | 9/2/2024 |
| 1.5.0 | 253 | 9/1/2024 |
| 1.4.0 | 331 | 8/11/2024 |
| 1.3.0 | 246 | 7/29/2024 |
| 1.2.0 | 315 | 7/13/2024 |
| 1.1.1 | 3,060 | 12/11/2023 |
| 1.1.0 | 439 | 12/8/2023 |
| 1.1.0-rc.2 | 513 | 11/25/2023 |
| 1.1.0-rc.1 | 487 | 11/12/2023 |
| 1.0.0 | 534 | 9/21/2023 |