Jakie narzędzia są dostępne do analizy statycznej w kodzie C #? Wiem o FxCop i StyleCop. Czy są inni? Zetknąłem się już z NStatic, ale było w fazie rozwoju, co wydaje się być wieczne - z tego, co widziałem, wygląda całkiem nieźle, więc byłoby miło, gdyby kiedykolwiek ujrzał światło dzienne.
Z tych samych powodów (jest to przede wszystkim moje zainteresowanie analizą statyczną), narzędzia do testowania kodu pod kątem problemów wielowątkowych (zakleszczenia, warunki wyścigu itp.) Również wydają się nieco rzadkie. Właśnie pojawił się Typemock Racer, więc przyjrzę się temu. Coś poza tym?
Doceniane są opinie z życia wzięte na temat używanych przez Ciebie narzędzi.
c#
code-analysis
static-analysis
Paweł Mrozowski
źródło
źródło
Odpowiedzi:
Narzędzia do wykrywania naruszeń kodu:
Fxcop , doskonałe narzędzie firmy Microsoft. Sprawdź zgodność z wytycznymi dotyczącymi platformy .net.
Edytuj październik 2010: nie jest już dostępne jako samodzielne pobieranie. Jest teraz zawarty w Windows SDK i po instalacji można go znaleźć w Program Files \ Microsoft SDKs \ Windows \ [v7.1] \ Bin \ FXCop \ FxCopSetup.exe
Edytuj luty 2018 r . : ta funkcja została teraz zintegrowana z programem Visual Studio 2012 i nowszym jako analiza kodu
Clocksharp , na podstawie analizy źródła kodu (do C # 2.0)
Mono.Gendarme , podobny do Fxcop, ale z licencją opensource (opartą na Mono.Cecil )
Smokey , podobny do Fxcop i Gendarme, oparty na Mono.Cecil . Koniec z rozwojem, główny programista współpracuje teraz z zespołem Gendarme.
Coverity Prevent ™ dla C # , produkt komercyjny
PRQA QA · C # , produkt komercyjny
PVS-Studio , produkt komercyjny
CAT.NET , dodatek do Visual Studio ułatwiający identyfikację luk w zabezpieczeniach Edytuj Listopad 2019: Link nie żyje.
CodeIt.Right
Spec #
Pex
SonarQube , FOSS i opcje komercyjne wspierające pisanie czystszego i bezpieczniejszego kodu.
Jakościowe narzędzia metryczne:
Narzędzia do sprawdzania stylu:
Wykrywanie duplikatów:
Ogólne narzędzia refaktoryzacji
źródło
Narzędzie NDepend jest cytowane jako Quality Metric Tools, ale jest również prawie narzędziem do wykrywania naruszeń Kodeksu . Zastrzeżenie: jestem jednym z twórców tego narzędzia
Dzięki NDepend można napisać regułę kodu przez LINQ Queries (co nazywamy CQLinq) . Domyślnie proponowanych jest ponad 200 reguł kodu CQLinq . Siła CQLinq polega na tym , że łatwo jest napisać regułę kodu i natychmiast uzyskać wyniki. Proponowane są narzędzia do przeglądania dopasowanych elementów kodu. Na przykład:
Poza tym NDepend oferuje wiele innych funkcji analizy statycznej, takich jak funkcje. Obejmują one:
źródło
źródło
Czy widziałeś CAT.NET ?
Z notki -
Użyłem wczesnej wersji beta i okazało się, że przyniosło kilka rzeczy, na które warto zwrócić uwagę.
źródło
Oprócz doskonałej listy autorstwa madgnome dodałbym detektor zduplikowanych kodów oparty na linii poleceń (ale jest bezpłatny):
http://sourceforge.net/projects/duplo/
źródło
Klocwork ma narzędzie do analizy statycznej dla języka C #: http://www.klocwork.com
źródło
Znajduję wskaźniki kodu dodatki and Dependency Structure Matrix dla Reflectora są bardzo przydatne.
źródło
Optimyth Software właśnie uruchomiło usługę analizy statycznej w chmurze www.checkinginthecloud.com . Po prostu bezpiecznie prześlij swój kod, uruchom analizę i uzyskaj wyniki. Bez kłopotów.
Obsługuje kilka języków, w tym C # więcej informacji można znaleźć na wwww.optimyth.com
źródło
Axivion Bauhaus Suite to narzędzie do analizy statycznej, które współpracuje z C # (a także C, C ++ i Java).
Zapewnia następujące możliwości:
Funkcje te mogą być uruchamiane jednorazowo lub w ramach procesu ciągłej integracji. Problemy można wskazywać na podstawie projektu lub dewelopera, gdy system jest zintegrowany z systemem kontroli kodu źródłowego.
źródło