简体中文 | English · Back to README
Thank you for helping improve Fast.NET. Follow this guide so changes remain reviewable, releasable, and compatible with every target framework.
- Install a .NET SDK compatible with
global.json. - Read the architecture guide to understand the affected layer and allowed dependency direction.
- Search existing issues to avoid duplicate work. Open an issue before implementing a significant design change.
git clone https://gitee.com/FastDotnet/Fast.NET.git
cd Fast.NET
dotnet restore Fast.NET.sln
dotnet build Fast.NET.sln -c Release --no-restoreThe primary modules target .NET 8–10, while Fast.IaaS targets .NET Standard 2.1. Changes to shared build configuration, conditional compilation, or dependency versions should be validated against every affected target. NuGet versions belong in Directory.Packages.props.
- Follow
.editorconfigand existing naming conventions. - Keep each module focused and avoid reverse or circular dependencies.
- Public APIs should have accurate XML documentation.
- Add Chinese comments that explain the reason behind complex compatibility, concurrency, and security logic.
- Follow the comment and public API documentation guide; do not retain template wording, dead code, or context-free TODO comments.
- Avoid unnecessary synchronous blocking in asynchronous APIs and dispose streams, tokens, and other resources correctly.
- Use target-specific conditional references for framework-specific dependencies.
- Update
README.zh.md,README.md, and relevant architecture documentation when behavior changes.
Run at least:
dotnet restore Fast.NET.sln
dotnet build Fast.NET.sln -c Release --no-restoreAlso verify that:
- The build introduces no warnings or errors.
- The
Fast.IaaSpackage contains onlylib/netstandard2.1. - Other SDK packages contain the supported .NET 8–10 targets.
bin/,obj/,nupkgs/, secrets, and local configuration are not committed.- Public Chinese and English documentation remains structurally and semantically synchronized.
An effective pull request should:
- Address one clear problem without unrelated formatting changes.
- Explain motivation, design decisions, compatibility impact, and validation results.
- Explain current API behavior and update callers, tests, and documentation.
- Link the related issue when one exists.
- Use a clear commit message, such as
fix: prevent duplicate cache populationorfeat: add an infrastructure module.
Never publish API keys, connection strings, tokens, or other sensitive data in issues, logs, or example configuration.