Architecture Explorer Work Item Extension 2.6
See below for the updates in 2.6.
This tool was created to help people visualize the relationships between work items in Team Foundation Server. The tool allows you to drill down from requirements to tasks to changesets to files within changesets and even test results. From there you can drill up to see other requirements affected by changes to a given file.
Using this tool you can now answer some basic questions at a glance, find work items with no relationships to other work items and quickly determine the status of a given requirement.
I've downloaded the extension, what now?
The first thing to do is to navigate to C:\Users\<user>\AppData\Local\Microsoft\VisualStudio\11.0\Extensions\ and find the folder the extension was placed in. There is a file here called "TeamProject.dgml" (along with the Release Notes which are copied here). Copy this file to someplace convenient as it serves as the hook point for the extension. Read on to learn where to use this file.
Gettings started is very simple. Open the Architecture Explorer (Main Menu > Architecture > Windows > Architecture Explorer. In the Architecture Explorer select File System > Select File and browse to the TeamProject.dgml. Since the first panel of the Architecture Explorer is not extensible, this file serves as the entry point to the extension and allows the extension to hook the Explorer. Once the file is loaded, select the TeamProject.dgml node. It will pull up a list of registered TFS servers and go from there.
I will be putting up more information (including how I created the add-in and it's history) on the Northwest Cadence blog site (blog.nwcadence.com) in the near future.
Release 1.8 notes
This is a minor release to correct one bug and a performance issue.
- The bug being fixed deals with the Node Properties. It appears that when you have a space in the node properties name you cannot then set a style for the node (it errors out). I've removed the spaces and it works again.
- The performance issue was that when you loaded a node, it had to load all of the related nodes so you could correctly see the Outgoing and Incoming node navigation links. This works fine on a single work item or a small set. I finally got around to doing large data set testing and the performance was dismal. To this end I've had to temporarily go back and and remove this capability. For now you will have to select All Outbound Navigation or All Inbound Navigation - you won't see the specific type of links at first. After you select a single work item or a group of work items you'll see the links as appropriate. This has the biggest impact when selecting certain queries or iterations.
Release 2.6 notes
- This is a minor release that adds one new feature - Security. You can now select Security and go down the path of adding security groups and members to the diagram. The architecture explorer will allow you to visualize Groups, Groups within Groups and Users within Groups so all of the relationships between users and groups can be seen.
- This add-in will now work with Visual Studio 2013 (still in testing)
Eventually I would like to expand this funcitonality to include permissions that each group has and include Source Code and Work Item Area nodes but this is quite a bit more work that I haven't gotten to yet.
Release 2.5 notes
- This release introduces one new feature and fixes an existing feature.
- You now have the ability to trace down from Test Plans (Team Project > Test Plans > Test Plan > Test Suite > Test Case > Test Results). When putting the test results from a Test Case onto the diagram it will show only those results from the Test Case/Test Suite combination. However, if you navigate to a Test Case work item type through some other mechanism (Team Project > Work Items > Test Case > Test Results for example) adding the test results will show the test results for all runs the test case has been involved in.
- The bug that I discovered and fixed was that the test results nodes were not being created correctly in two ways. First the results link was not working. In doing further testing I discovered that it can't work the way it is currently set up because of how link templates are processed. I removed this feature for now. The second bug is that the ID that was being assigned to the test results node caused multiple test results to be compressed into a single node and only the last test result was being shown. This was fixed such that the results all now populate correctly and I did extensive testing on this to verify it. My apologies for this mistake.
- The next addition that I'm going to release (2.6) will include the ability to trace up from a test case or test result. So, for example, you could select a test case and see all of the suites and test plans in which that test case was a part of. Or, you could display all of the test results for a test case and then navigate up to the test suite and plan in which those results occurred. I should be able to get this done within the next month or so.
Release 2.0 notes
- Added a new capability to graph the work item state flow. Just select the State Models node once you get into the team project. Please note that because of the way the Architecture Explorer works, you need to select all of the states for a given work item for the entire model to present itself correctly. You also must include the Not Created "state" since in the Architecture Explorer you can't draw a link from nothing to something or vice versa.
- I discovered a small bug in how the links were being processed between work items. If there is more than one link between work items, only one of the links was being displayed. In updating the code to handle a multi-link scenario, I discovered that there is (what I think anyway) a bug with how the underlying progression system processes multi-links. I'm tracking this down right now but please note that this now a known issue.
Release 1.9 notes
This is a critical fix update. In my effort to provide better performance, I was not checking certain types of link relationships which was causing problems. This fix should be it but I have to do more testing on it still.
Release 1.7 notes
This is a minor update to enhance the query capability. All query types are now available instead of just the Flat query type. Icons are associated with all query types so you know what type of query it is.
The one thing to note is that when you run a hierarchical or directed links query, only the top level of work items will be returned - from there you can drill into the results as you would any other work item. So, if you had a tree query such that A is the parent of B which is the parent of C (A > B > C) when you ran the tree query you would only get "A" back. But selecting it and then selecting Child would bring up B, etc. Hopefully you like this implementation of the queries, if not, please provide feedback.
Critical Fix Release 1.6 notes
Sorry everyone, this is an emergency fix for a critical problem of my own making. As I noted in the Release 1.5 notes, the 1.5 change brings a few icons to help differentiate Query folders from folders. I was trying to figure out how to fix the issue noted below and ended up releasing a build that did not work on a clean machine.
In addition, I discovered one additional bug as it relates to the new query feature and how hierarchical and directed links queries were processed. I altered the code to, at this point, only return flat list queries. Now that I'm aware of the particular behavior that caused the problem I will rectify this in a future release.
Again, my apologies!
Release 1.5 notes
The updates are coming pretty quickly as it's the holiday break and I finally have time to do some work on the tool. This will be the last update for a little bit as work starts again on next week!
- By somewhat popular demand, I added the ability to drill into and view builds, the definitions, associated work items, changesets and test results. Please note that for the test results related to the build, I'm a bit concerned about this feature so use it cautiously and please provide me feedback. Typically a build run with test results means you are doing unit testing. Depending on the size of the project you can have hundreds to thousands of unit tests that run each build. Right now, the tool outputs individual nodes for each test so it can show granular passes and fails. I was unsure of whether to do this or to just summarize the run (doing this would be simpler but you couldn't style the node conditionally (or it would have been very hard to do). Please provide me feedback on which way you prefer.
- I also made one update to the Release 1.2 functionality. In Release 1.2 I added the ability to drill down into work items via a query. The problem here was you couldn't tell what was a query and what was a query folder. To differentiate the two, I added an icon for the query folders (conveniently a folder icon). The problem is that if you output the query folder node to the architecture graph it will show up as a missing icon. You can choose not to export it by building the graph one column at a time by clicking Ctrl+ the add nodes icon in the Architecture Explorer. I've sent a request to Microsoft asking for help on this. I'm not sure if it's a bug or I'm doing something wrong. When I find out, I'll fix it if possible.
Release 1.2 notes
- This is a minor update with a couple of notable differences
- I fixed an issue where the link names were not shown in the Inbound and Outbound navigation sections. All link types from and to the work item are now shown in the Inbound and Outbound naviation sections as appropriate.
- Added the ability to display hyperlinks on the graph with the ability to navigate to those hyperlinked artifacts. Storyboards have been added as a sub-category of the hyperlink and are denoted by a different node category.
- Added node properties for the State and Reason for each work item so you can now format those using the legend to give you a better visual representation of the area or iteration.
Release 1.1 notes
- This was a major re-factoring of the existing code to streamline as much as I could and model this more after Microsoft's build-in graph providers (where I could). There are still technical issues with the current Visual Studio RC, particlarly with Node Navigation and inputs and outputs but I'm working on this as I go.
- Added the ability to select work items from a team project by Areas, Iterations or Work Item Types (i.e. you can drill down into the Areas and Iterations now to just select work items in those areas)
- When adding work items to the progression window, the work items are now listed in the format of [Work Item ID]:[Work Item Title]. This gives you the ability to filter work items by their ID when you know the specific work item you are looking for in the list of returned items.
- Updated the TeamProject.dgml file - you no longer need a specially crafted file. All you need to do is open a valid dgml file called TeamProject. I have still included this file but if you notice, there is nothing in it beyond the declaratory tags.
- Fixed a bug with the work item, test plan and test result links such that if you had items from multiple projects on the graph, the links for projects added after the first project would incorrectly point to the first project and throw and page not found error (for work items, or just an error in MTM) when you tried to navigate to it
Release 1 notes
- The ability to navigate to from the collection to the project(s) to the work item types within the project to the work items to the changesets, test results and test plans.
- The work item nodes, test plan nodes, and test results nodes are all navigable
- Each node is tagged with a category and/or property that allows you to great a legend for the graph
- I have not tested this against extremely large datasets - please provide me feedback if you have it, but I have enabled the Cancel button to work :)
- There are some bugs in the Architecture Explorer in the 2012 Release Candidate. These bugs have been reported to Microsoft.
- One of these bugs, and the biggest pain is that after you add nodes to the graph for the first time, the entire AE is cleared. After the first time this does not happen. My suggestion until this is fixed is for you to add the first node and then perform more detailed work where you may have to drill into lower levels of your work item hierarchy.
- There is a potential for this to interfere with the Solution Explorer since the Solution Explorer hooks extensions in the same way. I have made every effort to ensure that this does not happen and in my tests I worked out all of the defects here. However, if you start getting strange behavior in the Solution Explorer, please send me whatever information you can about the errors and uninstall the extension (or disable it until you need it).
Future of this tool
I have a lot of ideas for the tool that I have not explored. Here are some of my ideas, I would like additional suggestions.
-Add the state values of work items as properties for coloring the nodes
-Ability to pick work items by Area and/or Iteration
- Auto-add the style properties so the legend is automatically generated
- Add the ability to pick work items by assigned to
- A property page to configure the various options