4.3 KiB
4.3 KiB
Development Workflow
本节定义控件库的开发环境配置和日常开发流程,确保开发者能够快速上手并保持高效开发。
Local Development Setup
前置要求:
# 必需
- .NET 9.0 SDK (https://dotnet.microsoft.com/download)
- Visual Studio 2022 (17.8+)
- Git 2.40+
# 推荐
- Visual Studio Avalonia 扩展 (用于 XAML 预览)
初始化项目:
# 克隆仓库
git clone <repository-url>
cd 32_avalonia.ui
# 还原 NuGet 包
dotnet restore
# 构建解决方案
dotnet build
# 运行示例应用
dotnet run --project src/Example/Example.csproj
Visual Studio 配置:
- 打开
Penguin.AvaloniaUI.sln - 设置
Example为启动项目 - 选择调试配置(Debug/Release)
- 按 F5 启动调试
Development Commands
常用命令:
# 启动示例应用(开发模式,支持热重载)
dotnet watch --project src/Example/Example.csproj
# 运行所有单元测试
dotnet test
# 运行特定测试类
dotnet test --filter "FullyQualifiedName~PropertyGridTests"
# 生成代码覆盖率报告
dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=html
# 清理构建产物
dotnet clean
# 格式化代码(基于 .editorconfig)
dotnet format
# 打包 NuGet 包(Post-MVP)
dotnet pack src/Penguin.AvaloniaUI/Penguin.AvaloniaUI.csproj -c Release
Hot Reload 配置
Avalonia 11.x 支持 .NET Hot Reload,但有限制:
支持的修改:
- C# 方法体内的代码修改
- XAML 资源字典的修改(颜色、样式)
- 部分 XAML 控件属性修改
不支持的修改(需要重启):
- 新增或删除控件
- 修改控件模板结构
- 修改依赖属性定义
- 修改 ViewModel 属性签名
启用 Hot Reload:
在 Example.csproj 中确保已启用:
<PropertyGroup>
<AvaloniaUseHotReload>true</AvaloniaUseHotReload>
</PropertyGroup>
Environment Configuration
控件库无需环境变量(MVP 阶段),但示例应用可能需要:
# Example/.env (可选,用于测试外部 API 集成)
# MVP 阶段不需要
调试配置(launchSettings.json):
{
"profiles": {
"Example": {
"commandName": "Project",
"dotnetRunMessages": true,
"environmentVariables": {
"DOTNET_ENVIRONMENT": "Development"
}
}
}
}
Git Workflow
Commit Message 格式(Conventional Commits):
<type>: <description>
[optional body]
Type 类型:
feat: 新功能(如feat: 增加了UserControl的DarkStyle)fix: Bug 修复(如fix: 修复PropertyGrid在主题切换时崩溃)refactor: 重构(如refactor: 优化ThemeManager的资源加载逻辑)test: 测试相关(如test: 添加PropertyGrid的分组功能测试)docs: 文档更新(如docs: 更新README的快速开始指南)style: 代码格式调整(如style: 统一缩进为4空格)chore: 构建/工具相关(如chore: 升级Avalonia到11.3.8)
示例:
git commit -m "feat: 实现PropertyGrid的属性分组功能"
git commit -m "fix: 修复TwoColumnLayout在窗口缩放时的对齐问题"
git commit -m "test: 添加ThemeManager的主题切换测试"
分支命名规范:
feat/<feature-name>- 新功能分支(如feat/usercontrol)fix/<issue-number>- Bug 修复分支(如fix/1123)refactor/<description>- 重构分支(如refactor/theme-system)test/<description>- 测试分支(如test/integration)
日常开发流程:
- 创建功能分支:
git checkout -b feat/two-column-layout - 编写代码:在
src/Penguin.AvaloniaUI/中实现控件 - 编写测试:在
src/Penguin.AvaloniaUI.Tests/中添加单元测试 - 更新示例:在
src/Example/Views/Pages/中添加演示页面 - 本地验证:
- 运行单元测试:
dotnet test - 启动示例应用:
dotnet run --project src/Example - 手动测试主题切换和控件交互
- 运行单元测试:
- 提交代码:
git add . git commit -m "feat: 实现TwoColumnLayout布局控件" git push origin feat/two-column-layout