技术开发 频道

VS 2008中的代码分析功能

IT168 技术文档】

    在Visual Studio 2005中,我们在产品中集成了两个内部使用的静态分析工具——FxCop和PREfast,分别命名为托管代码分析(Managed Code Analysis)和C/C++ 代码分析。这些工具帮助用户利用我们在内部使用多年的工具,编写自己的安全和高质量的托管代码或原生代码。这是我们的哲学的部分体现:“发布我们使用的,使用我们发布的”。

    代码分析团队在Visual Studio 2008中增添了一些新的代码分析功能特性。今天我想就这些新功能简单谈一谈。

    代码度量(Code Metrics):在这个新的工具窗里,用户不仅可以看到自己应用程序的整体健康度,而且可以更深入地找到那些不易维护的、复杂的热点(hotspots)。在Visual Studio 2008中,代码度量包含五个度量指标:圈复杂度,继承深度,类耦合度,代码行数,以及维护性指数。在这里和这里,代码分析团队写作了一些帖子描述这个新的功能。

    代码分析策略的改进:代码分析策略可以用来确保在每次代码check-in之前代码分析都被运行过。根据用户的反馈,我们的团队在此进行了一些易用性方面的改进,包括提供了更好的向导,并为设置的策略如何应用到项目上提供了更多控制能力。

    分析改进:在分析方面我们进行了一系列的改进:

    -支持分析匿名方法和lambda表达式
    -减少目前的分析噪声,允许跳过工具自动生成的代码
    -新的分析特性,包括围绕安全,全球化,可维护性,拼写检查(包括自定义词典的支持)增加了一些新的规则
    -更好地支持C++/CLI和 Compact Framework
    -性能改进,将分析托管代码的时间缩短了一半,比起Visual Studio 2005,使用的内存也减小了一半。

    更好的消息屏蔽支持 (suppression support):在Error列表里,通过右键点击一个warning消息,选择“Suppress Message”菜单项,代码分析就会屏蔽这个警告报告。这一支持在Visual Studio 2008中得到了扩展,用户可以选择仅仅针对代码进行屏蔽,或者将屏蔽规则应用于一个独立的项目屏蔽文件。我们还更改了底层的屏蔽格式,以便实现对泛型方法的支持,对C++装箱的值类型的支持,和对特殊类型修饰符(比如C++中的const)的支持。

0
相关文章