<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Wanted: a code discovery tool</title><link>http://weblogs.asp.net/astopford/archive/2008/07/24/wanted-a-code-discovery-tool.aspx</link><description>Picture this, large scale enterprise app, small scale legacy application, third party code...in other words a code base you are not fully familar with and need to understand. Sure enough can apply the feathers rules but if your in a hurrry to understand</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>re: Wanted: a code discovery tool</title><link>http://weblogs.asp.net/astopford/archive/2008/07/24/wanted-a-code-discovery-tool.aspx#6480766</link><pubDate>Mon, 04 Aug 2008 11:13:20 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6480766</guid><dc:creator>Patrick</dc:creator><author>Patrick</author><description>&lt;p&gt;I have to work in this fashion (often with other people's legacy app's) all the time. I tend to find I can do everything I need to do with Resharper and a whiteboard. &lt;/p&gt;
&lt;p&gt;I find that the navigation features of this tool the best thing at letting be traverse lots of code very quickly. I use the whiteboad (piece of paper, or set of index cards if I have to) to model out the interactions and dependencies. &lt;/p&gt;
&lt;p&gt;The parts of resharper I tend to use:&lt;/p&gt;
&lt;p&gt;- FindUsages (let's me find what parts of code depends on this method/variable, etc)&lt;/p&gt;
&lt;p&gt;- HighlightUsages in file (gives me an indication about how a member variable might be a key/peripheral concept)&lt;/p&gt;
&lt;p&gt;- GoToInheritor (gives me an indication of how many sub-classes/etc I need to understand if I change the superclass)&lt;/p&gt;
&lt;p&gt;- GoToBase (so I understand if I make a change in a subclass, what else do I need to understand) or alternatively &amp;nbsp;(or alternatively ViewTypeHierarchy)&lt;/p&gt;
&lt;p&gt;- GoToSymbol or GoToTypeDeclaration using pattern matching and camel case lets me find duplicates or similarly named methods &lt;/p&gt;
&lt;p&gt;Good luck!&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6480766" width="1" height="1"&gt;</description></item><item><title>re: Wanted: a code discovery tool</title><link>http://weblogs.asp.net/astopford/archive/2008/07/24/wanted-a-code-discovery-tool.aspx#6440346</link><pubDate>Thu, 24 Jul 2008 20:55:55 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6440346</guid><dc:creator>Granville Barnett</dc:creator><author>Granville Barnett</author><description>&lt;p&gt;Profiler + NDepend should help you out.&lt;/p&gt;
&lt;p&gt;Good thing about NDepend is that you can drill down and ask more atomic questions.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6440346" width="1" height="1"&gt;</description></item><item><title>re: Wanted: a code discovery tool</title><link>http://weblogs.asp.net/astopford/archive/2008/07/24/wanted-a-code-discovery-tool.aspx#6439607</link><pubDate>Thu, 24 Jul 2008 16:23:58 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6439607</guid><dc:creator>Pálesz</dc:creator><author>Pálesz</author><description>&lt;p&gt;NDepend is quite useful.&lt;/p&gt;
&lt;p&gt;By the way, we are working on a tool like you imagined. Quite interactive, massive visualizing, ability to load .NET and Java assemblies/jar files, but at the moment we are only at the beginning of the implementation, so please wait. :)&lt;/p&gt;
&lt;p&gt;Once we have finished, i will tell you more about the software, i promise.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6439607" width="1" height="1"&gt;</description></item><item><title>re: Wanted: a code discovery tool</title><link>http://weblogs.asp.net/astopford/archive/2008/07/24/wanted-a-code-discovery-tool.aspx#6439515</link><pubDate>Thu, 24 Jul 2008 15:43:48 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6439515</guid><dc:creator>Fabrice Marguerie</dc:creator><author>Fabrice Marguerie</author><description>&lt;p&gt;In reply to a similar request I received last year, here is a collection of tools I suggested: &lt;a rel="nofollow" target="_new" href="http://weblogs.asp.net/fmarguerie/archive/2007/09/04/net-reverse-engineering-tool-for-understanding-projects.aspx"&gt;weblogs.asp.net/.../net-reverse-engineering-tool-for-understanding-projects.aspx&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6439515" width="1" height="1"&gt;</description></item><item><title>re: Wanted: a code discovery tool</title><link>http://weblogs.asp.net/astopford/archive/2008/07/24/wanted-a-code-discovery-tool.aspx#6439410</link><pubDate>Thu, 24 Jul 2008 15:11:23 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6439410</guid><dc:creator>tobsen</dc:creator><author>tobsen</author><description>&lt;p&gt;Get your hands on a CASE tool (e.g. enterprise architect) which is able to reverseengineer the code you have the sources for. Sometimes UML is the best way to tell you what/where/why.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6439410" width="1" height="1"&gt;</description></item><item><title>re: Wanted: a code discovery tool</title><link>http://weblogs.asp.net/astopford/archive/2008/07/24/wanted-a-code-discovery-tool.aspx#6439239</link><pubDate>Thu, 24 Jul 2008 14:12:41 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6439239</guid><dc:creator>Mads Laumann</dc:creator><author>Mads Laumann</author><description>&lt;p&gt;I created this tool sometime ago. Guess it doesn't solve all your problems, but it should be able to give you a good idea of dependencies between asseblies and projects.&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://www.codeplex.com/DependencyFinder"&gt;www.codeplex.com/DependencyFinder&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6439239" width="1" height="1"&gt;</description></item><item><title>re: Wanted: a code discovery tool</title><link>http://weblogs.asp.net/astopford/archive/2008/07/24/wanted-a-code-discovery-tool.aspx#6438711</link><pubDate>Thu, 24 Jul 2008 11:28:01 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6438711</guid><dc:creator>FransBouma</dc:creator><author>FransBouma</author><description>&lt;p&gt;- use a profiler to check which code is run often when you perform actions in the application&lt;/p&gt;
&lt;p&gt;- use a code coverage tool to check which code is executed when you perform a given action X&lt;/p&gt;
&lt;p&gt;- use code metrics to see which routine is referenced a lot etc.&lt;/p&gt;
&lt;p&gt;- and AFTER you gathered those info, you can place debugger breakpoints and can step through code which needs further investigation.&lt;/p&gt;
&lt;p&gt;But profiler and code coverage tool are a good start. &lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6438711" width="1" height="1"&gt;</description></item><item><title>re: Wanted: a code discovery tool</title><link>http://weblogs.asp.net/astopford/archive/2008/07/24/wanted-a-code-discovery-tool.aspx#6438541</link><pubDate>Thu, 24 Jul 2008 10:34:01 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6438541</guid><dc:creator>Ben Hall</dc:creator><author>Ben Hall</author><description>&lt;p&gt;NDepend ? I found it quite useful last time I had to do something like this.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6438541" width="1" height="1"&gt;</description></item></channel></rss>