{"id":5493,"date":"2012-03-05T11:23:00","date_gmt":"2012-03-05T11:23:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/visualstudioalm\/2012\/03\/05\/visualize-code-with-visual-studio-11-beta\/"},"modified":"2022-07-26T06:20:07","modified_gmt":"2022-07-26T14:20:07","slug":"visualize-code-with-visual-studio-11-beta","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/devops\/visualize-code-with-visual-studio-11-beta\/","title":{"rendered":"Visualize Code with Visual Studio 11 Beta"},"content":{"rendered":"<p><a href=\"https:\/\/devblogs.microsoft.com\/00\/00\/00\/45\/92\/4011.ExpandingAssembly.jpg\"><\/a>Remember the last time you\u00a0worked\u00a0with unfamiliar code? It can seem like it takes\u00a0forever\u00a0to\u00a0understand how\u00a0to change it\u00a0and even longer to see the\u00a0potential impact.\u00a0What if you\u00a0had a picture\u00a0that shows\u00a0how the code is organized and gives you more information about how changes\u00a0might affect it?<\/p>\n<p>Good news!\u00a0In Visual Studio 11\u00a0Beta, you can\u00a0visualize\u00a0your code\u00a0and\u00a0understand its relationships.\u00a0You can\u00a0create,\u00a0read, and edit dependency graphs faster and easier. Here&#8217;s an example:<\/p>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/4544.ExpandedAssemblyRearranged.jpg\" \/><\/p>\n<p><strong>Note<\/strong>: You can\u00a0create graphs with Visual Studio 11 Ultimate. You can\u00a0read and edit graphs with Visual Studio 11 Premium\u00a0and Professional. To download the Visual Studio 11 Beta ALM virtual machine, which includes the Ultimate version,\u00a0and hands-on-labs, see Brian Keller&#8217;s post <a href=\"http:\/\/blogs.msdn.com\/b\/briankel\/archive\/2011\/09\/16\/visual-studio-11-application-lifecycle-management-virtual-machine-and-hands-on-labs-demo-scripts.aspx\">here<\/a>.<\/p>\n<p>This blog post covers\u00a0the following scenarios and uses the .NET Pet Shop 4.0 sample application in its examples:<\/p>\n<ul>\n<li><a href=\"#Overview\">Getting\u00a0the Big Picture<\/a><\/li>\n<li><a href=\"#Focusing\">Focusing on\u00a0the Details<\/a><\/li>\n<li><a href=\"#Communicating\">Communicating the Changes<\/a><\/li>\n<\/ul>\n<p>To magnify the examples, just click them.<\/p>\n<p><span style=\"font-size: medium\"><strong><a name=\"Overview\"><\/a>Getting\u00a0the Big Picture<\/strong><\/span><\/p>\n<p>To get\u00a0an overview of\u00a0the\u00a0code,\u00a0follow these steps:<\/p>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/4428.ArchMenu.jpg\" \/><\/p>\n<p>The first time you\u00a0generate\u00a0a graph,\u00a0it might take\u00a0a little while.\u00a0Visual Studio builds the solution, analyzes the binaries produced\u00a0from each project,\u00a0and indexes\u00a0relevant details\u00a0to\u00a0generate\u00a0future graphs\u00a0faster.\u00a0If you don&#8217;t need a graph for the entire solution, you can\u00a0also speed up this\u00a0process by visualizing only those parts that you care about or narrowing the scope of your solution. To learn more,\u00a0see\u00a0<a href=\"#Focusing\">Focusing on\u00a0the Details<\/a>\u00a0and <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/dd409453(VS.110).aspx\" rel=\"nofollow\">How to: Visualize Code by Generating Dependency Graphs<\/a>.<\/p>\n<p>This example shows\u00a0the top-level assemblies in\u00a0the sample solution. Everything outside\u00a0the solution, like platform\u00a0dependencies,\u00a0is found in\u00a0<strong>Externals<\/strong>:<\/p>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/5340.TopLevelAssemblyGraph.jpg\" \/><\/p>\n<p><strong>To save the graph<\/strong>:<\/p>\n<ol>\n<li>Open the shortcut menu for\u00a0the graph surface, choose <strong>Move &lt;<em>graphname.dgml<\/em>> into<\/strong>, and then choose <strong>Solution Items<\/strong>.\u00a0<\/li>\n<li>When the <strong>Save File As<\/strong> box appears, name the graph document, and save it.<\/li>\n<\/ol>\n<p>Visual Studio saves the graph\u00a0to\u00a0the <strong>Solution Items<\/strong> folder.<\/p>\n<p><span style=\"font-size: small\"><strong>Browsing Dependency Graphs<\/strong><\/span><\/p>\n<p>The resulting graph can seem large and overwhelming. You\u00a0have several ways to\u00a0explore the graph:<\/p>\n<ul>\n<li>To zoom in and out,\u00a0rotate the mouse wheel, or drag the\u00a0slider in the upper left corner of\u00a0the graph.\u00a0<\/li>\n<li>To pan\u00a0the graph, drag the graph surface in any direction.<\/li>\n<li>To fit\u00a0the entire\u00a0graph into the window,\u00a0double-click the graph surface, or click the zoom-to-fit button under the zoom\u00a0slider.<\/li>\n<\/ul>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/2514.ZoomSlider.jpg\" \/><\/p>\n<p>For\u00a0other ways to\u00a0explore graphs, see <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ee847415(VS.110).aspx\" rel=\"nofollow\">How to: Browse and Rearrange Dependency Graphs<\/a>. To see more mouse and keyboard gestures,\u00a0create a blank graph, and then choose\u00a0the Help links on the graph:<\/p>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/0755.MouseGestures.jpg\" \/><\/p>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/2364.KeyboardGestures.jpg\" \/><\/p>\n<p><span style=\"font-size: small\"><strong>Examining Items and\u00a0Relationships<\/strong><\/span><\/p>\n<p>A rectangle, or <em>node<\/em>, represents an item on the graph. An\u00a0icon\u00a0identifies the item&#8217;s type.\u00a0To see what the\u00a0icons\u00a0mean, use the\u00a0<strong>Legend<\/strong>:<\/p>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/8357.Legend.jpg\" \/><\/p>\n<p>Some items contain other items, for example, assemblies contain namespaces, which contain types, and so on. To expand these containers, or <em>groups<\/em>, move\u00a0the mouse pointer over the left part of\u00a0a\u00a0node. If\u00a0a\u00a0<img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/2642.ExpandNodeButton.jpg\" width=\"22\" height=\"22\" \/><strong>\u00a0<\/strong>appears, choose it.<\/p>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/4011.ExpandingAssembly.jpg\" \/><\/p>\n<p><strong>To expand and collapse groups, use these\u00a0keyboard shortcuts<\/strong>:<\/p>\n<ul>\n<li>To expand a selected group, use the plus key (<strong>+<\/strong>).<\/li>\n<li>To expand successive levels of groups, use the asterisk key (*****).<\/li>\n<li>To collapse a selected group, use the\u00a0minus key\u00a0(-).<a href=\"https:\/\/devblogs.microsoft.com\/00\/00\/00\/45\/92\/8154.ExpandedAssembly.jpg\"><\/a><\/li>\n<\/ul>\n<p>If an expanded\u00a0group seems too big,\u00a0you can drag\u00a0its contents\u00a0to rearrange them. The\u00a0layout of\u00a0the surrounding\u00a0nodes and links\u00a0adjust automatically:<\/p>\n<p>**Layout Before Rearranging **<\/p>\n<p><strong><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/1033.ExpandedAssembly.jpg\" \/><\/strong><\/p>\n<p><strong>Layout After Rearranging<\/strong><\/p>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/8206.ExpandedAssemblyRearranged.jpg\" \/><\/p>\n<p>Arrows, or <em>links<\/em>, between nodes\u00a0represent relationships. If there are multiple relationships between two nodes, a single <em>aggregate<\/em> <em>link<\/em> combines all those relationships into one link.<\/p>\n<p><strong>To learn more about\u00a0a relationship\u00a0between two nodes<\/strong>:<\/p>\n<ol>\n<li>Select nodes that you want to focus on.<\/li>\n<li>Open the shortcut menu for the selection, choose <strong>Select<\/strong>, and <strong>Hide Unselected<\/strong> to hide everything else.\u00a0The graph is just a one-way view of the code, so\u00a0you can edit the graph\u00a0without\u00a0changing the code.<\/li>\n<li>Move\u00a0the mouse pointer on top of a link.\u00a0This shows\u00a0a\u00a0tooltip\u00a0with details about the link and also arrows\u00a0that let you move between\u00a0the source and target nodes. Use these arrows when the graph has too many items and\u00a0you want to see which nodes are connected.<\/li>\n<\/ol>\n<p>The following example shows two assemblies. The\u00a0tooltip tells you that the aggregate link represents multiple\u00a0relationships: <strong>Calls<\/strong>, <strong>References<\/strong>, and <strong>Return<\/strong>.\u00a0The denser the link, the more relationships it represents:<\/p>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/8420.LinkTooltip.jpg\" \/><\/p>\n<p>\u00a0To see all the links\u00a0between the items in\u00a0these assemblies,\u00a0make sure the graph shows all cross-group links:<\/p>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/8030.ShowAllCrossGroupLinks.jpg\" \/><\/p>\n<p>Expand the assemblies and namespaces to see\u00a0the links between their contents:<\/p>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/0827.ExpandedLinks.jpg\" \/><\/p>\n<p><strong><span style=\"font-size: medium\"><a name=\"Focusing\"><\/a>Focusing on the Details<\/span><\/strong><\/p>\n<p>Now, suppose you only care about a specific area of code because you have to\u00a0fix a bug or\u00a0update some functionality. You\u00a0want to know how that change\u00a0affects other parts of the code.\u00a0For example, maybe you want to\u00a0update the\u00a0<strong>CreditCardInfo<\/strong> constructor to accept an authorization code.\u00a0There are several\u00a0ways to\u00a0find that code:<\/p>\n<ul>\n<li>If the <strong>CreditCardInfo<\/strong>\u00a0method\u00a0is on the graph, use the\u00a0graph search tool to find it.\u00a0Then, follow\u00a0the links to find items that depend on that method.<\/li>\n<li>If the <strong>CreditCardInfo<\/strong> method isn&#8217;t on the graph, use\u00a0Solution Explorer\u00a0to find\u00a0the <strong>CreditCardInfo<\/strong>\u00a0method and\u00a0items that depend on that method. Select those items in Solution Explorer, and then drag them to an existing graph or create a new graph.<\/li>\n<\/ul>\n<p><span style=\"font-size: small\"><strong>Finding Items on Graphs<\/strong><\/span><\/p>\n<p><strong>To find any items on the graph, use CTRL+F to open\u00a0search<\/strong>:<\/p>\n<ol>\n<li>Type the item&#8217;s name, and then press <strong>ENTER<\/strong>. The\u00a0first matching item appears selected on the graph. <strong>Note<\/strong>: By default, search\u00a0includes items in collapsed groups. However, if an\u00a0item is in collapsed group that was never\u00a0expanded,\u00a0the item\u00a0might not be found. Make sure you have expanded all the groups at least once.<\/li>\n<li>To see the next match,\u00a0press <strong>F3<\/strong> or choose the** Find Next** arrow.\u00a0To see all matching items, open the drop-down list, and choose <strong>Select All<\/strong>.<\/li>\n<\/ol>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/6761.SearchBox.jpg\" width=\"566\" height=\"110\" \/><\/p>\n<p>The following matches appear selected on the graph:<\/p>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/8838.AllFound.jpg\" \/><\/p>\n<p>To see\u00a0the\u00a0<strong>CreditCardInfo<\/strong> method definition,\u00a0select it on the graph, and use <strong>F12<\/strong>\u00a0to open the code editor.\u00a0Now, suppose you want to\u00a0find\u00a0other code\u00a0that has dependencies on\u00a0this method.\u00a0To see\u00a0items that have dependencies on\u00a0a selected\u00a0item,\u00a0make sure that you can see the cross-group links\u00a0for\u00a0selected items.\u00a0On the graph toolbar, open the\u00a0<img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/5428.ShowAllCrossGroupLinksIcon.jpg\" \/>\u00a0list, and\u00a0choose\u00a0<strong>Show Cross-Group Links on Selected Nodes<\/strong>.<\/p>\n<p>When\u00a0you select the\u00a0<strong>CreditCardInfo<\/strong> method, a link appears\u00a0from\u00a0<strong>PetShopWeb.dll<\/strong>\u00a0and points at <strong>CreditCardinfo<\/strong>, showing that something in\u00a0<strong>PetShopWeb.dll<\/strong>\u00a0calls\u00a0<strong>CreditCardInfo<\/strong>:<\/p>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/1351.CloserIn.jpg\" \/><\/p>\n<p>To find\u00a0the methods in <strong>PetShopWeb.dll<\/strong> that call <strong>CreditCardInfo<\/strong>,\u00a0expand <strong>PetShopWeb.dll<\/strong> incrementally and\u00a0follow the links:<\/p>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/7585.CloserInMore.jpg\" \/><\/p>\n<p><span style=\"font-size: small\"><strong>Finding Items in the Solution<\/strong><\/span><\/p>\n<p>To\u00a0start from the solution,\u00a0search or browse for\u00a0the <strong>CreditCardInfo<\/strong> method in Solution Explorer. If you search, you\u00a0find\u00a0the following:<\/p>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/6786.SolutionExplorerSearchForCode.jpg\" \/><\/p>\n<p>When you\u00a0select the <strong>CreditCardInfo<\/strong> method, Visual Studio shows the method&#8217;s definition in the code editor:<\/p>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/1638.SolutionExplorerNavigateToCode.jpg\" \/><\/p>\n<p>Without leaving Solution Explorer, you can find what\u00a0calls\u00a0<strong>CreditCardInfo<\/strong> method, what\u00a0<strong>CreditCardInfo<\/strong> calls, or\u00a0what uses it. Open the shortcut menu for the\u00a0<strong>CreditCardInfo<\/strong> method, and choose <strong>Is Called By<\/strong>:<\/p>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/1157.SolutionExplorerSeeDependencies.jpg\" \/><\/p>\n<p>You see that two items\u00a0that\u00a0call <strong>CreditCardInfo<\/strong>.\u00a0Select each item,\u00a0and use <strong>F12<\/strong> to see\u00a0their definitions.\u00a0You can create a new dependency graph that shows only these items and their relationships\u00a0with <strong>CreditCardInfo<\/strong>:<\/p>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/7851.CreateNewGraphfromSolutionExplorer.jpg\" \/><\/p>\n<p>which produces the following graph:<\/p>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/3617.CreateNewGraphfromSolutionExplorer2.jpg\" \/><\/p>\n<p>To see the missing\u00a0children\u00a0in these groups,\u00a0choose\u00a0<strong>Refetch Children<\/strong> <img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/6862.RefreshIcon.jpg\" \/>on each group.\u00a0Visual Studio\u00a0shows them on the graph:<\/p>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/4812.RefetchedChildren.jpg\" \/><\/p>\n<p>To\u00a0add\u00a0more related items to the graph, open the shortcut menu for\u00a0a node, follow these steps:<\/p>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/0753.ShowMenu.jpg\" \/><\/p>\n<p><span style=\"font-size: medium\"><strong><a name=\"Communicating\"><\/a>Communicating\u00a0the Changes<\/strong><\/span><\/p>\n<p>Now, suppose\u00a0you\u00a0come across dependencies on the graph\u00a0that shouldn&#8217;t exist.\u00a0Suppose you want to propose changes to these dependencies and\u00a0use the graph to discuss your\u00a0suggestions with your team. You can edit the graph several ways:<\/p>\n<ul>\n<li>Add new undefined nodes,\u00a0linked nodes,\u00a0comments, or groups.\u00a0To do this,\u00a0choose the node where\u00a0you want to add these items.\u00a0When the floating menu appears,\u00a0choose\u00a0the corresponding\u00a0task.<a href=\"https:\/\/devblogs.microsoft.com\/00\/00\/00\/45\/92\/1614.FloatingMenu.jpg\"><\/a><\/li>\n<\/ul>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/1614.FloatingMenu.jpg\" \/><\/p>\n<ul>\n<li>Add\u00a0new types, members, and also their parent containers\u00a0to the graph.\u00a0To do this,\u00a0select the\u00a0types and\u00a0members in <strong>Solution Explorer<\/strong>,\u00a0and then drag the items to the graph.\u00a0To include the\u00a0parent containers,\u00a0press\u00a0and hold the <strong>CTRL<\/strong> key while\u00a0you drag the items. Or, you can\u00a0open the\u00a0<strong>Create a new graph document&#8230;<\/strong>\u00a0list on the <strong>Solution Explorer<\/strong> toolbar (make sure the dependency graph is\u00a0visible), and choose <strong>Add to Active Dependency Graph with Ancestors<\/strong>.<\/li>\n<\/ul>\n<p><img decoding=\"async\" border=\"0\" alt=\"\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/03\/5633.CreateNewGraphfromSolutionExplorer_WithAncestors.jpg\" \/><\/p>\n<p>\u00a0 \n*   Rename nodes by editing their labels.\n*   Delete nodes and links, or\u00a0retrieve hidden ones\u00a0on the graph.\n*   Hide nodes or show hidden nodes more easily.\n*   Organize nodes into groups.\n*   Change the styles and appearances of nodes and links.<\/p>\n<p>To learn more\u00a0about how to edit dependency graphs, see <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ee842619(VS.110).aspx\" rel=\"nofollow\">How to: Edit and Customize Dependency Graphs<\/a>.<\/p>\n<p>To let us know what you think:<\/p>\n<ul>\n<li>For questions or discussion: <a href=\"http:\/\/social.msdn.microsoft.com\/forums\/en-us\/vsarch\">Visual Studio Visualization &amp; Modeling Forum<\/a><\/li>\n<li>For feature suggestions:\u00a0<a href=\"http:\/\/visualstudio.uservoice.com\/forums\/121579-visual-studio\/category\/30929-visual-studio-ultimate\">Visual Studio\u00a0User Voice (Visual Studio Ultimate)<\/a><\/li>\n<li>For bugs:\u00a0<a href=\"http:\/\/connect.microsoft.com\/\">Microsoft Connect<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Remember the last time you\u00a0worked\u00a0with unfamiliar code? It can seem like it takes\u00a0forever\u00a0to\u00a0understand how\u00a0to change it\u00a0and even longer to see the\u00a0potential impact.\u00a0What if you\u00a0had a picture\u00a0that shows\u00a0how the code is organized and gives you more information about how changes\u00a0might affect it? Good news!\u00a0In Visual Studio 11\u00a0Beta, you can\u00a0visualize\u00a0your code\u00a0and\u00a0understand its relationships.\u00a0You can\u00a0create,\u00a0read, and edit dependency [&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-5493","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops"],"acf":[],"blog_post_summary":"<p>Remember the last time you\u00a0worked\u00a0with unfamiliar code? It can seem like it takes\u00a0forever\u00a0to\u00a0understand how\u00a0to change it\u00a0and even longer to see the\u00a0potential impact.\u00a0What if you\u00a0had a picture\u00a0that shows\u00a0how the code is organized and gives you more information about how changes\u00a0might affect it? Good news!\u00a0In Visual Studio 11\u00a0Beta, you can\u00a0visualize\u00a0your code\u00a0and\u00a0understand its relationships.\u00a0You can\u00a0create,\u00a0read, and edit dependency [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/5493","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=5493"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/5493\/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=5493"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/categories?post=5493"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/tags?post=5493"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}