-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Create method call graphs for your applications in Neo4j, Gephi and other graphing tools. Integrate solution analysis into your build pipeline.
This is not a downloaded tool yet. Currently it is under development and when the minimal features are ready I will make it into a NuGet package and show how to integrate it into builds.
We'll use the WhaleRidesInc.WebService example application. When we invoke the AddWhale method of its web service, we get the following call graph.
WebService -> BusinessLogic ---------------------------------> Infrastructure
AddWhale (A - public)
|
-----> AddWhale (C - public)
| |
| --> IsValidWhale (D - public)
| | |
| | -> GetNumberOfWhalesInSpecies (E - private)
| | |
| | -> GetCount (F - public)
| |
| ---------------------------------------------> Add (G - public)
|
-> Convert (B - private)
Each graph type displays that graph in different ways.
Shows the graph in full detail including private method calls:
Omits all private method calls. Of course those private methods still exist, but they are just not included in the graph.
This graph shows only the cross assembly calls. This means that each relationship is a call from one assembly to another. This graph is useful if you want to query the relationships between assemblies or you simply don't need the detail of the internal assembly calls. This graph will produce faster queries due to the lesser quanity of hops.
Notice how method C and D point to method F. In this graph C does not point to D as it does in reality. This is because this graph just shows that starting a C, we end up with a cross assembly call to F.
We can contrast the three graph types in the below screenshots of the sister application PorpoiseRidesInc.WebAPI which has the same structure but with async/await.
See the bottom right hand side of each graph where the A-G methods are found:
Full Graph of PorpoiseRidesInc.WebAPI example application.
Public Methods Graph of PorpoiseRidesInc.WebAPI example application.
Cross Assembly Graph of PorpoiseRidesInc.WebAPI example application.
Green nodes are methods, red node is a database.
Displaying assembly name.
Displaying method name.
Information about each method is stored including if a method has an interface and implementation, or an abstract version.
Not available yet.