2009-04-27 31 views
27

मुझे अभी एक ढेर ढेर (ज्यादातर अनियंत्रित) सी # कोड मिला है और मैं इसे गोता लगाने और रीफैक्टरिंग शुरू करने से पहले इसकी संरचना को देखना चाहता हूं। मैंने अतीत में (अन्य भाषाओं में) ऐसा किया है जो कॉल ग्राफ़ उत्पन्न करते हैं।सी # कॉल ग्राफ जनरेशन टूल

क्या आप सी # में संरचना की खोज को सुविधाजनक बनाने के लिए एक अच्छा उपकरण सुझा सकते हैं?

अद्यतन

उपकरण यहाँ उल्लेख मैं (ट्यूब के माध्यम से) लोगों को देखा है के अलावा कहना है कि .NET Reflector और CLR Profiler इस कार्यक्षमता है। इनके साथ कोई अनुभव?

उत्तर

16

NDepend इस पर बहुत अच्छा है। इसके अतिरिक्त विजुअल स्टूडियो 2008 टीम सिस्टम में सुविधाओं का एक समूह है जो आपको चक्रीय जटिलता का ट्रैक रखने की अनुमति देता है लेकिन यह एनडीपेन्ड की तुलना में अधिक बुनियादी है। (रन कोड विश्लेषण)

+0

NDepend सुविधा सेट और स्क्रीनशॉट (वेबसाइट से) दिलचस्प लगते हैं। मैं इसे देखने जा रहा हूँ। –

2

मुझे यकीन नहीं है कि यह सिर्फ स्रोत कोड पर होगा, लेकिन ANTS Profiler चल रहे एप्लिकेशन के लिए कॉल ग्राफ़ तैयार करेगा (वैसे भी अधिक उपयोगी हो सकता है)।

3

Visual Studio 2010

साथ ही, एक विधि-दर-विधि के आधार पर - परावर्तक;

+0

या बाहरी परावर्तक .. राइट क्लिक करें .. सभी रिफ्रेंस ढूंढें, परिभाषा पर जाएं –

+0

क्या मुझे अपनी परियोजना को एक नए विजुअल स्टूडियो प्रारूप में परिवर्तित करना होगा? यदि हां, तो यह प्रक्रिया कितनी दर्द रहित है? –

+0

@Waylon Flinn: कौन जानता है ... उत्पाद अभी तक जारी नहीं किया गया है, या यहां तक ​​कि बीटा में भी। हालांकि: VS2005 से VS2008 तक, प्रोजेक्ट फ़ाइलों को स्वचालित रूप से अपग्रेड किया गया था और (काफी हद तक) पीछे की ओर संगत थे; समाधान फ़ाइलों को स्वचालित रूप से अपग्रेड किया गया था, लेकिन * पीछे * संगत नहीं थे। –

2

SequenceViz और DependencyStructureMatrix परावर्तक के लिए आप बाहर मदद कर सकता है (विश्लेषक (Ctrl + R) और "द्वारा प्रयुक्त" "पर निर्भर करता है"): http://www.codeplex.com/reflectoraddins

+0

अनुक्रम Viz दिलचस्प लग रहा है लेकिन मैं इसे .NET Reflector –

+0

के नवीनतम संस्करण के साथ काम करने के लिए नहीं मिल सकता है अंत में दोनों काम करने के लिए मिला। SequenceViz ऐसा लगता है कि यह वर्तमान जानकारी को इस तरह से प्रस्तुत नहीं करता है जो विधि स्तर पर उपयोगी है। निर्भरता संरचना मैट्रिक्स उपयोगी था लेकिन केवल विधानसभा और कक्षा स्तर पर जानकारी देने के लिए दिखाई दिया। मैं विधि स्तर पर चीजों की तलाश में हूं। इन्हें सिफारिश करने के लिए धन्यवाद, वे किसी और चीज़ के लिए उपयोगी हो सकते हैं। –

5

मैंने कुछ सफलता के लिए doxygen का उपयोग किया है। यह थोड़ा उलझन में है, लेकिन मुफ़्त है और यह काम करता है।

+1

डॉक्सिजन की नवीनतम विंडोज बाइनरी में एक जीयूआई उपकरण शामिल है जिसे डॉक्सविज़ार्ड कहा जाता है। आप इसे ग्राफ़विज़ के इंस्टॉलेशन पथ पर इंगित करते हैं जिसे आप अलग से इंस्टॉल करते हैं, और इसे ग्राफ़ बनाने के लिए देखते हैं। –

+0

मैं Doxywizard का उपयोग कर रहा था। जो भाग मैंने भ्रमित पाया वह यह है कि यह सी # सेटिंग्स का उपयोग नहीं करेगा (हालांकि यह जावा सेटिंग्स के साथ ठीक काम करता है)। यह कई महीनों से हुआ है क्योंकि मैंने इसका इस्तेमाल करने की कोशिश की थी। –

8

NDepend संबंध में, यह उदाहरण के लिए जैसे कुछ प्रयोग करने योग्य कॉल ग्राफ (छवि पूर्ण आकार here)

alt text

NDepend कॉल ग्राफ here के बारे में अधिक स्पष्टीकरण का पता लगाएं उत्पादन कर सकते हैं।

7

यह देर हो चुकी है, लेकिन http://sequenceviz.codeplex.com/ एक शानदार टूल है जो कॉलर ग्राफ/अनुक्रम आरेख दिखाता है। आरेख रिवर्स इंजीनियरिंग .NET असेंबली द्वारा उत्पन्न होते हैं।

0

आज के रूप में (जून 2017), कक्षा में सबसे अच्छा उपकरण Resharper's Inspect सुविधा है। यह आपको सभी आने वाली कॉल, आउटगोइंग कॉल, वैल्यू मूल/गंतव्य इत्यादि खोजने की अनुमति देता है।

ऊपर वर्णित अन्य टूल्स की तुलना में रीशेपर का सबसे अच्छा हिस्सा: यह कम छोटी गाड़ी है।

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