QCon上海站购票倒计时最后3天!查看精彩日程 了解详情
写点什么

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

2020 年 2 月 17 日

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:002005

评论 1 条评论

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

诸多老牌数据仓库厂商当前,Snowflake如何创近12年最大IPO金额

华为云开发者社区

数据仓库 数据 存储

云计算简史(上)- 15分钟读完15年

明道云

让AI人才在产业界闪闪发光:百度之星的“神奇滤镜”是怎样炼成的?

脑极体

“区块链×多方计算”解决众多难题 将成区块链应用新场景

CECBC区块链专委会

区块链 数据融合

据说99.99%的人都会答错的类加载的问题

AI乔治

Java 架构 JVM 类加载 性能调优

GO 类型接口及反射间的转换

superman

Go

“一个APP竟然可以适配这么多设备?!”《优酷响应式布局技术全解析》开放下载

破绽

阿里巴巴 阿里云 开发者 优酷 电子书

考研须知

时间是一个人最好的证明

考研

有了容器为什么kubernetes还需要Pod?

架构师修行之路

分布式 微服务 pod kubernete

分布式系统设计理念这么难学?

架构师修行之路

分布式 微服务

京东智联云MySQL数据库如何保障数据的可靠性?

京东科技开发者

MySQL 数据库

关注你自己,如同篮球巨星一样,让身体最佳化,持续投入最爱的事情。

叶小鍵

健康 科普 王立铭 肥胖

websocket 是怎么连接的

程序员与厨子

nginx 网络 HTTP websocket

第12周作业

Vincent

极客时间 极客大学

Java Reference核心原理分析

AI乔治

Java 架构 JVM 性能调优

从分布式到微服务成长手册,助我面试跳槽斩获字节Offer

Java架构追梦

Java 学习 架构 面试 微服务

CloudQuery v1.1.1 修复版本发布

CloudQuery社区

数据库 sql 安全 工具软件

“区块链技术创新要植根市场”

CECBC区块链专委会

金融科技 信息安全

NET-Core中的配置文件操作

为体验更多

C# .net .net core ASP.NET Core

架构训练营 - 第4周课后作业 - 学习总结

Pudding

第12周学习总结

Vincent

极客时间 极客大学

技术实践丨GaussDB(DWS)运维管理功能“升级”的原理和使用

华为云开发者社区

运维 数据 集群

十七、深入Python异常处理

刘润森

Python

5G时代音视频开发王器:WebRTC

华章IT

flutter 音视频 WebRTC React Native

第19届亚运会门票采用区块链技术防伪

CECBC区块链专委会

区块链技术 防伪 溯源

微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计(微服务架构实施原理)

AI乔治

Java 架构 微服务 ,docker

计算机网络基础知识总结

cxuan

计算机网络 计算机

LAXCUS大数据集群操作系统:一个分布式分时共享E级系统软件(四)

陈泽云

人工智能 大数据 数据结构 操作系统 数据存储

架构师训练营 - 第 4周课后作业(1 期)

Pudding

甲方日常 33

句子

工作 随笔杂谈 日常

架构师的成长之路

华章IT

CTO 架构师 架构师之道

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