2009-12-10 34 views
87

क्या स्टाइलकोप ने FXcop को हटा दिया है? विजुअल स्टूडियो 2008 के साथ हम किस उत्पाद का उपयोग कर रहे हैं?स्टाइलकॉप बनाम FXcop

+1

डुप्लिकेट? http://stackoverflow.com/questions/580168/visual-studio-code-analysis-vs-stylecop-fxcop –

उत्तर

158

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

दूसरी ओर, FxCop, एक स्थिर विश्लेषण टूल है जो प्रबंधित के स्तर पर काम करता है सभा। इसे गुणों के माध्यम से दिशानिर्देश दिए जा सकते हैं क्योंकि यह कोड तत्वों पर विशेषताओं को देख सकता है, उदाहरण के लिए .. यह उन समस्याओं का पता लगाता है जिन्हें "बाइनरी" स्तर (जैसा कि थे) पर सिंटैक्टिक स्तर के विपरीत देखा जा सकता है।

अपने प्रश्न का उत्तर देने के लिए, स्टाइलकॉप FxCop से अधिक नहीं है, और FxCop स्टाइलकॉप से ​​अधिक नहीं है। वे दो अलग-अलग उद्देश्यों के साथ दो अलग-अलग टूल हैं जो दोनों आपके कोड के लिए वास्तविक लाभ प्रदान कर सकते हैं।

(। उर्फ, मैं दोनों के साथ चलाने :))


बातें एक बनाम बातों का पता लगा सकते कुछ उदाहरण अन्य का पता लगा सकते:

StyleCop उल्लंघन से संबंधित चेतावनी शामिल हो सकता है : व्हाइटस्पेस, स्वरूपण, xml-comments के माध्यम से सार्वजनिक विधि दस्तावेज़, कक्षा के भीतर विधि परिभाषा का क्रम।

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

+1

हां, दोनों की तुलना में पिछले उत्तर सभी गिनती पर गलत हैं। स्टाइलकॉप और FxCop दो बहुत ही अलग कार्य करते हैं, और यह आपके कोडबेस पर प्रदान किए गए मान की जांच करने के लायक है और आपको उन्हें क्यों चलाना चाहिए। – Jedidja

+3

सहमत हैं कि सभी स्टाइलकॉप नियम अच्छे नहीं हैं, लेकिन जैसा कि आप कहते हैं कि जिन्हें आप नहीं चाहते हैं उन्हें अक्षम किया जा सकता है। हम स्टाइलकॉप का उपयोग कर रहे हैं - सादे बेवकूफ नियमों को अक्षम करने के बाद यह हमारे लिए अच्छा मूल्य प्रदान कर रहा है - कम लागत पर ..! सिफारिश की। (ध्यान दें कि हमने इसे पहली नज़र में नफरत की है ..) – stiank81

+0

@ stiank81: हाँ, मुझे लगता है कि _everybody_ पहले स्टाइलकॉप से ​​नफरत करता है। थोड़े समय के बाद, लाभ वास्तव में खुद को स्थापित करते हैं और यह स्रोत में स्थिरता बनाए रखने के लिए खुद को _very_ उपयोगी टूल साबित करता है। :) –

16

स्टाइलकॉप आपके सी # स्रोत कोड पर काम करता है। fxcop किसी भी .net भाषा से आपके संकलित कोड को देखता है।

+0

तो यदि आप स्टाइलकॉप का उपयोग करते हैं, तो क्या FXCop कोई मूल्य जोड़ सकता है? –

+0

वास्तव में, आप FxCop का उपयोग बंद कर रहे हैं। –

+0

कम से कम अभी तक, जब तक यह अधिक विन्यास योग्य नहीं हो जाता है। :) –

5

स्टाइलकॉप करता है स्रोत कोड विश्लेषण बहुत विन्यास योग्य नहीं है। यह वास्तव में FxCop के समान काम नहीं करता है, जो संकलित कोड का विश्लेषण करता है।

इन पर विकिपीडिया लेख मतभेद का अच्छा विवरण प्रदान करता है:

http://en.wikipedia.org/wiki/StyleCop

http://en.wikipedia.org/wiki/FxCop

6

FxCop अपने प्रबंधित कोड विधानसभाओं के स्थिर कोड विश्लेषण करता है। इसे ऐसे मुद्दों को ढूंढने के बारे में सोचें जो रन-टाइम पर समस्याएं पैदा करेंगे या इससे प्रभावित होगा कि डेवलपर का मानना ​​है कि कोड कैसे चल जाएगा (पहुंच योग्य कोड)।

स्टाइलकॉप टेक्स्ट कोड के दृश्य से आपके कोड की संरचना का विश्लेषण करता है। इस बारे में उन मुद्दों के बारे में सोचें जो आपके विकास और डिजाइन अनुभव को प्रभावित करेंगे (प्रारूपण, नामकरण सम्मेलन, दस्तावेज़ीकरण)

वे दोनों बहुत ही मूल्यवान टूल हैं और आपको दोनों का उपयोग करना चाहिए लेकिन वे विभिन्न समस्याओं पर ध्यान केंद्रित करते हैं।

11

FxCop/StyleCop के लिए एक वैकल्पिक या अच्छा पूरक वाणिज्यिक उपकरण NDepend का उपयोग करना होगा।इस उपकरण के साथ कोई भी LINQ क्वेरीज़(namely CQLinq) पर कोड नियम लिख सकता है। अस्वीकरण: मैं उपकरण

200 code rules से अधिक के डेवलपर्स से एक डिफ़ॉल्ट रूप से प्रस्ताव है हूँ, इन डिजाइन, वास्तुकला, कोड गुणवत्ता, कोड विकास, नामकरण सम्मेलनों में शामिल हैं, मृत कोड, नेट Fx उपयोग ...

CQLinq कोड नियम है कि यह कर सकते हैं लिखने के लिए समर्पित है verified live in Visual Studio हो, या यह verified during build process and reported in an HTML/javascript report हो सकता है।

FxCop या StyleCop से अधिक CQLinq की ताकत, कि यह एक कोड नियम लिखते हैं, और मिल तुरंत परिणाम के लिए सीधा है है। मिलान कोड तत्व ब्राउज़ करने के लिए सुविधाएं प्रस्तावित हैं। संक्षेप में ऐसा लगता है:

CQLinq code rule

संबंधित मुद्दे