C # के लिए कौन से स्थिर विश्लेषण उपकरण उपलब्ध हैं? [बन्द है]


174

C # कोड के विरुद्ध स्थैतिक विश्लेषण के लिए कौन से उपकरण उपलब्ध हैं? मुझे FxCop और StyleCop के बारे में पता है। क्या अन्य हैं? मैं NStatic से पहले भाग चुका हूं, लेकिन यह हमेशा के लिए जैसा दिखता है, उसके लिए विकास में है - यह जो मैंने इसे देखा है, उससे बहुत कम दिख रहा है, इसलिए यह अच्छा होगा यदि यह कभी दिन का प्रकाश देखेगा।

इन समान पंक्तियों के साथ (यह मुख्य रूप से स्थैतिक विश्लेषण के लिए मेरी रुचि है), मल्टीथ्रेडिंग मुद्दों (गतिरोध, दौड़ की स्थिति, आदि) के लिए परीक्षण कोड के उपकरण भी थोड़ा दुर्लभ लगते हैं। Typemock घुड़दौड़ का घोड़ा बस इतना है कि मैं उस पर लग जाएगा। इससे आगे कुछ भी?

आपके द्वारा उपयोग किए जाने वाले उपकरणों के बारे में वास्तविक जीवन की राय की सराहना की जाती है।


@IraBaxter मैंने मेटा पर इस प्रश्न के बारे में चर्चा शुरू कर दी है, और यदि आप चाहते हैं तो इस प्रश्न को हटाने के लिए मैं आपको अपनी दलीलें देने के लिए आमंत्रित करता हूं।

जवाबों:


341

कोड उल्लंघन का पता लगाने के उपकरण:

  • Fxcop , Microsoft द्वारा उत्कृष्ट उपकरण। .Net फ्रेमवर्क दिशानिर्देशों का अनुपालन जांचें।

    अक्टूबर 2010 को संपादित करें: अब स्टैंडअलोन डाउनलोड के रूप में उपलब्ध नहीं है। यह अब विंडोज एसडीके में शामिल है और इंस्टॉलेशन के बाद प्रोग्राम फाइल्स \ माइक्रोसॉफ्ट एसडीकेएस \ विंडोज \ [वी 7.1] \ बिन \ एफएक्सकोप \ एफएक्सकोपसेटअप.exe में पाया जा सकता है।

    फरवरी 2018 को संपादित करें : इस कार्यक्षमता को अब विज़ुअल स्टूडियो 2012 और बाद में कोड विश्लेषण के रूप में एकीकृत किया गया है

  • क्लॉकशर , कोड स्रोत विश्लेषण के आधार पर (C # 2.0 के लिए)

  • Mono.Gendarme , Fxcop के समान है लेकिन एक ओपनसोर्स लाइसेंस ( Mono.Cecil पर आधारित ) के साथ

  • स्मोकी , Fo.nop और Gendarme के समान, Mono.Cecil पर आधारित है । अब विकास पर नहीं, मुख्य डेवलपर अब Gendarme टीम के साथ काम करता है।

  • वाणिज्यिक उत्पाद के लिए C # के लिए कवर को रोकें

  • PRQA QA · C # , वाणिज्यिक उत्पाद

  • पीवीएस-स्टूडियो , वाणिज्यिक उत्पाद

  • CAT.NET , दृश्य स्टूडियो एडिनिन जो सुरक्षा दोषों की पहचान करने में मदद करता है संपादित करें नवंबर 2019: लिंक मर चुका है।

  • CodeIt.Right

  • युक्ति #

  • Pex

  • सोनारक्यूब , FOSS और वाणिज्यिक विकल्प क्लीनर और सुरक्षित कोड लिखने का समर्थन करने के लिए।

गुणवत्ता मीट्रिक उपकरण:

  • ND निर्भर , महान दृश्य उपकरण। कोड मेट्रिक्स, नियम, अंतर, युग्मन और निर्भरता अध्ययन के लिए उपयोगी।
  • निट्रीक , नि: शुल्क, आसानी से अपने स्वयं के मैट्रिक्स / बाधाओं, अच्छी विज़ुअलाइज़ेशन लिख सकते हैं। फरवरी 2018 को संपादित करें: डाउनलोड लिंक अब मृत। 17 जून, 2019 को संपादित करें: लिंक मृत नहीं।
  • कोड स्रोत विश्लेषण के आधार पर RSM वर्ग ,
  • C # मेट्रिक्स , C # के पूर्ण पार्स का उपयोग करते हुए
  • SourceMonitor , एक पुराना टूल जिसे कभी-कभी अपडेट मिलता है
  • कोड मेट्रिक्स , एक परावर्तक ऐड-इन
  • विला , पुराना टूल जो .NET 2.0 का समर्थन नहीं करता है। जनवरी 2018 संपादित करें: लिंक अब मृत है

जाँच शैली उपकरण:

डुप्लीकेशन डिटेक्शन:

  • सिमियन , सोर्स कोड के आधार पर। काफी भाषाओं के साथ काम करता है।
  • CloneDR , केवल भाषा सीमाओं पर पैरामीटर किए गए क्लोन का पता लगाता है (C # के अलावा कई भाषाओं को भी हैंडल करता है)
  • क्लोन डिटेक्टिव एक विजुअल स्टूडियो प्लगइन। (यह आंतरिक रूप से ConQAT का उपयोग करता है )
  • Atomiq , स्रोत कोड के आधार पर, बहुत सी भाषाएं, शांत "पहिया" दृश्य

सामान्य रीफैक्टरिंग उपकरण

  • ReSharper - प्रमुख रूप से शांत सी # कोड विश्लेषण और रीफैक्टरिंग विशेषताएं

4
FxCop के बारे में MSDN पृष्ठ देखें: msdn.microsoft.com/en-us/library/bb429476%28VS.80%29.aspx "FxCop एक ऐसा कोड है जो प्रबंधित कोड असेंबलियों का विश्लेषण करता है (कोड जो .NET फ्रेमवर्क सामान्य भाषा रनटाइम को लक्षित करता है) और विधानसभाओं के बारे में जानकारी की रिपोर्ट करता है, जैसे कि संभव डिजाइन, स्थानीयकरण, प्रदर्शन और सुरक्षा सुधार। "
सारा वेसल्स

FxCop लिंक को Microsoft साइट से हटा दिया गया है। यहाँ FxCop 10.0 "डाउनलोड" है: microsoft.com/downloads/…
ulrichb

क्या यह सिमीयन है: harukizaemon.com/simian/index.html ? (आप लिंक तोड़ दिया गया)। यह भी केवल .NET 1.1 लगता है।
थरौत

@ थरोट धन्यवाद, मैंने यूआरएल बदल दिया है। .NET संस्करण के बारे में, सिमीयन जावा 5 पर .NET 1.1 पर चल सकता है, लेकिन इसका मतलब यह नहीं है कि यह .NET के अन्य संस्करणों में दोहराव का पता लगाता है
जूलियन होउरौ

Nitriq अब उपलब्ध नहीं लगता है। डाउनलोड लिंक (अब निंबलप्रोस, टेलरिक का हिस्सा है) को पुनर्निर्देशित करता है, "हमें खेद है, हम अब नाइट्रिक की पेशकश नहीं करते हैं"
नारायण

7

एनडीडी पर निर्भर उपकरण को गुणवत्ता मीट्रिक उपकरण के रूप में उद्धृत किया जाता है, लेकिन यह कोड उल्लंघन का पता लगाने वाले टूल से बहुत अधिक है । डिस्क्लेमर: मैं टूल के डेवलपर्स में से एक हूं

ND निर्भरता के साथ, कोई LINQ क्वेरी (जिसे हम CQLinq कहते हैं) पर कोड नियम लिख सकते हैं । 200 से अधिक CQLinq कोड नियम डिफ़ॉल्ट रूप से प्रस्तावित हैं। CQLinq की ताकत यह है कि यह एक कोड नियम लिखने के लिए सीधा है , और तुरंत परिणाम प्राप्त करता है । सुविधाएं मिलान कोड तत्वों को ब्राउज़ करने के लिए प्रस्तावित हैं। उदाहरण के लिए:

CQLinq कोड नियम

इसके अलावा, एनडीपीडी कई अन्य स्थैतिक विश्लेषणों के साथ आता है जैसे कि विशेषताएं। इसमें शामिल है:


मेरे पास पिछले कुछ हफ्तों में एनडीपीडी का परीक्षण करने का अवसर था - बड़ा प्रशंसक, जब मैं कर सकता हूं तो देव लाइसेंस प्राप्त करने जा रहा हूं। :) आपके काम के लिए धन्यवाद!
माइकल आर्मेस

1
  • Gendarme एक खुला स्रोत नियम है जो स्टैटिक एनालाइज़र (FXCop के समान है, लेकिन बहुत सारी समस्याओं का पता लगाता है) है।
  • क्लोन डिटेक्टिव विजुअल स्टूडियो के लिए एक अच्छा प्लग-इन है जो डुप्लिकेट कोड ढूंढता है।
  • मोनो के बारे में बोलते हुए, मुझे मोनो कंपाइलर के साथ संकलन करने का कार्य लगता है (यदि आपका कोड ऐसा करने के लिए पर्याप्त स्वतंत्र है, तो ऐसा लक्ष्य जिसे आप किसी भी तरह के लिए प्रयास करना चाहते हैं) अप्रतिबंधित चर और अन्य चेतावनियों के टन को ढूंढता है जो विजुअल पूरी तरह से याद करता है। (यहां तक ​​कि चेतावनी स्तर के साथ 4 पर सेट)।

1

क्या आपने CAT.NET देखा है ?

ब्लर से -

CAT.NET एक द्विआधारी कोड विश्लेषण उपकरण है जो कुछ प्रचलित कमजोरियों के आम वेरिएंट की पहचान करने में मदद करता है जो क्रॉस-साइट स्क्रिप्टिंग (XSS), SQL इंजेक्शन और XPath इंजेक्शन जैसे आम अटैक वैक्टर को जन्म दे सकता है।

मैंने एक शुरुआती बीटा का उपयोग किया और यह कुछ चीजों को देखने के लायक लगता है।


0

मैडगनोम द्वारा उत्कृष्ट सूची के अलावा, मैं एक डुप्लिकेट कोड डिटेक्टर जोड़ूंगा जो कमांड लाइन (लेकिन स्वतंत्र है) पर आधारित है:

http://sourceforge.net/projects/duplo/




-1

ऑप्टिमिथ सॉफ्टवेयर ने अभी क्लाउड www.checkinginthecloud.com में एक स्थिर विश्लेषण सेवा शुरू की है । बस सुरक्षित रूप से अपना कोड अपलोड करें विश्लेषण चलाएं और परिणाम प्राप्त करें। कोई झंझट नहीं।

यह C # सहित कई भाषाओं का समर्थन करता है। अधिक जानकारी wwww.optimyth.com पर देखी जा सकती है


-1

Axivion Bauhaus Suite एक स्थिर विश्लेषण उपकरण है जो C # (साथ ही C, C ++ और जावा) के साथ काम करता है।

यह निम्नलिखित क्षमताएं प्रदान करता है:

  • सॉफ्टवेयर आर्किटेक्चर विज़ुअलाइज़ेशन (निर्भरता में कमी)
  • वास्तु नियमों को लागू करना जैसे कि लेयरिंग, सबसिस्टम, कॉलिंग रूल्स
  • क्लोन डिटेक्शन - कॉपी और पेस्ट (और संशोधित कोड) को हाइलाइट करना
  • डेड कोड डिटेक्शन
  • साइकिल का पता लगाना
  • सॉफ्टवेयर मेट्रिक्स
  • कोड शैली की जाँच

इन सुविधाओं को एक-बंद आधार पर या एक सतत एकीकरण प्रक्रिया के भाग के रूप में चलाया जा सकता है। जब एक स्रोत कोड नियंत्रण प्रणाली के साथ एकीकृत किया जाता है तो मुद्दों को प्रति परियोजना के आधार पर या प्रति डेवलपर आधार पर हाइलाइट किया जा सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.