AssAnalyzer Page Index (Download AssAnalyzer)

Important AssAnalyzer 0.1 Information?
What is AssAnalyzer?
Where do I get AssAnalyzer?
How do I run AssAnalyzer?
What's the difference between .xml and .grph output formats?
How do I interpret the xml output?
How do I generate the visual representation using the .grph file?
How stable is AssAnalyzer?
What's next for AssAnalyzer?

Important AssAnalyzer 0.1 Information

On April 9, 2007 AssAnalyzer 0.1 was officially released.

I've done my best to update the documentation on this site. But I may have missed something. If you notice inconsistencies, please let me know. My contact information is on the about page.

What is AssAnalyzer?

AssAnalyzer is a dependency management utility for .Net assemblies. It's primary purpose is to analyze the dependencies between assemblies. The output is an xml file representing the PhysicalDependencies between the assemblies, as well as a .grph file that can be used with GraphViz to generate a component diagram.

Or, AssAnalyzer is for .Net what JarAnalyzer is for Java.

Or, AssAnalyzer is an open source alternative to NDepend.

For more information on PhysicalDependencies, including a variety of design patterns, check out Extensible Java.

Where do I get AssAnalyzer?

Here's the binary version. The source code will be available soon. If you'd like the source code immediately, contact me. If you want to build AssAnalyzer, you'll need to have Rake installed.

How do I run AssAnalyzer?

Running AssAnalyzer is easy. Download the binary version, unzip the file, and invoke analyze.exe.

You can also configure AssAnalyzer to produce specific types of output by modifying the assanzlyerconfig.xml.

What's the difference between .xml and .grph output formats?

The .xml output is a data intensive document showing more complete information about each .Net assembly included in the report. The .grph is a DOT formatted file that can be used with GraphViz to generate a visual representation of the assembly relationships.

How do I interpret the xml output?

The output is an xml file of the dependencies between the assemblies analyzed. Here's a listing of the primary elements that AssAnalyzer reports on.

  • AssemblyName: The name of the assembly analyzed.
  • Statistics: Number of packages and classes in the assembly.
  • Metrics: These are based on the "Martin Metrics". AssAnalyzer does not currently support the Level metric found in JarAnalyzer.
  • Packages: Names of the packages in the assembly.
  • OutgoingDependencies: Dependent assemblies based on what was analyzed.
  • IncomingDependencies: Assemblies dependent on this assembly.

I took the liberty of running AssAnalyzer on some popular Mono assemblies (not all). Here's the output xml files generated.

A stylesheet is included that allows you to transform your xml output to a much nicer looking format. Here is an example using the xml file above for Mono.

How do I generate the visual representation using the .grph file?

First, you need to have GraphViz installed. Then, you can run DOT directly on the .grph file. Something like this works well:

dot -Tpng -Nshape=box -Nfontsize=30 -Nwidth=1.5 -Nheight=1.25 out.grph -o out.png

Here is an example of a visual component diagram for the Mono assemblies analyzed above.

How stable is AssAnalyzer?

I've done tested AssAnalyzer on a variety of applications and open source software. To the best of my knowledge, there are no current issues. That doesn't mean none exist though, and if you do find that AssAnalyzer isn't working correctly for you, please let me know. AssAnalyzer is released under the BSD License.

What's next for AssAnalyzer?

Based on your feedback, and my experiences...

If after using AssAnalyzer, you find other features you feel would be valuable, let me know what they are, and I'll add them to the list.

What's the history behind AssAnalyzer?

To do!

Areas (Search) (RSS Feeds)

JarAnalyzer (download now)
AssAnalyzer (download now)
My Resume

My Planet

Speaking Gigs

Please see My Schedule sidebar on my blog for up-to-date speaking engagements and events.