Большое обновление PVS-Studio: версия 6.00 с поддержкой C#

Вышел PVS-Studio 6.00! Это одно из основных обновлений для нас. Надеемся, эта информация будет полезна для наших текущих и новых пользователей анализатора.

Статический анализ для C#

Мы добавили поддержку анализа C#. Мы уже внедрили более 40 диагностик для C# модуля анализатора и это число будет расти. Хотя язык C# гораздо точнее C++, мы заметили, что некоторые ошибки не связаны с языком программирования.

Например, это так называемый эффект последней строки. Мы видели, что очень часто ошибка попадает в последнюю строку блока кода, написанного методом Copy-Paste. К сожалению, защитить себя от подобных ошибок невозможно, каким бы удобным и продуманным ни был язык. Есть еще много примеров таких ошибок, общих как для языков C#, так и для C++.

Как мы пришли к идее сделать анализатор C#? На данный момент (декабрь 2015) у нас есть 235 диагностик для C++. Оказалось, что только часть из них относится к написанию кода на C++, остальные характерны и для C#. Мы провели анализ этих диагностик и выбрали те из них, которые могут быть актуальны для C#. Кроме того, мы исследовали рынок других анализаторов C# и программных средств для работы с кодом. Мы увидели, что есть место для нашего анализатора.

Чтобы не изобретать велосипед, за основу нашего анализатора мы взяли платформу Roslyn.

Прекращена поддержка Visual Studio 2005 и 2008.

Для тех, кто уже использует PVS-Studio, важная новость: мы больше не поддерживаем Visual Studio 2005 и Visual Studio 2008, начиная с версии анализатора 6.00. Таким образом, PVS-Studio теперь поддерживает все версии Visual Studio с 2010 по 2015 год (на текущий момент — декабрь 2015 года). Для нас это вынужденная мера. Чем больше версий Visual Studio мы поддерживаем, тем сложнее их поддерживать.

Во-первых, по информации у нас очень мало пользователей PVS-Studio, работающих с VS2005 или VS2008.

Во-вторых, мы запускаем тесты для каждой версии Visual Studio, которую поддерживаем. Следовательно, чем больше версий нужно поддерживать, тем больше тестов будет располагаться на сервере.

В-третьих, установить и использовать всю линейку продуктов Visual Studio 2005–2015 не так просто из-за конфликтов версий.

Вот почему с выпуском нашей версии 6.00 мы прекратили поддержку старых версий Visual Studio.

Чтобы сделать процесс перехода более плавным, мы по-прежнему будем предоставлять старую версию 5.XX PVS-Studio в течение некоторого времени для тех, кто продолжит работу с VS2005 и 2008.

Дальнейшие шаги

Мы планируем продолжить разработку этого анализатора для наших «традиционных» языков — C и C++.

Кроме того, мы также будем работать над развитием C# анализатора. В нашем списке «ToDo» есть еще много новых диагностик, ожидающих реализации.

Так что сейчас самое время скачать анализатор и запустить его на своем коде — будь он написан на C, C++ или C#.