Architecture Tools: Improvements in ReSharper 8.1

In ReSharper 8, we brought out an entirely new feature called Architecture Tools (or, alternatively, Project Dependency Analysis). The goal of the Architecture Tools is simple: to let users visualize and manipulate the structure of their solution. In ReSharper 8.1, we’ve made a number of improvements that we’d like to show you.

User Interface Improvements

Following user feedback, we’ve slightly redesigned the UI to make it even easier to use. Changes include the following:

  • The action bar has been moved from the area just above the project selection list to the top right-hand side of the diagram, closer to where the graphical elements are.
  • We’ve improved the responsiveness of many UI elements. For example, the expand/collapse buttons have been made more snappy, and their tooltips are more responsive, too.
  • We now have a more convenient context menu for items related to a particular selection. We’ve also added three new items: Show Only Target and Source, Add Dependent Modules and Add Referenced Modules.
  • Last, but not least, is the rendering of the graph on changes. Re-layouting the diagram is now incremental, so that only the affected part of the diagram gets rearranged. The following recording illustrates just how smooth and fluid it’s become:
    ReSharper Architecture View Smoothness

Undo/Redo Support

To make it easy to view different sets of projects in the Architecture View, the tool now supports undo/redo: simply pressing the corresponding buttons on the toolbar (or using the Ctrl+Z and Ctrl+Y shortcuts) takes you back and forth between the configurations that you’ve set up for your diagram:

ReSharper Architecture View Undo/Redo Support

Possible Path

Sometimes, while selectively showing a part of your solution in a diagram, you might end up with a situation where two projects are linked indirectly via a 3rd project, and yet it is that in-between project that happens to be hidden. In ReSharper 8.1, we’ve introduced a new kind of arrow to indicate this indirect relationship:

ReSharper Architecture View Possible Path

In the illustration above, the green arrow indicates that ReTrack.Tests uses ReTrack.Engine indirectly via a third project. The dashed arrow itself also has a context menu item to display the in-between projects:

ReSharper Architecture View Show Path Context Menu

And one last thing…

Since the Architecture View can get quite involved in large solutions, additional optimizations have been performed so that the rendering of the Architecture View has become both faster and more memory-efficient, so there’s no reason not to check it out. You can see it in action right now — simply download the latest ReSharper 8.1 EAP build and give it a go!

image description