.NET是目前使用最广泛的开发者平台之一,尤其是被大型企业采用。它是免费的、跨平台的,让你为网络、移动、桌面、游戏和物联网构建许多不同类型的应用程序。软件包管理器(如NuGet)让你从超过90,000个可用的软件包中挑选你所需要的软件包。截至今天,.NET已经有超过100,000+的OSS贡献和3,700+的OSS公司贡献者。它的最新版本.NET 6被微软称为 "迄今为止最快的.NET",包括大量的新功能和改进,以及C# 10和F# 6。
自然,这些年来,我们有几个用户要求我们支持C#。
几个月前,我们着手为C#建立一个更好的静态分析体验。分析速度慢是那些使用过现有工具的用户最大的抱怨之一,所以解决这个问题是我们的首要任务。构建一个快速的分析运行时,并且不影响准确性和可靠性是我们的首要目标,所以我们设计了自己的运行时,重点放在了这一点上。
今天,我非常兴奋地宣布C#分析器的首次公开发布。它可以向DeepSource云和企业的所有用户提供测试版。
我们的C#分析器与其他的有什么不同?
大多数现有的C#静态分析工具要求用户指定复杂的配置,或将其整合为构建过程的一部分。由于这个原因,需要花费大量的精力来设置分析,甚至分析的速度也很慢,令人痛苦。另一方面,DeepSource C#分析器会自动找出你的项目的结构,不需要任何特殊的配置。由于DeepSource在它自己的独立运行时间中运行分析,所以也不需要与构建管道集成。
如何使用C#分析器?
你可以通过在你的资源库的.deepsource.toml 文件中添加一个条目到[[analyzers]] 表来开始使用C#分析器。
version = 1
[[analyzers]]
name = "csharp"
enabled = true
或者,您可以直接从DeepSource仪表板上添加分析器并激活您的版本库。
由 C# 分析器检测到的问题
在测试版中,分析器检测到50多个问题。其中一些有趣的问题是:
- (CS-R1007) 使用
Guid.Empty来创建一个空的GUID - (CS-R1011)
ToString方法不应返回null - (CS-A1001) 调用潜在的危险方法
DangerousGetHandle - (CS-W1002) 使用已废弃的
Threading APIs
你可以在目录中查看所有问题的列表。在接下来的几个月里,随着分析器的普及,我们会添加更多的问题和Autofix。
如果你使用C#,我们希望你能试一下DeepSource。