C#中的FxCop是否涵盖米斯拉?

C#中的FxCop是否涵盖米斯拉?,c#,misra,C#,Misra,对于用.net/C编写的程序,FxCop(和Roslyn等价物)是否涵盖MISRA中的相关规则?有没有人检查过并在上面打勾 或者有没有类似于MISRA的.NET合规标准?没有。默认情况下,FxCop(现在是Visual Studio中的代码分析)只关注拼写/大小写更正和Microsoft自己的指导原则。当然,你可以自由制定自己的规则 请注意,大多数静态分析工具只查看已编译的CIL-因此您将无法监视安全关键型样式冲突(例如未加支撑的if和无意的开关-案例故障) 假定MISRA是专门针对C和C++的

对于用.net/C编写的程序,FxCop(和Roslyn等价物)是否涵盖MISRA中的相关规则?有没有人检查过并在上面打勾

或者有没有类似于MISRA的.NET合规标准?

没有。默认情况下,FxCop(现在是Visual Studio中的代码分析)只关注拼写/大小写更正和Microsoft自己的指导原则。当然,你可以自由制定自己的规则

请注意,大多数静态分析工具只查看已编译的CIL-因此您将无法监视安全关键型样式冲突(例如未加支撑的
if
和无意的
开关
-案例故障)


假定MISRA是专门针对C和C++的(而不是c·y/cIL),FxCop不会找到它。虽然我想如果你真的为C#实现了MISRA,你会从中赚一大笔钱——我会为此付出代价的

在谷歌搜索之后,我确实找到了


这个工具看起来很有趣,将Roslyn分析器提升到了一个新的层次。我将进一步研究这个工具。

MISRA是C程序的编码标准,它不适用于C代码,也不能应用于C代码。它也不必如此,C几乎不存在和C一样的问题。你最好和你的客户谈谈,他们可能会禁止.NET程序,或者希望C++程序被验证为一种非常不同的方式。但我怀疑C#永远不会有一个,因为C#非常不适合任务关键型软件。到目前为止,我想最接近的是CERT Java标准。。。但我还没有读过这篇文章。我不是在寻找完整的报道,但MISRA中有一些规则有助于保持清洁的做法。在谷歌搜索之后,我确实找到了对Roslyn分析器(其中一个是MISRA)进行很好分类的方法。现在,在Roslyn中,分析器可以使用语法和语义模型。甚至在VS2015之前,我们在StyleCop定制中就有了“必须有默认开关盒”。