We need to do reverse engineering of C# code which has SQL server backend. We are calling SPs in Business layers. We need to generate some kind of Diagrams which estabilshes the relationship between Business Layers and Database till the table lavel. We can do this manuaaly but since we have 100+ classes it is becoming an uphill task. Can someone suggest some tools for this task ??
Thanks in advance.
Best Regards, Vishnu
- Edited by Esther FanMicrosoft employee, Owner Tuesday, October 12, 2010 1:52 AM Clarified title
If you have Visual Studio 2010 Ultimate, here's two ways that you can approach this:
- At the physical level
You can visualize your code from the top-down by generating dependency graphs at the overall assembly, namespace, or class level, and then drill down to more granular levels. If you have a very large solution, this can be overwhelming, so you can also use Architecture Explorer to start from the bottom-up.
You can use either dependency graphs or Architecture Explorer to create layer diagrams and maintain control over the code's architecture by running layer validation (see below).
- At the logical level
You can create layer diagrams from code and other artificts to visualize what the architecture should look like and then reverse-engineer the existing dependencies. You can save that diagram as a baseline and then edit the diagram to show where the dependencies should be.
You can also run validation against layer diagrams to get a list of conflicts and create linked work items so that you can address those conflicts incrementally. By running regular validation reguarly, you can maintain control over changes in the code that might conflict with the intended architecture.
For more information about how to perform these tasks, see these Visual Studio 2010 topics. If you also install the Visualization & Modeling Feature Pack, which is available for MSDN subscribers, with Visual Studio 2010 Ultimate, you can create custom layer validation rules and perform the same tasks for C and C++ code.
Esther Fan | Visual Studio, Content Lead | If a post answers your question, please click "Mark As Answer" on that post and mark as Helpful. Thanks!