Введение
FxCop - это бесплатный инструмент анализа статического кода от Microsoft, который проверяет, соответствуют ли управляемые сборки кода NET требованиям Microsoft's NET Framework Design Guidelines.
Обзор
В отличие от StyleCop, или инструмента программирования Lint, для языка программирования C, FxCop анализирует скомпилированный объектный код, а не исходный исходный код. Он использует CIL-анализ и анализ графа вызовов для проверки сборок на более чем 200 различных возможных нарушений стандартов кодирования в следующих областях: COM (Интероперабельность) правила, которые обнаруживают проблемы COM Interop. правила проектирования, которые выявляют потенциальные недостатки проектирования. Эти ошибки кодирования обычно не влияют на выполнение вашего кода. Глобализация правила, которые обнаруживают отсутствие или неправильное использование информации, связанной с глобализацией и локализацией. Правила присвоения имен, которые обнаруживают неправильное вложение, столкновения ключевых слов на разных языках и другие проблемы, связанные с названиями типов, членов, параметров, пространств имен и сборок. Правила производительности, которые обнаруживают элементы в ваших сборах, которые снижают производительность. Правила безопасности, которые обнаруживают элементы программирования, которые делают ваши сборки уязвимыми для вредоносных пользователей или кода. Правила использования, которые обнаруживают потенциальные недостатки в ваших сборках, которые могут повлиять на выполнение кода. Поддерживаемость правила, которые выявляют проблемы с техническим обслуживанием. Портативность правила, которые выявляют проблемы с переносимостью. Надежность правила, которые обнаруживают правильное использование памяти и потоков. FxCop включает в себя как графический интерфейс, так и версии командной строки инструмента. Microsoft Visual Studio 2005 и Visual Studio 2008 Team System Development Editions включают в себя функцию "анализ кода", основанную на FxCop. Для Visual Studio 2010 соответствующие и немного улучшенные функции статического анализа кода включены в версии Premium и Ultimate. FxCop 10.0 включен в SDK Microsoft Windows для Windows 7. FxCop предоставляет инструмент, чтобы помочь разработчикам следовать стандартам кодирования их компании. FxCop проводит анализ кода, чтобы проверить, соответствует ли новый код стандартам кодирования и конвенциям имен, которым придерживается компания. FxCop будет обеспечивать, чтобы указанные правила использовались в исходном коде.
COM (Interoperability) – rules that detect COM Interop issues. Design – rules that detect potential design flaws. These coding errors typically do not affect the execution of your code. Globalization – rules that detect missing or incorrect usage of information related to globalization and localization. Naming – rules that detect incorrect casing, cross language keyword collisions, and other issues related to the names of types, members, parameters, namespaces, and assemblies. Performance – rules that detect elements in your assemblies that will degrade performance. Security – rules that detect programming elements that leave your assemblies vulnerable to malicious users or code. Usage – rules that detect potential flaws in your assemblies that can affect code execution. Maintainability – rules that detect maintenance issues. Portability – rules that detect portability issues. Reliability – rules that detect correct memory and thread usage. FxCop includes both GUI and command line versions of the tool. Microsoft Visual Studio 2005 and Visual Studio 2008 Team System Development Editions both include a "Code Analysis" feature based on FxCop. For Visual Studio 2010 the corresponding, and slightly enhanced, static code analysis features are included in the Premium and Ultimate editions. FxCop 10.0 is included in the Microsoft Windows SDK for Windows 7. FxCop provides a tool to help developers to follow their company's coding standards. FxCop does code analysis to check whether the new code is compliant with the coding standards and naming conventions followed by the company. FxCop will ensure that the specified rules are used in the source code.