What is .NET Explorer?

A .NET development productivity tool to gain insights compiled assemblies, 3rd party or your own!

Let's say you have just downloaded a new NuGet package, and for right now it is basically a black box.

NuGet package as black box
Team development is like a fog-of-war in an RTS game

Or, you are in a team and you have a good handle on your own code, but your team's code is less familiar, sort of in a fog of war.

How do you use the assembly effectively without resorting to viewing source code?

Use .NET Explorer: a series of visualization tools that let you see how all the types in an assembly relate and interact. Get the big picture quickly.

Then, zoom in and look at a single type and focus on its relationships. Rapidly discover how to use the contained types.

See the forest AND the trees.

See the forest and the trees.
Step 1: High-level assembly visualizations
Visualize the layout of namespaces

Start by seeing how types are arranged into namespaces.

The following visualizations are for the AutoMapper NuGet package.

Next view the contained types' data and computational complexity.

This 4D chart shows trivial types (lower left) versus complex types (upper right), and the namespace they are in. The bubble size is proportionate to the number of IL instructions in a type.

Visualize data and computational complexity
Step 2: High-level assembly network visualizations
Visualization of assembly derivation hierarchy and interface implementation

Network visualizations show the assembly types laid out as a graph, with types as nodes and a relationship as an edge.

This first network/graph is the type hierarchy showing derivation and interface implementation.

System.Object is the large blue node, and is always surrounded by a cloud of derived types.

A composition network how types are composed of other types (ignoring scalars).

All network views are interactive with zooming, panning, filtering, searching and selecting.

Visualization of type composition
Visualization of how types call each other

The most complex graph is the call network. It shows which types invoke methods on other types.

Note this is not a call graph showing method call to method call. Such a graph would be HUGE!

The final graph is a creation network showing which types create instances of other non-scaler types.

A reminder, you have been looking at AutoMapper.

Visualization of how types create other types
Step 3: Zoom in on a single type
Finding a type to examine more closely in an assembly

The structure tree shows the assemblies we are interested in, and their contained types (arranged in many creative ways).

Clicking on a type brings up type visualizations, shown below.

The first type view is a summary that lists all the members of a type.

This view is interactive with hyperlinks to other types, collapsible regions, custom sorting, and is very configurable. Currently C# and VB.NET are supported.

Seeing the members of a type
Visualize how a type relates to other types in the same assembly

A type relationship view shows how the type relates to other types in the same assembly.

It is like a merging of the 4 network diagrams, but focused on a single type.

Semantic search

The semantic search engine lets you find interesting types in your favorite assemblies. A simple, formal grammar looks for patterns in context (not just simple string pattern matching).

This example asks for the types that implement the interface IEnumerable<T>.

There is a full search language with examples and help.

A separate powerful search end for finding interesting types
That's the high-level fly-by.

Thank you for visiting!

Want to learn more?

Visit the Downloads page and choose your OS and processor architecture.

You can play with the software in trial mode examining the AngleSharp NuGet package.

Also see my Getting started page. I also have some YouTube videos coming very soon.