写点什么

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

  • 2020 年 2 月 17 日
  • 本文字数:1217 字

    阅读完需:约 4 分钟

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 分析器就会突出显示。




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


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


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


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



图片来源: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


2020 年 2 月 17 日 09:002445

评论 1 条评论

发布
用户头像
C#太过先进老板们看不懂,老板们只认识java
2020 年 02 月 17 日 09:42
回复
没有更多了
发现更多内容

当学霸们跑步的时候他们在跑什么

阿里技术

SpringOne Platform 2016参会分享

阿里技术

王坚:世界上最遥远的距离是红绿灯与交通监控摄像头的距离

阿里技术

新零售时代的双11移动技术亮剑 ——2016年阿里移动平台新技术解读

阿里技术

Rust 元宇宙 1 —— 创世纪

Miracle

rust 元宇宙

直播预告丨“Hello ArkUI:初识Slider组件(JS)”周三约起

HarmonyOS开发者社区

HarmonyOS

Rust 元宇宙 3 —— 进入和离开

Miracle

rust 元宇宙

Rust 元宇宙 4 —— 让世界动起来

Miracle

rust 元宇宙

阿里研究员毕玄谈应用运维体系的变迁,DevOPS是大势所趋

阿里技术

[干货]深度学习即将攻陷的下一个领域:NLP——ACL2016优秀论文解读(上篇)

阿里技术

[下篇]深度学习即将攻陷的下一个领域:NLP——ACL2016优秀论文解读(干货)

阿里技术

阿里CTO张建锋:一根高尔夫球杆背后的数据智能[演讲全文]

阿里技术

Rust 元宇宙 5 —— SDL2.0

Miracle

rust SDL 元宇宙

应运而生! 双11当天处理数据5PB—HiStore助力打造全球最大列存储数据库

阿里技术

[干货]基础机器学习算法

阿里技术

[干货]语音技术最新进展-Interspeech总结

阿里技术

Rust 元宇宙 2 — 邻居

Miracle

rust 元宇宙

基于深度学习的智能问答

阿里技术

不会用Camtasia的“库”,你可能错过了一个亿

淋雨

Camtasia

[干货] Weex在双11会场的大规模应用:业务支撑、稳定性保障和秒开实战

阿里技术

精读《高效 javascript》

CRMEB

马云:“电子商务”将消失 新五通一平将引领未来

阿里技术

阿里巴巴数据中心获两项DCD大奖

阿里技术

天猫技术全面打造『身临其境』的消费者交互体验

阿里技术

阿里科学家凭集成学习技术获CIKM Cup竞赛冠军

阿里技术

2016年双11:新技术、新能源的第一战场

阿里技术

最前沿人工智能,助力双11搜索推荐技术再升级——深度增强学习大规模在线应用

阿里技术

Apache再次接受阿里开源产品捐赠 移动开发框架Weex进入孵化

阿里技术

普华永道:阿里巴巴研发投入领跑中国上市公司

阿里技术

阿里巴巴Aliware十年微服务架构演进历程中的挑战与实践

阿里技术

Rust 元宇宙 6 —— 显示世界

Miracle

rust SDL 元宇宙

C#静态分析工具Roslynator.Analyzers将方法数量提高了500多_编程语言_Andy Clark_InfoQ精选文章