C#静态分析工具 Roslynator.Analyzers 将方法数量提高了 500 多

发布于:2020 年 2 月 17 日 09:00

C#静态分析工具Roslynator.Analyzers将方法数量提高了500多

Roslynator .Analyzers 软件包的新版本 2.3.1 将分析、重构和修复方法的数量提升到了 500 多个。Roslynator 使用开源的 Roslyn .NET 编译器平台对 C#代码进行静态分析。这个分析驱动 IDE 显示可以帮助你改进代码的提示和操作信息。

Roslynator 可以安装到 Visual Studio 2017、Visual Studio 2019 和 Visual Studio Code 中。VSCode 版本可以在 Linux、Mac 和 Windows 上运行。这样,它就可以利用最新版本的 Roslyn,即 3.0 版本。Roslynator.Analyzers 2.3.1 将是支持 Visual Studio 2017 的最后一个版本。

可以在一个简单的“hello world”控制台应用程序中看下这个功能。

复制代码
using System;
using System.Collections.Generic;
namespace HelloWorldApp
{
class Program
{
static void Main(string[] args)
{
var a = new List<string>() { "Hello","World"};
var b = a.ToArray();
for (var f = 1;f < b.Length;f++) {
Console.WriteLine(value: b[f].ToString());
}
}
}
}

Roslynator 在可以重构的项旁边添加了一个灯泡动作项菜单,并在屏幕底部的面板中列出了问题。曲线突出了问题面板中提到的问题。该系统在你输入时工作。例如,当你输入 for 语句时,如果结束条件无法解析为布尔值,Roslynator 分析器就会突出显示。

C#静态分析工具Roslynator.Analyzers将方法数量提高了500多

C#静态分析工具Roslynator.Analyzers将方法数量提高了500多

使用配置文件或 Visual Studio IDE,可以配置你希望包含在项目中的检查和修复。配置文件可以共享,使整个团队能够使用相同的设置。

分析器是可扩展的,因此,你可以编写自己的分析器来处理组织中常见的问题,比如弃用的API 或源代码中包含的安全凭据。该工具还支持命令行变体,以便可以将其集成到构建管道中。

与其他静态分析工具一样,Roslynator 不需要执行软件来确定程序的行为和特性。它通过检查源代码来实现这一点。这些工具在20 世纪70 年代就出现了,当时, Stephen C. Johnson 在他的 C 语言课程中提出了 Lint 的想法。它们甚至可以用于非编译语言,如 Python 和 JavaScript。

SonarAnalyzer、XUnit Analyzers、Code Cracker、FxCop 和 StyleCop 等工具之所以能够相对轻松地进行这种分析,是因为 Roslyn 编译器的独特创建方式。如下所示,编译器和工具不是以黑盒的方式提供,而是作为一系列 API 和服务提供的。这些工具可以使用编译器 API 来识别问题代码以及生成替换选项。

C#静态分析工具Roslynator.Analyzers将方法数量提高了500多

图片来源: Roslyn Overview on github

然而,并不是所有流行的代码分析工具都使用 Roslyn。例如, Resharper 工具已经存在了更长时间,它使用的是 JetBrains 专有的技术。Resharper 比 Roslyn 早了几年,他们的引擎提供的特性比 Roslyn API 多,比如解决方案范围的错误分析,“大局(big picture)”代码检查,以及更广泛的语言支持,比如 Razor。JetBrains 已经在他们的其他产品中使用了 Roslyn 技术,比如 Rider IDE

原文链接:

C# Static Analysis Tool Roslynator.Analyzers Now Has over 500 Ways to Improve Code

阅读数:1392 发布于:2020 年 2 月 17 日 09:00

更多 编程语言、微软、C# 相关课程,可下载【 极客时间 】App 免费领取 >

评论 (1 条评论)

发布
用户头像
C#太过先进老板们看不懂,老板们只认识java
2020 年 02 月 17 日 09:42
回复
没有更多评论了
  • Fable 1.0 Beta 提供更好的工具集成、全新项目格式等改进

    F#到JavaScript的编译器Fable近日发布了1.0 Beta版,该版本改进了相关工具,提供了更简洁的项目格式,以及更好的代码生成能力。InfoQ采访了Fable的创作者Alfonso García-Caro。

    2017 年 3 月 29 日

  • Visual Studio 2017 迎来 F# 4.1

    三月初发布的Visual Studio 2017,包含了F# 4.1和Visual F#工具的更新。F# 4.1带来了语言层面提升以及与C# 7的互操作能力,而那些Visual F#工具是支持Roslyn workspaces的首个版本。

    2017 年 4 月 4 日

  • VS Code 的 Why、How 和 What

    VS Code是一款免费、开源、跨平台、轻量的代码编辑器,综合了Eclipse等很多优秀编辑器的优势,同时解决了它们的痛点问题,一经发布就受到了“追捧”。

    2018 年 9 月 15 日

  • 关于编译,你需要了解什么?

    我们应该怎样优化编译速度呢?微信、Google、Facebook等国内外大厂都做了哪些努力呢?

    2019 年 2 月 19 日

  • SubstrateVM:AOT 编译框架

    SubstrateVM的设计初衷是提供一个高启动性能、低内存开销,和能够无缝衔接C代码的Java运行时。它是一个独立的运行时,拥有自己的内存管理等组件。

    2018 年 10 月 12 日

  • Telerik 承诺提供一个永久免费的.NET 反编译器

    Telerik是一个制作.NET和敏捷开发工具的公司,它宣布用于浏览和反编译代码的工具JustDecompile将会永久免费。

    2011 年 5 月 17 日

  • JetBrains 更新了旗下的所有.NET 工具,包括 ReSharper 9

    JetBrains公司最近为旗下的.NET工具推出了新的RTM版本,包括ReSharper 9、dotTrace 6、dotCover 3、dotMemory 4.2、dotPeek 1.3和TeamCity 插件的 9.0版。JetBrains为这些工具打造了一个单一的安装包与平台。当开发者在安装ReSharper时,也能够选择安装同一平台下的其它.NET工具。作者Abel Avram

    2014 年 12 月 14 日

  • 成果检验:方舟编译器的优势在哪里?

    我们一起来探讨下方舟编译器的定位、设计思路,以及方舟编译器中最重要的数据结构:Maple IR。

    2020 年 9 月 16 日

  • Google SoC 系列:ANTLR v3 Ruby 分析器

    写一个Ruby分析器是具有挑战性的任务,XRuby团队从零开始写了个分析器。有一个Google SoC项目将用ANTLR v3更新XRuby当前版本的分析器,并计划在此过程中用Ruby编写一个Ruby分析器。InfoQ采访了Wang Haofei关于分析Ruby过程中遇到的问题及该项目的计划。

    2007 年 5 月 29 日