Skip to content

Latest commit

 

History

History
108 lines (67 loc) · 4.17 KB

File metadata and controls

108 lines (67 loc) · 4.17 KB

贡献说明

如果你想贡献代码,请阅读本篇内容。

需要注意的事,V10以前的版本只接受问题修复,本篇内容是V10及后续版本开发的贡献说明。

相关技术

  • .NET 命令行工具
  • .NET 模板项目
  • ASP.NET Core
  • Blazor
  • Entity Framework Core
  • SQLite
  • Roslyn代码分析
  • PowerShell脚本
  • MCP

环境准备

  • .NET SDK 9.0 (正式版需要10.0)
  • Visual Studio 2022/VS Code
  • PowerShell 7.0 或更高版本

项目结构说明

  • src:源代码目录
    • Command/CommandLine: 命令行工具项目
    • Services/AterStudio: ASP.NET Core项目,包括Blazor Server和MCP Server。
    • Template/templates: 模板项目
  • scripts:脚本目录
    • installTemplate.ps1: 在本机打包并安装最新模板的脚本
    • PublishToLocal.ps1:将命令行工具安装到本机,以便在本机上测试
  • test:测试项目

模板项目

模板项目位于\src\Template目录下,可通过Pack.csproj来配置打包行为。

如果要修改模板,请使用VS打开src\Template\templates\ApiStandard目录下的MyProjectName.slnx。

模板项目自带Aspire,所以你可以直接使用Aspire Host运行项目,也可能使用dotnet run分别运行。

Ater.dry

直接打开根目录下的Ater.dry.slnx解决方案。

该解决方案包含了命令行项目和Studio项目(ASP.NET Core)。

命令行工具

命令行工具使用Spectre.Console.Cli类库,相关代码在src/Command目录下。

  • CommandLine:定义命令行参数和选项
  • Command.Share:命令行的执行逻辑

部分共用的逻辑在src/Definition/Share/Services/CommandService.cs中实现,如:

你可以在CommandLine项目下,运行该项目,并传递存着参数,以测试命令行的功能。

Studio项目

Studio包含了前后端,在开发过程中,你可以分别运行AterStudio和ClientApp项目。

前端项目使用npm run start命令来运行。

常规调试

  1. 执行installTemplate.ps1脚本将模板安装到本地,创建解决方案时需要使用。模板没有更新时,可以跳过此步骤。
  2. 执行``PublishToLocal.ps1`脚本将命令行工具安装到本地。以测试安装后的效果实际使用效果。
  3. 绝大多时间,直接运行AterStudio项目进行调试即可。

Note

请使用powerShell 7.0 或更高版本来运行脚本。

开发规范和注意事项

ater.dry的项目结构也遵循ater.template模板的结构,尽管它不是一个典型的模板项目。也就是说模板项目的第一个使用方就是ater.dry, 在一定程序上,模板项目与ater.dry可以互相改进。

在开发过程中,可以形成一个自循环:

  1. 完善和修改ater.dry.
  2. 本地安装完善后的ater.dry
  3. 使用最新的ater.dry来辅助实现1

在一定程度上形成了边开发边测试的循环,从而能保存最基本的功能的可用性。

多语言环境

V10版本将全面支持中英文双语环境,这要求用户交互的部分(用户能够看到的),都需要支持多语言。

命令行和后端服务的多语言文件位于src\Definition\Share目录下,包含Localizer.zh-CN.resx和Localizer.en-US.resx。

前端的多语言内容待定。

代码提交

  1. 请先在dev-v10分支进行开发,可随时提交代码到该分支。
  2. 在完成一项新的功能或特性开发后,经过本地测试后,请创建pull request将代码合并到v10分支。

Perigon.CLI 发包流程

发包时请使用仓库内的 release 技能,它记录了版本递增、ReleaseNotes、双语文档、测试、nuget 分支合并和 CI 发布流程。

默认情况下将 src/Apps/CommandLine/CommandLine.csproj 的版本号增加一个小版本,并同步 src/Apps/Dashboard/Dashboard.csproj。完成验证后,将发布提交合并并推送到 nuget 分支;.github/workflows/publish-nuget.yml 会自动打包并发布 NuGet。

src/Apps/CommandLine/ShareDlls.txt 已纳入版本控制,CI 打包时由 scripts/PublishToLocal.ps1 -withStudio:$true 直接读取。项目依赖发生变化时,应先运行 scripts/CheckSharedDlls.ps1 更新该清单并一并提交。