Note: I'm actively working with this user to improve this question. I really feel like there's an on-topic quality question hidden in here. What are we still missing? Or am I way off base and this question isn't appropriate?


Final update, I swear (no chameleon questions from me): I feel like we've got this question in a good place, but I'm still waiting before I get confirmation from the community.


So, a user who is apparently question banned on Software Recs instead asked his question on Stack Overflow (naughty, naughty *finger waggle*). He asked me to ask his question for him here (CW, obviously). I have no problem asking the question for him... IFF the question is a good fit for the community. I haven't been that active here so I wanted to check with you guys and gals first. Here's the question in its entirety:

I'm looking for any software which can:

  • analyze .NET source code (c# or vb.net)
  • build some repository which can be queried (NDepend and Resharper do something similar)
  • allow to query this repository looking for classes, methods, calling methods, and so on (like Resharper or NDpend)
  • accessing to the method's name, local variables name, type, static value and also method text

I would like to use it for creating the documentation about the stored procedure called by this software.

NDepend is a really wonderful tool that analyzes the IL / source code and allows you to write queries like the following one, but doesn't provide access to the constant value of the string (I need them to identify the stored procedure name / parameters).

from m in Types.WithFullNameNotIn( "Core.DbObject").ChildMethods() 
let depth0 = m.DepthOfIsUsing("Core.DbObject")
where depth0  >= 0 
&& !m.Name.Contains(".ctor")
orderby depth0
select new { m, depth0 }

What is my final purpose?

I've got a big source code in Vb.net. I would like to track every call to the stored procedure saving:

The call to the stored procedure behave as it follows:

RunProcedure("dbo.Log", parameters, "Log_LoadFromID")

I need to extract:

  • the name of the Vb.NET Method --> easy using IL and metadata information
  • the name of the Stored Procedure --> easy using textual analisys of code
  • the list of the parameters passed to the store --> easy using textual analisys of code

I've tried to look for it but I couldn't find anything similar to this.

Extra details:

I think it's really hard to find a similar software. So I've no problem if it's a plugin for Visual Studio as well as a standalone tool or a .NET framework. Also it doesn't matter were this info will be exported. It's only important that I can use this info. I need to generate a report. For sure, I guess, it will be a Windows Software or a .NET Framework, but if you find an Android App doing this it will be ok as well :-)

  • 1
    Did you read this and this. As it's right now it could be closed on sight. – Braiam Mar 6 '14 at 13:52
  • 1
    That's pretty much what I figured. I wasn't about to copy-paste a question from a banned user without double checking. – MikeTheLiar Mar 6 '14 at 13:53

Ask this question here if it interests you. Don't feel obliged to post on behalf of someone else. Especially someone who's been suspended — that should be a red flag.

I invite you to read our question quality guidelines, if you care. If you don't care, just stop wasting your time.

  • I'm not invested in this because of this (or any) user. I'm invested in this because I feel like this is potentially a question that could add value to the Stack Exchange network. If it results in a quality question with answers, then that's enough for me. From what I've read, this question seems to fit the requirements. – MikeTheLiar Mar 6 '14 at 16:23
  • 1
    FWIW, I just helped the user clarify their question, and they were very willing to work on its quality. And if a problematic user learns something about what SE is and how it works, then all the better. I fail to see how this is not a net gain for the network as a whole. – MikeTheLiar Mar 6 '14 at 16:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .