Jakie narzędzia analizy statycznej są dostępne dla C#? [zamknięte]
Jakie narzędzia są dostępne do statycznej analizy kodu C#? Wiem o FxCop i StyleCop. Są inni? Natknąłem się już na NStatic, ale jest w fazie rozwoju, co wydaje się być na zawsze - wygląda całkiem zgrabnie z tego, co niewiele widziałem, więc byłoby miło, gdyby kiedykolwiek ujrzał światło dzienne.
Wzdłuż tych samych linii (interesuje mnie przede wszystkim analiza statyczna), narzędzia do testowania kodu dla zagadnień wielowątkowych (deadlocks, race warunki itp.) wydaje się też nieco Rzadki. Typemock Racer właśnie wyskoczył, więc będę na to patrzył. Coś poza tym?
Prawdziwe opinie o używanych narzędziach są doceniane.
9 answers
Narzędzia do wykrywania naruszeń kodu:
-
Fxcop , doskonałe narzędzie firmy Microsoft. Sprawdź zgodność z wytycznymi.NET framework.
Edycja październik 2010: nie jest już dostępna 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
Edycja luty 2018: ta funkcjonalność została zintegrowana do Visual Studio 2012 i później jako Analiza kodu
- [24]}Clocksharp , oparty na analizie źródeł 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 . Główny deweloper nie pracuje już nad rozwojem, teraz pracuje z zespołem Gendarme.
- Coverity Prevent™ for C#, commercial produkt
- PRQA QA * C # , produkt komercyjny
- PVS-Studio , produkt komercyjny
-
CAT.NET visual studio addin pomaga w identyfikacji wad bezpieczeństwa.]}
- CodeIt.Prawo
- Spec #
- Pex
Narzędzia Metryczne Jakości:
- NDepend , świetne narzędzie wizualne. Przydatne dla metryk kodu, reguł, różnic, sprzężeń i zależności studia.
- Nitriq , darmowy, może łatwo napisać własne metryki/ograniczenia, ładne wizualizacje. Edycja luty 2018: Pobierz linki teraz martwe.
- RSM do kwadratu , na podstawie analizy źródła kodu
- C # Metrics , używając pełnego parsowania C #
- W 2007 roku, po raz pierwszy w historii, pojawiła się nowa wersja SourceMonitor.]}
- Code Metrics , a Reflektor add-in
- Vil , stare narzędzie, które nie obsługuje. NET 2.0. Edycja styczeń 2018: Link now dead
Sprawdzanie Narzędzi Stylu:
- [116]}StyleCop , Narzędzie Microsoft (uruchamiane z wnętrza Visual Studio lub zintegrowane z projektem MSBuild). Dostępne również jako rozszerzenie dla Visual Studio 2015 i C#6.0
- Agent Smith , wtyczka walidacji stylu kodu dla ReSharper
Duplikacja Detekcja:
- Simian , na podstawie kodu źródłowego. Współpracuje z wieloma językami.
- CloneDR (ang. CloneDR), wykrywa sparametryzowane klony tylko na granicach języka (obsługuje również wiele języków innych niż C#).]}
- Clone Detective Wtyczka Visual Studio. (Używa ConQAT wewnętrznie)
- [148]}Atomiq , oparty na kodzie źródłowym, mnóstwo języków, fajna wizualizacja "koła"
Ogólna Refaktoryzacja narzędzia
- ReSharper - bardzo fajne funkcje analizy i refaktoryzacji kodu C# ]}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-21 17:39:21
Narzędzie NDependjest cytowane jako Narzędzia metryczne jakości, ale jest to również narzędzie wykrywanie naruszenia kodu. Zastrzeżenie: jestem jednym z twórców narzędzia
Za pomocą NDepend można zapisać regułę kodu nad zapytaniami LINQ (co nazywamy CQLinq) . Domyślnie proponuje się więcej niż 200 reguł kodu CQLinq. Siła CQLinq jest taka, że łatwo jest napisać regułę kodu i uzyskać natychmiast wyniki. Obiekty są proponowane do przeglądania dopasowanych elementów kodu. Na przykład:
Poza tym, NDepend zawiera wiele innych analiz statycznych, takich jak Funkcje. Należą do nich:
- Inteligentne Oszacowanie Zadłużenia Technicznego
- Wykres Zależności
- Macierz Zależności
- możliwości różnicowania kodu
- NDepend.API, które pozwala napisać własne narzędzie do analizy statycznej. Z NDepend.APi we opracowano nawet narzędzie do wykrywania duplikatów kodu (szczegóły w tym poście na blogu: oryginalny algorytm do znajdowania duplikatów kodu. NET ).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-12 13:28:09
- Gendarme to statyczny analizator oparty na zasadach open source (podobny do FXCop, ale znajduje wiele różnych problemów).
- Clone Detective to fajna wtyczka do Visual Studio, która znajduje zduplikowany kod.
- mówiąc również o Mono, uważam, że proces kompilacji za pomocą kompilatora Mono (jeśli twój kod jest wystarczająco niezależny od platformy, do czego możesz dążyć i tak) znajduje mnóstwo nieferencjonowanych zmiennych i innych ostrzeżeń, które wizualnie Studio całkowicie chybi (nawet przy poziomie ostrzegawczym ustawionym na 4).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-02 17:11:07
Czy widziałeś CAT.NET?
Z blurb -
CAT.NET jest narzędziem do analizy kodu binarnego to pomaga zidentyfikować typowe warianty pewne przeważające słabości które mogą spowodować powszechny atak wektory takie jak Cross-Site Scripting (XSS), SQL Injection i XPath Wstrzyknięcie.
Użyłem wczesnej bety i okazało się, że znalazłem kilka rzeczy wartych obejrzenia.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-24 17:37:29
Oprócz doskonałej listy autorstwa madgnome, dodałbym wykrywacz duplikatów kodu, który bazuje na wierszu poleceń (ale jest darmowy):
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-19 02:07:51
Klocwork ma narzędzie do analizy statycznej dla C#: http://www.klocwork.com
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-01 02:13:52
Uważam, że Metryka kodui macierz struktury zależności Dodatki do reflektora są bardzo przydatne.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-13 05:47:13
Optimyth Software uruchomił właśnie 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-07 13:22:41
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:
- Wizualizacja architektury oprogramowania (w tym zależności)
- egzekwowanie reguł architektonicznych np. warstwowanie, podsystemy, wywołanie reguł
- wykrywanie klonów-zaznaczanie kopiowania i wklejania (i modyfikowanego kodu)
- Wykrywanie Martwego Kodu
- Wykrywanie Cyklu
- oprogramowanie Metryki
- Sprawdzanie Stylu Kodu
Funkcje te mogą być uruchamiane jednorazowo lub jako część procesu ciągłej integracji. Problemy można wyróżnić na podstawie projektu lub na podstawie dewelopera, gdy system jest zintegrowany z systemem kontroli kodu źródłowego.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-06 13:56:10