{"id":6683,"date":"2010-10-11T19:14:00","date_gmt":"2010-10-11T19:14:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/visualstudioalm\/2010\/10\/11\/visual-studio-2010-ultimate-helps-you-gain-more-control-over-code-dependencies\/"},"modified":"2019-02-14T17:52:05","modified_gmt":"2019-02-15T01:52:05","slug":"visual-studio-2010-ultimate-helps-you-gain-more-control-over-code-dependencies","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/devops\/visual-studio-2010-ultimate-helps-you-gain-more-control-over-code-dependencies\/","title":{"rendered":"Visual Studio 2010 Ultimate helps you gain more control over code dependencies"},"content":{"rendered":"<p>There&#8217;s&nbsp;two ways that you can approach this in&nbsp;<a href=\"http:\/\/msdn.microsoft.com\/en-us\/vstudio\/bb984878.aspx\"><span style=\"color: #0066dd\">Visual Studio 2010 Ultimate<\/span><\/a>:<\/p>\n<p>&#8211; At the&nbsp;physical level<\/p>\n<p>You can visualize your code from the top-down by generating&nbsp;dependency graphs at the overall assembly, namespace, or class level,&nbsp;and&nbsp;then drill down to&nbsp;more granular levels.&nbsp;<\/p>\n<p>If you have a very large solution, this can be overwhelming, so you can also&nbsp;use Architecture Explorer to start&nbsp;from the bottom-up. You can&nbsp;use&nbsp;dependency graphs or Architecture Explorer to create layer diagrams&nbsp;and maintain control over the code&#8217;s architecture by running layer validation (see below).<\/p>\n<p>&#8211; At the logical level<\/p>\n<p>You can create&nbsp;layer diagrams from code and other artificts to visualize what the&nbsp;architecture should look like&nbsp;and&nbsp;then reverse-engineer the existing dependencies.&nbsp;You can save that diagram as a baseline and then&nbsp;edit the diagram to show&nbsp;where the dependencies&nbsp;should&nbsp;be. <\/p>\n<p>You can also run validation&nbsp;against layer diagrams to get a list of conflicts and create linked work items so that you can&nbsp;address those conflicts&nbsp;incrementally.&nbsp;By running regular validation reguarly, you can maintain control over&nbsp;changes in the code that might conflict with the&nbsp;intended architecture.<\/p>\n<p>For more information about how to perform these tasks, see&nbsp;<a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/dd409365.aspx\">these Visual Studio 2010 topics<\/a>. If you also install the <a href=\"http:\/\/msdn.microsoft.com\/en-us\/vstudio\/ff655021.aspx\">Visualization &amp; Modeling Feature Pack<\/a>, which is available for MSDN subscribers, with Visual Studio 2010 Ultimate,&nbsp;<a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/dd460723.aspx#LayerDiagrams\">you can&nbsp;create custom layer validation rules and perform the same tasks for C and C++ code<\/a>.<\/p>\n<p><strong>PS:<\/strong> Please let me know how you like this post by clicking a star under <strong>RATE THIS<\/strong>&nbsp;in&nbsp;the top right corner or post comment below.&nbsp;If you don&#8217;t like this post, please tell me what you want to see. Don&#8217;t worry, you won&#8217;t hurt my feelings. \ud83d\ude42 <\/p>\n<p>I&nbsp;initially created this post to answer a question on&nbsp;the <a href=\"http:\/\/social.msdn.microsoft.com\/Forums\/en-US\/modelingandtools\/thread\/ffd33448-ff27-44e9-954b-04038aecc3ac\">MSDN Modeling and Tools forum<\/a> and thought other folks&nbsp;might find&nbsp;this useful too. Thanks!<\/p>\n<p>&nbsp;<\/p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>There&#8217;s&nbsp;two ways that you can approach this in&nbsp;Visual Studio 2010 Ultimate: &#8211; At the&nbsp;physical level You can visualize your code from the top-down by generating&nbsp;dependency graphs at the overall assembly, namespace, or class level,&nbsp;and&nbsp;then drill down to&nbsp;more granular levels.&nbsp; If you have a very large solution, this can be overwhelming, so you can also&nbsp;use Architecture [&hellip;]<\/p>\n","protected":false},"author":116,"featured_media":45953,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6683","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops"],"acf":[],"blog_post_summary":"<p>There&#8217;s&nbsp;two ways that you can approach this in&nbsp;Visual Studio 2010 Ultimate: &#8211; At the&nbsp;physical level You can visualize your code from the top-down by generating&nbsp;dependency graphs at the overall assembly, namespace, or class level,&nbsp;and&nbsp;then drill down to&nbsp;more granular levels.&nbsp; If you have a very large solution, this can be overwhelming, so you can also&nbsp;use Architecture [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/6683","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/users\/116"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/comments?post=6683"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/6683\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media\/45953"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media?parent=6683"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/categories?post=6683"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/tags?post=6683"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}