2009-04-27 55 views
27

Tôi chỉ có một đống mã (phần lớn không có giấy tờ) và tôi muốn hình dung cấu trúc của nó trước khi tôi đi sâu vào và bắt đầu tái cấu trúc. Tôi đã thực hiện điều này trong quá khứ (bằng các ngôn ngữ khác) với các công cụ tạo biểu đồ cuộc gọi.C# Công cụ tạo biểu đồ cuộc gọi

Bạn có thể giới thiệu một công cụ tốt để tạo thuận lợi cho việc khám phá cấu trúc trong C# không?

CẬP NHẬT

Bên cạnh những công cụ đề cập ở đây tôi đã nhìn thấy (qua các ống) người ta nói rằng .NET ReflectorCLR Profiler có chức năng này. Bất kỳ kinh nghiệm với những?

Trả lời

16

NDepend là khá tốt ở đây. Ngoài ra Visual Studio 2008 Team System có một loạt các tính năng cho phép bạn theo dõi độ phức tạp của chu trình nhưng nó cơ bản hơn nhiều so với NDepend. (Chạy phân tích mã)

+0

Bộ tính năng và ảnh chụp màn hình NDepend (từ trang web) trông thú vị. Tôi sẽ kiểm tra nó. –

2

Tôi không chắc liệu nó sẽ thực hiện trên mã nguồn, nhưng ANTS Profiler sẽ tạo biểu đồ cuộc gọi cho một ứng dụng đang chạy (có thể hữu ích hơn).

3

Visual Studio 2010.

Thêm vào đó, trên một phương pháp-by-phương pháp cơ sở - Reflector (Analyzer (Ctrl + R); "Depends On" và "sử dụng theo")

+0

Hoặc bên ngoài phản xạ .. nhấp chuột phải .. tìm thấy tất cả các refrences, đi đến định nghĩa –

+0

tôi sẽ phải chuyển đổi dự án của tôi sang một định dạng Visual Studio mới? Nếu vậy, làm thế nào không đau là quá trình này? –

+0

@Waylon Flinn: ai biết được ... sản phẩm chưa được phát hành hoặc thậm chí là bản beta. Tuy nhiên: với VS2005 đến VS2008, các tệp dự án đã được nâng cấp tự động và phần lớn là tương thích ngược; các tệp giải pháp đã được nâng cấp tự động, nhưng * không * tương thích ngược. –

2

SequenceViz và DependencyStructureMatrix cho Reflector có thể giúp bạn ra ngoài: http://www.codeplex.com/reflectoraddins

+0

SequenceViz trông thú vị nhưng tôi không thể làm cho nó hoạt động với phiên bản mới nhất của .NET Reflector –

+0

Cuối cùng, cả hai đều làm việc. SequenceViz có vẻ như nó không trình bày thông tin hiện tại theo cách hữu ích ở cấp phương thức. DependencyStructureMatrix rất hữu dụng nhưng chỉ xuất hiện để cung cấp thông tin ở cấp độ Assembly và Class. Tôi đang tìm kiếm những thứ ở cấp độ Phương thức. Cảm ơn bạn đã đề xuất những điều này, chúng có thể hữu ích cho một thứ khác. –

5

Tôi đã sử dụng doxygen cho một số thành công. Đó là một chút khó hiểu, nhưng miễn phí và nó hoạt động.

+1

Các cửa sổ nhị phân mới nhất của Doxygen bao gồm một công cụ GUI được gọi là Doxywizard. Bạn chỉ việc này vào đường dẫn cài đặt của Graphviz mà bạn cài đặt riêng và xem nó xây dựng cho bạn đồ thị. –

+0

Tôi đã sử dụng Doxywizard. Phần tôi thấy khó hiểu là nó sẽ không sử dụng các thiết lập C# (mặc dù nó hoạt động tốt với các thiết lập Java). Đã vài tháng kể từ khi tôi cố gắng sử dụng nó. –

8

Về NDepend, nó có thể sản xuất một số đồ thị có thể sử dụng cuộc gọi như ví dụ (hình ảnh kích thước đầy đủ here)

alt text

Tìm giải thích thêm về NDepend gọi đồ thị here.

7

Hơi muộn, nhưng http://sequenceviz.codeplex.com/ là một công cụ tuyệt vời hiển thị biểu đồ người gọi/Biểu đồ trình tự. Các sơ đồ được tạo ra bởi các kỹ thuật đảo ngược .NET Assemblies.

0

Tính đến hôm nay (tháng 6 năm 2017), công cụ tốt nhất trong lớp là tính năng Kiểm tra của Resharper. Nó cho phép bạn tìm tất cả các cuộc gọi đến, cuộc gọi đi, nguồn gốc giá trị/điểm đến, v.v.

Phần tốt nhất của ReSharper, so với các công cụ khác được đề cập ở trên: ít lỗi hơn.

Các vấn đề liên quan