Lombiq/.NET-Analyzers
GitHub: Lombiq/.NET-Analyzers
Lombiq .NET Analyzers 是一套预配置的 .NET 代码分析器与代码规范方案,帮助团队在 .NET 项目中统一推行静态代码质量标准与编码风格约束。
Stars: 33 | Forks: 6
# Lombiq .NET Analyzers
[](https://www.nuget.org/packages/Lombiq.Analyzers/) [](https://www.nuget.org/packages/Lombiq.Analyzers.NetFx/) [](https://www.nuget.org/packages/Lombiq.Analyzers.OrchardCore/) [](https://www.nuget.org/packages/Lombiq.Analyzers.Orchard1/) [](https://www.nuget.org/packages/Lombiq.Analyzers.VisualStudioExtension/)
## 关于
用于 [Lombiq](https://lombiq.com) 项目、[Orchard Core](https://orchardcore.net/) 以及任何其他 .NET 和 .NET Framework 应用程序的 .NET 代码分析器和代码规范设置。我们使用它们在我们所有的 .NET 项目中推行通用标准,包括例如我们所有的[开源 Orchard Core 扩展](https://github.com/Lombiq/Open-Source-Orchard-Core-Extensions)。如果你在使用该方案的同时为我们的开源项目做贡献,你也会受到这些规则的指导。你可以[在这里](https://www.youtube.com/watch?v=dtbGRi3Cezs)查看该项目的演示视频,以及[在这里](https://youtu.be/CHdhwD2NHBU)查看关于 Orchard Core 中自动化 QA 的 Orchard Harvest 2023 演讲。
同时也支持非 SDK 风格的 .NET Framework 项目,前提是它们使用 `PackageReference` 来管理依赖项(与 _packages.config_ 相对)。
你可能感兴趣的其他一些项目:
- 在为 JavaScript、CSS 甚至 Markdown 和 YAML 寻找类似的东西吗?请查看我们的 Lombiq GitHub Actions 项目中的 [Asset Linting 工作流](https://github.com/Lombiq/GitHub-Actions/blob/dev/Docs/Workflows/Productivity/AssetLinting.md)。
- 不仅在寻找静态代码分析,还需要动态测试?请查看我们的 [UI Testing Toolbox](https://github.com/Lombiq/UI-Testing-Toolbox) 和 [Testing Toolbox](https://github.com/Lombiq/Testing-Toolbox) 项目。
- 在寻找一个能帮助你遵守分析器规则的库吗?请查看我们的 [Helpful Libraries 项目](https://github.com/Lombiq/Helpful-Libraries)。
我们 [Lombiq](https://lombiq.com/) 还将此模块用于以下项目:
- 全新的 [圣莫尼卡市网站](https://santamonica.gov/),当时正将其从 Orchard 1 迁移到 Orchard Core([查看案例研究](https://lombiq.com/blog/helping-the-city-of-santa-monica-with-orchard-core-consulting))。
- 全新的 [Smithsonian Folkways Recordings 网站](https://folkways.si.edu/),当时正将其从 Orchard 1 迁移到 Orchard Core([查看案例研究](https://lombiq.com/blog/smithsonian-folkways-recordings-now-upgraded-to-orchard-core))。
- 全新的 [Lombiq 网站](https://lombiq.com/),当时正将其从 Orchard 1 迁移到 Orchard Core([查看案例研究](https://lombiq.com/blog/how-we-renewed-and-migrated-lombiq-com-from-orchard-1-to-orchard-core))。
- [WTW](https://www.wtwco.com/) 的全新客户端门户([查看案例研究](https://lombiq.com/blog/lombiq-s-journey-with-wtw-s-client-portal))。
- 它也让 [DotNest,即 Orchard SaaS](https://dotnest.com/) 变得更好。
你想快速试用这个项目并看看它的实际运行效果吗?请在我们的 [Open-Source Orchard Core Extensions](https://github.com/Lombiq/Open-Source-Orchard-Core-Extensions) 完整 Orchard Core 解决方案中查看它,并浏览我们其他有用的与 Orchard Core 相关的开源项目!
## 使用的分析器包
我们添加并配置了被广泛使用且相互补充的分析器。
- [.NET 代码风格分析](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/overview#code-style-analysis)
- [.NET 代码质量分析](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/overview#code-quality-analysis)
- [AsyncFixer](https://www.nuget.org/packages/AsyncFixer)
- [DotNetAnalyzers.DocumentationAnalyzers](https://www.nuget.org/packages/DotNetAnalyzers.DocumentationAnalyzers/)
- [Meziantou.Analyzer](https://www.nuget.org/packages/Meziantou.Analyzer/)
- [Microsoft.CodeAnalysis.NetAnalyzers](https://www.nuget.org/packages/Microsoft.CodeAnalysis.NetAnalyzers)
- [Microsoft.VisualStudio.Threading.Analyzers](https://www.nuget.org/packages/microsoft.visualstudio.threading.analyzers)
- [SecurityCodeScan.VS2019](https://www.nuget.org/packages/SecurityCodeScan.VS2019/)
- [StyleCop.Analyzers](https://www.nuget.org/packages/StyleCop.Analyzers/)
- [SonarAnalyzer.CSharp](https://www.nuget.org/packages/SonarAnalyzer.CSharp/)
此外,该项目还包含一个 _.editorconfig_ 文件,用于为兼容的编辑器提供额外配置。
## 指南
- [将分析器添加到你的项目中](Lombiq.Analyzers/Docs/AddingAnalyzers.md)
- [在开发期间使用分析器](Lombiq.Analyzers/Docs/UsingAnalyzersDuringDevelopment.md)
- [在命令行构建期间使用分析器](Lombiq.Analyzers/Docs/UsingAnalyzersDuringCommandLineBuilds.md)
- [配置分析器](Lombiq.Analyzers/Docs/ConfiguringAnalyzers.md)
### 发布新的 NuGet 包
当发布新版本的 NuGet 包时,即使只是一个预发布版本,也要将 _TestSolutions\Lombiq.Analyzers.PackageReferences_ 下的包引用更新到新版本。这是在那里运行测试所必需的。
### 升级到新版本的 .NET SDK
当新版本的 .NET SDK 发布时,请执行以下操作:
- 更改 _Build.props_ 文件中的 `LangVersion` 和 `AnalysisLevel` 元素,以选择启用新的语言特性和分析器。这不适用于非 SDK 风格的 .NET Framework 项目。
- 等待所有分析器支持新的 SDK(主要是新的语言特性)。然后将所有包更新到最新版本。
- 检查是否有新的[代码分析类别](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/categories)需要我们在 _Lombiq.Analyzers.globalconfig_ 文件中默认显示警告。
### 添加新的分析器
添加新的分析器包时,请执行以下操作:
- 检查该项目是否处于活跃开发状态,且问题是否能被迅速解决。
- 检查它是否对构建或编辑性能有任何重大影响。
- 审查包中的所有规则,逐一决定我们是否需要它们。
- 检查是否有规则已经被其他分析器覆盖,并禁用重复的规则。
- 我们需要的所有规则都应显示为警告。这允许我们只在需要时,即在 CI 构建期间而不是在开发期间,才因分析器违规中断构建。
- 根据规则适用的应用程序类型,将规则配置添加到相关项目的 _.globalconfig_ 文件中。仅针对编辑器的配置应放在 _.editorconfig_ 文件中。
- 在多个重要的解决方案上对其进行测试。使用 [Hastlayer SDK](https://github.com/Lombiq/Hastlayer-SDK) 是一个很好的例子,因为它是一个大型的 C# 解决方案。
标签:Libemu, NuGet, SOC Prime, Visual Studio插件, 云安全监控, 代码分析, 代码规范, 凭证管理, 多人体追踪, 安全专业人员, 开发工具, 静态分析