<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/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>Search results matching tag 'tsbt-arch'</title><link>http://blogs.msdn.com/search/SearchResults.aspx?tag=tsbt-arch&amp;o=datedescending</link><description>Search results matching tag 'tsbt-arch'</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>PDC 2009</title><link>http://blogs.msdn.com/camerons/archive/2009/11/05/pdc-2009.aspx</link><pubDate>Thu, 05 Nov 2009 08:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9918220</guid><dc:creator>camerons</dc:creator><description>&lt;p&gt;Realized I haven’t mentioned that I am planning on giving a talk at this year’s PDC. Here’s that abstract:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://microsoftpdc.com/Sessions/FT08"&gt;Visualization, UML, and DSLs&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://microsoftpdc.com/Speakers/Cameron-Skinner"&gt;Cameron Skinner&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Microsoft Visual Studio Team System 2010 Architecture Edition introduces a whole host of new designers and modeling tools to help enterprises and teams build software. UML Diagrams and the Layer Diagram can be used to plan and design the assets your team will produce, and communicate effectively about those designs during the entire development lifecycle. The Architecture Explorer and Graphs help you investigate and better understand the assets you have to enable more effective planning and decision making. Come learn how you can use all of these tools when investigating your current assets, and planning and designing your future work.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I hope to see you all there!&lt;/p&gt;  &lt;p&gt;One other thing that I also want to mention is that Jens Jacobsen, a Program Manager on my team, has just started blogging. His first-time post is &lt;a href="http://blogs.msdn.com/jens_jacobsen/archive/2009/11/05/welcome-and-some-thoughts-about-architecture-tool-usability.aspx" target="_blank"&gt;right here&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;I’m looking forward to watching what Jens comes up with, as he is planning on focusing in on how to improve overall User Experience of the tooling we are producing, now and into the future. He is uniquely qualified to lead the charge on this as he has deep experience in user experience research. &lt;/p&gt;  &lt;p&gt;So check out his blog and give Jens some feedback / participate in future discussions he begins.&lt;/p&gt;  &lt;p&gt;Thanks!&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;</description></item><item><title>Providing Feedback</title><link>http://blogs.msdn.com/camerons/archive/2009/10/26/providing-feedback.aspx</link><pubDate>Mon, 26 Oct 2009 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9913161</guid><dc:creator>camerons</dc:creator><description>&lt;p&gt;By now, you’ve pulled down the Beta2 bits and have started exploring. ( No you say? Please check &lt;a href="http://blogs.msdn.com/camerons/archive/2009/10/19/visual-studio-2010-and-net-framework-4-beta-2.aspx"&gt;this post&lt;/a&gt; for details on how to get the bits…. )&lt;/p&gt;  &lt;p&gt;You may have questions, want to express concerns, find bugs and want to report them, or in general just look for more venues where topics specific to the Architecture and Modeling tools in Visual Studio 2010 can be found.&lt;/p&gt;  &lt;p&gt;The MSDN forums are the place to start, and in particular, the following two forums have been created for the Beta2 bits:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/en-US/vsarch"&gt;Visual Studio Architectural Discovery &amp;amp; Modeling Tools&lt;/a&gt;      &lt;br /&gt;”Discuss the code visualization and modeling tools in Visual Studio 2010, such as Architecture Explorer, dependency graphs, UML diagrams, and layer diagrams”&lt;/p&gt;    &lt;p&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/en-US/dslvsarchx"&gt;Visual Studio 2010 Domain-Specific Languages (DSL) &amp;amp; Modeling Tools Extensibility&lt;/a&gt;      &lt;br /&gt;”Discuss the Microsoft Domain-Specific Language (DSL) Tools and extending the architecture and modeling tools for Visual Studio 2010”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;As the product roles into RTM, these forums will be the place to directly interact with MVP, fellow users, and of course the folks from Microsoft that actually built the product!&lt;/p&gt;  &lt;p&gt;See you there! :)&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;</description></item><item><title>Custom Toolbox Items</title><link>http://blogs.msdn.com/camerons/archive/2009/10/22/custom-toolbox-items.aspx</link><pubDate>Thu, 22 Oct 2009 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9911739</guid><dc:creator>camerons</dc:creator><description>&lt;p&gt;[NOTE: This post is part of a blog series, the start of which is &lt;a href="http://blogs.msdn.com/camerons/archive/2009/10/19/modeling-and-visualization-in-visual-studio-2010-ultimate.aspx"&gt;here&lt;/a&gt;.]&lt;/p&gt;  &lt;p&gt;When defining layer diagrams for your organization, or various other modeling concepts and diagrams that you want to make available to your team, you can of course simply check in those diagrams to your version control system, such as Team Foundation Server. But another mechanism we have enabled in the product that can easily be overlooked is the ability to create custom toolbox items from existing diagrams ( UML or Layer ), and then make those available through the VSIX mechanism also new in Visual Studio 2010.&lt;/p&gt;  &lt;p&gt;In this post, I’m going to walk you through the steps needed to create a couple different custom toolbox items. ( I’ll talk about the new VSIX capabilities in another post. )&lt;/p&gt;  &lt;p&gt;Let’s create a Layer Diagram ( I discuss the basics of what the Layer Diagram is about &lt;a href="http://blogs.msdn.com/camerons/archive/2009/10/20/layer-diagram-in-visual-studio-2010-ultimate-beta-2.aspx" target="_blank"&gt;here&lt;/a&gt; ) that can be used as the pattern for a new toolbox item that will appear whenever a Layer Diagram is present in the VS document well.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1)&lt;/strong&gt; Select the “Architecture-&amp;gt;New Diagram…” menu item.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://cwskinner.members.winisp.net/CustomToolboxItems_A3E6/image.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/CustomToolboxItems_A3E6/image_thumb.png" width="260" height="78" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2)&lt;/strong&gt; Select the “Layer Diagram” in the Add New Diagram dialog, and give the diagram the “PresentationLayer” name:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/CustomToolboxItems_A3E6/image_3.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/CustomToolboxItems_A3E6/image_thumb_3.png" width="244" height="216" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3)&lt;/strong&gt; If you are following along exactly, this will prompt you for the name of a new modeling project. Let’s give the project the name of “CustomToolBoxItems”:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/CustomToolboxItems_A3E6/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/CustomToolboxItems_A3E6/image_thumb_4.png" width="244" height="170" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Cool. Now the new layer diagram and modeling project show up inside Visual Studio. &lt;/p&gt;  &lt;p&gt;What we’re going to do now is replicate a layer diagram that is found in the second edition of the &lt;a href="http://msdn.microsoft.com/en-us/library/dd673617.aspx" target="_blank"&gt;Patterns &amp;amp; Practices Architecture Guide&lt;/a&gt;. Specifically, the layer diagram described in &lt;a href="http://msdn.microsoft.com/en-us/library/ee658081.aspx" target="_blank"&gt;Chapter 6: Presentation Layer Guidelines&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;4)&lt;/strong&gt; Create the following layer diagram:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/CustomToolboxItems_A3E6/image_5.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/CustomToolboxItems_A3E6/image_thumb_5.png" width="660" height="433" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" bgcolor="#f0ffff"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;strong&gt;Tips &amp;amp; Tricks, plus a Beta2 BUG ALERT:&lt;/strong&gt;&lt;/p&gt;          &lt;p&gt;I cut a quick video to include with this post to show a couple of suggestions / tips on how to quickly build the diagram above, as well as call out some funky behavior in the Beta2 build that has since been corrected. Here’s that &lt;a href="http://cwskinner.members.winisp.net/Videos/LayerTipsTricksBug.wmv" target="_blank"&gt;video&lt;/a&gt;.&lt;/p&gt;          &lt;p&gt;One thing I failed to mention in the video is that you can navigate in and out of nested layers by holding the Shift-&amp;gt; to get the tab to go to inner layers, and Shift-&amp;lt; to go to containers.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;strong&gt;5)&lt;/strong&gt; Save the PresentationLayer.layerdiagram&lt;/p&gt;  &lt;p&gt;At this point, you need to create a directory in your %userprofile%\my Documents\Visual Studio 2010 directory.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;6)&lt;/strong&gt; Start a command prompt and cd to %userprofile%\my Documents\Visual Studio 2010 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;7)&lt;/strong&gt; Create a directory called “Team Architecture”&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;8)&lt;/strong&gt; cd into the “Team Architecture” directory and create another directory called “Custom Toolbox Items”&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;9)&lt;/strong&gt; Copy your “PresentationLayer.*” files from your modeling project to the “Custom Toolbox Items” directory.&lt;/p&gt;  &lt;p&gt;Here’s an image of my command line actions of steps 5-9:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/CustomToolboxItems_A3E6/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/CustomToolboxItems_A3E6/image_thumb_6.png" width="644" height="452" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Ok, we’re almost there. Before we exit Visual Studio, do take notice of the current toolbox window, which should look something like this:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/CustomToolboxItems_A3E6/image_7.png" width="264" height="228" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;10)&lt;/strong&gt; Exit and then restart Visual Studio, and create a new modeling project.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;11)&lt;/strong&gt; Create a new layer diagram&lt;/p&gt;  &lt;p&gt;Once the new layer diagram is visible, your toolbox should look something like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/CustomToolboxItems_A3E6/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/CustomToolboxItems_A3E6/image_thumb_7.png" width="266" height="281" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;At this point, you can select the “PresentationLayer” toolbox item and drop into your new layer diagram. You should see the exact same diagram that we created in the step 4! &lt;/p&gt;  &lt;p&gt;Now this is great, but we also give you the ability to control how these new toolbox items are displayed and organized. Enter the .tbxinfo file.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;12)&lt;/strong&gt; Create a file called “MyCustomItems.tbxinfo” in the “Custom Toolbox Items” directory we created in step 8.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;13)&lt;/strong&gt; Open that file in Visual Studio, and paste the following code:&lt;/p&gt;  &lt;div style="border-bottom: black 1px solid; border-left: black 1px solid; width: 100%; overflow: scroll; border-top: black 1px solid; border-right: black 1px solid"&gt;&amp;lt;?xml version=&lt;span style="color: red"&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt; encoding=&lt;span style="color: red"&gt;&amp;quot;utf-8&amp;quot;&lt;/span&gt; ?&amp;gt;     &lt;br /&gt;&amp;lt;customToolboxItems xmlns=&lt;span style="color: red"&gt;&amp;quot;http://schemas.microsoft.com/visualstudio/2010/TeamArchitect/CustomToolboxItems&amp;quot;&lt;/span&gt;&amp;gt;     &lt;br /&gt;&amp;#160; &amp;lt;customToolboxItem fileName=&lt;span style="color: red"&gt;&amp;quot;PresentationLayer.layerdiagram&amp;quot;&lt;/span&gt;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;displayName&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;value&amp;gt;Presentation Layer Pattern&amp;lt;/value&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/displayName&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;tabName&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;value&amp;gt;Patterns &amp;amp;amp; Practices&amp;lt;/value&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/tabName&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;image&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;bmp fileName=&lt;span style="color: red"&gt;&amp;quot;cloudservice.ico&amp;quot;&lt;/span&gt;/&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/image&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;f1Keyword&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;value&amp;gt;PLayerHelp&amp;lt;/value&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/f1Keyword&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;tooltip&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;value&amp;gt;Create the Presentation Layer &lt;span style="color: blue"&gt;As&lt;/span&gt; mentioned &lt;span style="color: blue"&gt;In&lt;/span&gt; Pattern &lt;span style="color: blue"&gt;And&lt;/span&gt; Practices' Architecture Guidance v2&amp;lt;/value&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/tooltip&amp;gt;     &lt;br /&gt;&amp;#160; &amp;lt;/customToolboxItem&amp;gt;     &lt;br /&gt;&amp;lt;/customToolboxItems&amp;gt; &lt;/div&gt;  &lt;div&gt;&amp;#160;&lt;/div&gt;  &lt;div&gt;Once you save that file, exit Visual Studio, open a modeling project and open a layer diagram, you’ll see the following:&lt;/div&gt;  &lt;div&gt;&amp;#160;&lt;a href="http://cwskinner.members.winisp.net/CustomToolboxItems_A3E6/image_9.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/CustomToolboxItems_A3E6/image_thumb_8.png" width="495" height="296" /&gt;&lt;/a&gt;&lt;/div&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" bgcolor="#f0ffff"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt;&lt;/p&gt;          &lt;p&gt;As you play around with these custom tool box items, it is possible that you’ll start to see toolbox items from past experiments. If you start to see things your aren’t expecting, right click in the toolbox and select “Reset Toolbox”:&lt;/p&gt;          &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/CustomToolboxItems_A3E6/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/CustomToolboxItems_A3E6/image_thumb_9.png" width="244" height="244" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;That’s it! You can experiment with adding more custom toolbox items created by using layer diagrams, and you can do the exact same thing with any of the UML diagrams as well. This is a great way to get started with Design Patterns or any other template you’d like to make more accessible with your engineering team.&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;[NOTE: This post is part of a blog series, the start of which is &lt;a href="http://blogs.msdn.com/camerons/archive/2009/10/19/modeling-and-visualization-in-visual-studio-2010-ultimate.aspx"&gt;here&lt;/a&gt;.]&lt;/p&gt;</description></item><item><title>DSL SDK for Visual Studio 2010 Beta2 Released</title><link>http://blogs.msdn.com/camerons/archive/2009/10/22/dsl-sdk-for-visual-studio-2010-beta2-released.aspx</link><pubDate>Thu, 22 Oct 2009 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9911533</guid><dc:creator>camerons</dc:creator><description>&lt;p&gt;Jean-Marc has just &lt;a href="http://blogs.msdn.com/jmprieur/archive/2009/10/22/we-released-the-dsl-sdk-for-visual-studio-beta2-this-morning.aspx" target="_blank"&gt;posted some great details&lt;/a&gt; on the Beta2 version of the DSL SDK.&lt;/p&gt;  &lt;p&gt;The amount of capabilities that have gone into the DSL Toolkit this version has been great to see. That team has done a fantastic job of increasing the power of what a DSL created via the toolkit can get done.&lt;/p&gt;  &lt;p&gt;Man, this has been a crazy week, in all the best of ways! :)&lt;/p&gt;</description></item><item><title>Lovett is Blogging!</title><link>http://blogs.msdn.com/camerons/archive/2009/10/19/lovett-is-blogging.aspx</link><pubDate>Mon, 19 Oct 2009 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9909500</guid><dc:creator>camerons</dc:creator><description>&lt;p&gt;&lt;a href="http://www.lovettsoftware.com"&gt;Chris Lovett&lt;/a&gt;, an architect on my team who has a glorious and long history with Microsoft, has finally joined the blogosphere! His expertise is all things .NET, but in particular he knows the code behind the new DGML graphs and dependency diagrams that are new in Visual Studio 2010 Ultimate.&lt;/p&gt;  &lt;p&gt;His first two posts are fabulous, both of which include &lt;strong&gt;videos&lt;/strong&gt; of Chris walking through some of the power of the DGML graphing technology. Be sure to check out his “teaser” post &lt;a href="http://www.lovettsoftware.com/blogengine.net/post/2009/09/24/Directed-Graph-Documents.aspx"&gt;here&lt;/a&gt;, and a more in-depth post on our &lt;a href="http://www.lovettsoftware.com/blogengine.net/post/2009/09/26/Standard-Dependency-Graphs.aspx"&gt;Standard Dependency Graphs&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Be sure to subscribe to his blog, as I know he’ll be putting up quite a bit more content in the weeks ahead. &lt;/p&gt;  &lt;p&gt;You’ll be glad you did! :)&lt;/p&gt;</description></item><item><title>“First-time Experience” with Arch Tools</title><link>http://blogs.msdn.com/camerons/archive/2009/10/19/first-time-experience-with-arch-tools.aspx</link><pubDate>Mon, 19 Oct 2009 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9909437</guid><dc:creator>camerons</dc:creator><description>&lt;p&gt;[NOTE: This post is part of a blog series, the start of which is &lt;a href="http://blogs.msdn.com/camerons/archive/2009/10/19/modeling-and-visualization-in-visual-studio-2010-ultimate.aspx"&gt;here&lt;/a&gt;.]&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ok, you’ve downloaded the &lt;a href="http://go.microsoft.com/fwlink/?LinkID=151797" mce_href="http://go.microsoft.com/fwlink/?LinkID=151797"&gt;Beta 2 bits of Visual Studio 2010 and .NET Framework 4&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Now you want to explorer the new Modeling and Visualization tools. This post will help you make those first couple of steps.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1) Launch Visual Studio&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Notice the new top-level menu item called “Architecture”:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; width: 640px; display: inline; border-top-width: 0px; border-bottom-width: 0px; height: 307px; border-left-width: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/image_thumb.png" width="640" height="307" mce_src="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/image_thumb.png" /&gt; &lt;/p&gt;  &lt;p&gt;With &lt;strong&gt;no solution open&lt;/strong&gt;, selecting the menu item simply results in the following:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; width: 556px; display: inline; border-top-width: 0px; border-bottom-width: 0px; height: 143px; border-left-width: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/image_thumb_3.png" width="556" height="143" mce_src="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/image_thumb_3.png" /&gt; &lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2) Select “New Diagram…”&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;After a couple of seconds, a dialog box appears, which looks like this:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; width: 548px; display: inline; border-top-width: 0px; border-bottom-width: 0px; height: 484px; border-left-width: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/image_thumb_4.png" width="548" height="484" mce_src="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/image_thumb_4.png" /&gt; &lt;/p&gt;  &lt;p&gt;This dialog makes it very easy to see all the diagrammatic capabilities that are new in 2010. You see the ability to create a total of five different UML diagrams, a Layer Diagram option, and last but not least, the Directed Graph Document. &lt;/p&gt;  &lt;p&gt;I’ll go into detail on all these later, but for now, just accept all the defaults and hit the OK button.&lt;/p&gt;  &lt;p&gt;Now, because you do not have any solution open, you will see the following dialog:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/image_5.png" mce_href="http://cwskinner.members.winips.net/FirsttimeExperiencewithArchTools_13B00/image_5.png"&gt;&lt;img style="border-right-width: 0px; width: 644px; display: inline; border-top-width: 0px; border-bottom-width: 0px; height: 447px; border-left-width: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/image_thumb_5.png" width="644" height="447" mce_src="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/image_thumb_5.png" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;( You’ll see the same dialog even if you have a solution open, but no Modeling projects exist in the solution ).&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" bgcolor="#f0ffff"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;strong&gt;BUG ALERT:&lt;/strong&gt;&lt;/p&gt;          &lt;p&gt;Unfortunately, a little bug slipped through the cracks that I want to point out so you don’t waste your time logging a bug that has already been fixed. &lt;/p&gt;          &lt;p&gt;If you hit the cancel button at this point, you’ll see this dialog:&lt;/p&gt;          &lt;p&gt;&lt;img style="border-right-width: 0px; width: 498px; display: inline; border-top-width: 0px; border-bottom-width: 0px; height: 201px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/clip_image002_thumb.jpg" width="498" height="201" mce_src="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/clip_image002_thumb.jpg" /&gt;&lt;/p&gt;          &lt;p&gt;You can hit the OK button and no harm will be done, but not quite the experience we’re looking for. ;)&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Take the defaults and hit the OK button. You should see something similar to what you see in the image below ( minus my red annotations of course ):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/image_6.png" mce_href="http://cwskinner.members.winips.net/FirsttimeExperiencewithArchTools_13B00/image_6.png"&gt;&lt;img style="border-right-width: 0px; width: 606px; display: inline; border-top-width: 0px; border-bottom-width: 0px; height: 484px; border-left-width: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/image_thumb_6.png" width="606" height="484" mce_src="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/image_thumb_6.png" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;At this point, your ready to start adding items to the class diagram to your hearts content. This is a pretty common first couple of steps that you will take as you start using VS 2010 Ultimate to model your problem domain using the various UML diagrams.&lt;/p&gt;  &lt;p&gt;The steps above are very similar if you have an existing solution already open, but I do want to point out a couple of differences. The steps below are quite common when you are looking to the tool to help you understand an existing code base.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3) Open an existing solution&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Just open any solution you’ve got within reach. I’m going to open up the old standby, Petshop 4.0. ( This will result in the current solution being closed, but don’t worry about that. )&lt;/p&gt;  &lt;p&gt;Once your solution is opened, you’ll see some new additions to the “Architecture” menu item:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; width: 519px; display: inline; border-top-width: 0px; border-bottom-width: 0px; height: 162px; border-left-width: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/image_thumb_7.png" width="519" height="162" mce_src="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/image_thumb_7.png" /&gt; &lt;/p&gt;  &lt;p&gt;Go ahead and try one of the menu items out. I selected the “Generate Dependency Graph-&amp;gt;By Assembly” menu item, which resulted in a graph that looks like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/image_8.png" mce_href="http://cwskinner.members.winips.net/FirsttimeExperiencewithArchTools_13B00/image_8.png"&gt;&lt;img style="border-right-width: 0px; width: 606px; display: inline; border-top-width: 0px; border-bottom-width: 0px; height: 484px; border-left-width: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/image_thumb_8.png" width="606" height="484" mce_src="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/image_thumb_8.png" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p mce_keep="true"&gt;Don’t worry about the details on this yet. We’ll be diving into those details in future posts. For now, we’re just kicking tires.&lt;/p&gt;  &lt;p&gt;One last thing to point out before calling this post done.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;4) Open up a source file&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;In my case, I’m going to open up the Order.cs file in the OracleDAL project.&lt;/p&gt;  &lt;p&gt;Find a decent size method in your class, right click in the text editor, anywhere within the method and select …&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;5) Generate Sequence Diagram&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;You’ll see this dialog:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; width: 398px; display: inline; border-top-width: 0px; border-bottom-width: 0px; height: 392px; border-left-width: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/image_thumb_9.png" width="398" height="392" mce_src="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/image_thumb_9.png" /&gt; &lt;/p&gt;  &lt;p&gt;Just take the defaults and hit OK. In my case, a diagram is generated that looks like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/image_10.png" mce_href="http://cwskinner.members.winips.net/FirsttimeExperiencewithArchTools_13B00/image_10.png"&gt;&lt;img style="border-right-width: 0px; width: 606px; display: inline; border-top-width: 0px; border-bottom-width: 0px; height: 484px; border-left-width: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/image_thumb_10.png" width="606" height="484" mce_src="http://cwskinner.members.winisp.net/FirsttimeExperiencewithArchTools_13B00/image_thumb_10.png" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Again, I’m not going to go into any more detail on this than I have just done. I just wanted to point out a few very common ways into some of the new features in the product.&lt;/p&gt;  &lt;p&gt;As I pointed out in this previous post, I’ve got a lot of topics I’m going to nail down for you. I don’t have any specific order that I’m committed to following, so if you have some preferences of which topics I do first, please let me know!&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;  &lt;p&gt;NOTE: This post is part of a blog series, the start of which is &lt;a href="http://blogs.msdn.com/camerons/archive/2009/10/19/modeling-and-visualization-in-visual-studio-2010-ultimate.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Visual Studio 2010 and .NET Framework 4 Beta 2!!!</title><link>http://blogs.msdn.com/camerons/archive/2009/10/19/visual-studio-2010-and-net-framework-4-beta-2.aspx</link><pubDate>Mon, 19 Oct 2009 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9909196</guid><dc:creator>camerons</dc:creator><description>&lt;P&gt;Ok, it has been a little while since I blogged last, but it is for good reason, and now’s the time to show you why.&lt;/P&gt;
&lt;P&gt;The entire Visual Studio team, including my own, have been working extremely hard to get the Visual Studio 2010 Beta 2 release squared away, and I’m very pleased to announce that those bits have been made available as of 9:00 AM PDT today! ( See Soma’s &lt;A href="http://blogs.msdn.com/somasegar/archive/2009/10/19/announcing-visual-studio-2010-and-net-fx-4-beta-2.aspx"&gt;announcement here&lt;/A&gt;. )&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;WooHoo!!!&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;There have been simply a *ton* of changes to the product since last we chatted, both from a functionality perspective ( we’ve made lots of progress that I can’t wait to tell you about! ) to changes in the Visual Studio SKU structure, to logo and name branding, and pricing changes. MSDN itself has been redesigned!&lt;/P&gt;
&lt;P&gt;But first and foremost, if you are an MSDN subscriber, stop what you are doing and go down load Beta2 and the .NET Framework 4 bits from &lt;A href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx" mce_href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx"&gt;this link&lt;/A&gt;. I really think you’re going to like what you see! And Beta2 is a “Go Live” release, which means we are encouraging you to use the product in production, with an implied understanding that if serialization formats or what have you change between now and RTM, we’ll provide a way to move your data and artifacts forward so that you don’t lose any work.&lt;/P&gt;
&lt;P&gt;If you aren’t an MSDN subscriber, general availability for the release will happen on October 21st.&lt;/P&gt;
&lt;P&gt;To get more information on the new packaging and licensing details, please visit &lt;A href="http://www.microsoft.com/visualstudio" mce_href="http://www.microsoft.com/visualstudio"&gt;this link&lt;/A&gt;. But here’s a taste of the new Visual Studio 2010 logo:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://cwskinner.members.winisp.net/VisualStudio2010Beta2_1130A/image.png" mce_href="http://cwskinner.members.winisp.net/VisualStudio2010Beta2_1130A/image.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; WIDTH: 240px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; HEIGHT: 53px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://cwskinner.members.winisp.net/VisualStudio2010Beta2_1130A/image_thumb.png" width=240 height=53 mce_src="http://cwskinner.members.winisp.net/VisualStudio2010Beta2_1130A/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;And to top everything else off, the official &lt;STRONG&gt;launch date&lt;/STRONG&gt; for Visual Studio 2010 and .NET Framework 4 is &lt;STRONG&gt;March 22nd, 2010&lt;/STRONG&gt;!&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;&lt;FONT color=#0080ff&gt;SKU Structure Change&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;A couple words about the changes that you can read more &lt;A href="http://www.microsoft.com/visualstudio" mce_href="http://www.microsoft.com/visualstudio"&gt;about here&lt;/A&gt;. The Architecture Edition, along with many of the features of the Team System 2008 Development box, are now part of the Visual Studio 2010 Ultimate product. &lt;/P&gt;
&lt;P&gt;The Visual Studio product line has moved to more of a “Russian Doll” model in regards to how the features are represented in each version of the product. At the top of the stack, including all the features and functionality of Visual Studio 2010 Premium and Visual Studio 2010 Professional, is the capabilities found in Visual Studio 2010 Ultimate. Going forward, I’m going to be spending my time with posts describing the Modeling and Visualization technologies in Ultimate, as that is what I know best, as that is what my team does. :)&lt;/P&gt;
&lt;P&gt;But quickly, here’s a general view of the capabilities found in the new SKU structure. Please understand that from a feature perspective, Ultimate contains everything you see in this list ( all the Premium + Professional features ), plus the Ultimate specific features.&lt;/P&gt;
&lt;P&gt;The features in &lt;FONT color=#ff0000&gt;red&lt;/FONT&gt; are the ones my team is responsible for delivering. Those features are the ones I will continue to blog about in depth in the days and weeks ahead.&lt;/P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=2 bgColor=#f0ffff&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Microsoft Visual Studio 2010 Ultimate ( includes all features from Premium and Professional SKUs ):&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;IntelliTrace &lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;UML Modeling&lt;/FONT&gt;&lt;/STRONG&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Layer Diagram &amp;amp; Architectural Validation&lt;/FONT&gt;&lt;/STRONG&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Architecture Explorer&lt;/FONT&gt;&lt;/STRONG&gt; &lt;/LI&gt;
&lt;LI&gt;Web Testing &lt;/LI&gt;
&lt;LI&gt;Load Testing &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Microsoft Visual Studio 2010 Premium ( includes all features from the Professional SKU ):&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;UI Test Automation &lt;/LI&gt;
&lt;LI&gt;Test Impact Analysis &lt;/LI&gt;
&lt;LI&gt;Performance Profiling &lt;/LI&gt;
&lt;LI&gt;Static Code Analysis &lt;/LI&gt;
&lt;LI&gt;Code Coverage &lt;/LI&gt;
&lt;LI&gt;Code Metrics &lt;/LI&gt;
&lt;LI&gt;Database Change Management &lt;/LI&gt;
&lt;LI&gt;Database Deployment &lt;/LI&gt;
&lt;LI&gt;Database Unit Testing &lt;/LI&gt;
&lt;LI&gt;Test Data Generation &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Read-Only UML, Layer, and DGML Graphs&lt;/STRONG&gt;&lt;/FONT&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Microsoft Visual Studio 2010 Professional:&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Silverlight Tools &lt;/LI&gt;
&lt;LI&gt;Multi-Core Development &lt;/LI&gt;
&lt;LI&gt;Sharepoint Development &lt;/LI&gt;
&lt;LI&gt;Cloud Development &lt;/LI&gt;
&lt;LI&gt;Web Development &lt;/LI&gt;
&lt;LI&gt;Windows Development &lt;/LI&gt;
&lt;LI&gt;Generate from Usage &lt;/LI&gt;
&lt;LI&gt;Office Development &lt;/LI&gt;
&lt;LI&gt;New WPF Editor &lt;/LI&gt;
&lt;LI&gt;Customizable IDE &lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;So stay tuned, as I’m planning on a number of posts that are designed to drill into the new features available in this beta 2 release of Visual Studio!&lt;/P&gt;
&lt;P&gt;Cameron&lt;/P&gt;</description></item><item><title>DGML, Containers, and VSTS 2010 Architecture Rendering</title><link>http://blogs.msdn.com/camerons/archive/2009/02/23/dgml-containers-and-vsts-2010-architecture-rendering.aspx</link><pubDate>Mon, 23 Feb 2009 08:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9440853</guid><dc:creator>camerons</dc:creator><description>&lt;p&gt;I &lt;a href="http://blogs.msdn.com/camerons/archive/2009/01/26/directed-graph-markup-language-dgml.aspx"&gt;previously&lt;/a&gt; pointed out how easy it was to manipulate and then render a .dgml file in the upcoming VSTS 2010 Architecture product. I want to continue that discussion by showing how easy it is to indicate to the product that you need to see nodes contained inside another, and a few other niceties along the way.&lt;/p&gt; &lt;table border="1" cellspacing="0" cellpadding="2" width="*" bgcolor="azure"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="592"&gt;&lt;strong&gt;NOTE:&lt;br&gt;&lt;/strong&gt;&lt;br&gt;I do need to make one thing clear before we move forward. The difference between the core DGML and the additional capabilities you will find in the Architecture product is significant. The core DGML markup is limited to very few elements: DirectedGraph, Nodes, Node, Links, Link, Categories, and Category. Any additional markup beyond those basic elements is specific to the VSTS Architecture product. &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;So we had previously started with a graph that looked like this:&lt;/p&gt; &lt;p&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/DGMLContainersandVSTS2010ArchitectureRen_91F0/image_3.png" width="585" height="351"&gt; &lt;/p&gt; &lt;p&gt;In order to tell the VSTS 2010 Architecture product's DGML rendering engine to draw a container around the "From" node, you first start by adding another &lt;strong&gt;Link&lt;/strong&gt; element that has the &lt;strong&gt;Source&lt;/strong&gt; attribute named "My Container" ( value doesn't matter ), and the &lt;strong&gt;Target&lt;/strong&gt; attribute's value set to "From" ( this value does matter ). When you add that to your graph, you'll see this:&lt;/p&gt; &lt;p&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/DGMLContainersandVSTS2010ArchitectureRen_91F0/image_6.png" width="649" height="374"&gt; &lt;/p&gt; &lt;p&gt;Not exactly containing the "From" node at this point, but we're not done. We need to add two more things to the markup. &lt;/p&gt; &lt;p&gt;The first step is to add a &lt;strong&gt;Category&lt;/strong&gt; element to the &lt;strong&gt;Link &lt;/strong&gt;element we just added, with a value of "Contains". Markup should now look like this:&lt;/p&gt; &lt;p&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/DGMLContainersandVSTS2010ArchitectureRen_91F0/image_9.png" width="550" height="104"&gt; &lt;/p&gt; &lt;p&gt;The second step is to add a &lt;strong&gt;Nodes&lt;/strong&gt; element with a single &lt;strong&gt;Node &lt;/strong&gt;element contained inside, like so:&lt;/p&gt; &lt;p&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/DGMLContainersandVSTS2010ArchitectureRen_91F0/image_12.png" width="554" height="159"&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The resulting graph looks like this:&lt;/p&gt; &lt;p&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/DGMLContainersandVSTS2010ArchitectureRen_91F0/image_15.png" width="485" height="161"&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Let me point out a number of things, and bring them to your attention. In the image below, I've selected the contained "From" node:&lt;/p&gt; &lt;p&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/DGMLContainersandVSTS2010ArchitectureRen_91F0/image_20.png" width="612" height="502"&gt; &lt;/p&gt; &lt;ol&gt; &lt;li&gt;This is a number that indicates how many nodes are actually contained in the container.  &lt;li&gt;The &lt;strong&gt;Id &lt;/strong&gt;of the container. The &lt;strong&gt;Id&lt;/strong&gt; must match the &lt;strong&gt;Source&lt;/strong&gt; attribute value of the &lt;strong&gt;Link&lt;/strong&gt; element that has the "Contains" &lt;strong&gt;Category&lt;/strong&gt; attribute applied to it. You can further include a &lt;strong&gt;Label&lt;/strong&gt; attribute to the &lt;strong&gt;Node&lt;/strong&gt; element in order to use a different value for the container's title than the &lt;strong&gt;Id&lt;/strong&gt; value. VSTS 2010 Architecture defaults to the &lt;strong&gt;Id&lt;/strong&gt; value when the &lt;strong&gt;Label&lt;/strong&gt; attribute is not present.  &lt;li&gt;A chevron that can be clicked resulting in a collapsed or expanded container. The container in this example is clearly expanded, allowing you to see the contents of the container in the graph. The expanded state is captured in the dgml file via the value of the &lt;strong&gt;Group&lt;/strong&gt; attribute on the &lt;strong&gt;Node&lt;/strong&gt; element set to "Expanded". Setting that value to "Collapsed" collapses the container, hiding its contents. Here's a shot that shows the results of setting that value to "Collapsed" as well as using the &lt;strong&gt;Label&lt;/strong&gt; attribute on the &lt;strong&gt;Node&lt;/strong&gt; element:&lt;br&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/DGMLContainersandVSTS2010ArchitectureRen_91F0/image_22.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/DGMLContainersandVSTS2010ArchitectureRen_91F0/image_thumb_7.png" width="609" height="461"&gt;&lt;/a&gt;  &lt;li&gt;This is showing that I have selected the "From" node.  &lt;li&gt;Because I have selected the "From" node, the link between the "From" node and "To" node shows up. If you aren't selecting "From" or the "To" nodes, that link disappears.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;That's it! I should also add that you can have as many levels of containment as you'd like. Hope that helps!&lt;/p&gt; &lt;p&gt;Cameron&lt;/p&gt;</description></item><item><title>DSL Multiple Views example and other links</title><link>http://blogs.msdn.com/camerons/archive/2009/01/27/dsl-multiple-views-example-and-other-links.aspx</link><pubDate>Tue, 27 Jan 2009 08:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9378021</guid><dc:creator>camerons</dc:creator><description>&lt;p&gt;&lt;a href="http://www.peterprovost.org/default.aspx"&gt;Mr. Provost&lt;/a&gt; was recently interviewed by the &lt;a href="http://elegantcode.com/"&gt;ElegantCode&lt;/a&gt; folks. Find that podcast &lt;a href="http://elegantcode.com/2009/01/26/code-cast-19-peter-provost-on-agile-visual-studio-2010-and-architecture-tools/"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Wanted to make people aware of the excellent work two of our MVPs ( Pascal Recchia and Anthony Guerot ) have done recently with the DSL Toolkit. Checkout this &lt;a href="http://www.netfxfactory.org/blogs/papers/archive/2009/01/13/multiply-dsl-points-of-view.aspx"&gt;great article&lt;/a&gt; on how they have manipulated the DSL API in order to get multiple views over a single store. They have also provided access to a &lt;a href="http://www.netfxfactory.org/files/folders/high_resolution/entry227.aspx"&gt;video&lt;/a&gt; showing the functionality, as well as the &lt;a href="http://www.netfxfactory.org/files/folders/c/entry228.aspx"&gt;code&lt;/a&gt; they created.&lt;/p&gt;  &lt;p&gt;This is great stuff, and does show the power of the DSL framework that we have built the UML designers coming in VSTS 2010 on. &lt;/p&gt;  &lt;p&gt;With the 2010 product, we hope to make this type of functionality even easier, with even more extensibility options possible with new APIs we will be providing.&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;</description></item><item><title>Directed Graph Markup Language ( DGML )</title><link>http://blogs.msdn.com/camerons/archive/2009/01/26/directed-graph-markup-language-dgml.aspx</link><pubDate>Mon, 26 Jan 2009 08:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9376251</guid><dc:creator>camerons</dc:creator><description>&lt;p&gt;In this &lt;a href="http://blogs.msdn.com/camerons/archive/2008/12/16/introduction-to-directed-graph-markup-language-dgml.aspx"&gt;previous post&lt;/a&gt; I introduced you to the new format, and then this &lt;a href="http://blogs.msdn.com/camerons/archive/2008/12/18/standard-graphs.aspx"&gt;follow on post&lt;/a&gt; showed some of the examples of how the format is used to back some common graphs you can expect in the product.&lt;/p&gt;  &lt;p&gt;In this post, I'm going to talk about a couple ways of controlling how links are rendered in the VSTS 2010 Architecture product.&lt;/p&gt;  &lt;h2&gt;&lt;u&gt;The Graph Element&lt;/u&gt;&lt;/h2&gt;  &lt;p&gt;At the root of every DGML document is the &lt;strong&gt;DirectedGraph&lt;/strong&gt; element. The default namespace for this document, attributed to this element, is &lt;a href="http://schemas.microsoft.com/vs/2009/dgml"&gt;http://schemas.microsoft.com/vs/2009/dgml&lt;/a&gt;. There are a number of xml attributes that is supported for this element that you will be able to quickly discover through the intellisense functionality off the file, but I want to call out the &lt;strong&gt;Background&lt;/strong&gt; attribute in particular.&lt;/p&gt;  &lt;p&gt;The &lt;strong&gt;Background&lt;/strong&gt; attribute allows you to set the color of the background of the graph surface itself, either by name of ARGB hex values as documented &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.media.colors.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;For example, this snippet of DGML:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="90" alt="image" src="http://www.cwskinner.members.winisp.net/BlogImages/DirectedGraphMarkupLanguageDGML_835B/image.png" width="682" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;Results in this graph:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="229" alt="image" src="http://www.cwskinner.members.winisp.net/BlogImages/DirectedGraphMarkupLanguageDGML_835B/image_3.png" width="461" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;Amazing, but good to know nonetheless. :)&lt;/p&gt;  &lt;h2&gt;&lt;u&gt;The Link Element&lt;/u&gt;&lt;/h2&gt;  &lt;p&gt;A DGML graph is fundamentally all about nodes and the links between those nodes. You'll notice in the markup above the &lt;strong&gt;Links&lt;/strong&gt; element containing one &lt;strong&gt;Link&lt;/strong&gt; element. You'll also notice that the rendering engine that reads this particular DGML is smart enough to understand that a link cannot exist without nodes to connect, so automatically creates a &amp;quot;From&amp;quot; node and a &amp;quot;To&amp;quot; node based on the values found in the &lt;strong&gt;Source&lt;/strong&gt; and &lt;strong&gt;Target&lt;/strong&gt; attributes on the &lt;strong&gt;Link &lt;/strong&gt;element.&lt;/p&gt;  &lt;p&gt;The &lt;strong&gt;Link&lt;/strong&gt; element has a number of interesting attributes that are directly supported. I'll call out a few here. &lt;/p&gt;  &lt;p&gt;In order to change the background color of a link arrowhead, set the &lt;strong&gt;Backround&lt;/strong&gt; attribute to &amp;quot;Red&amp;quot;. You'll get something like this:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="254" alt="image" src="http://www.cwskinner.members.winisp.net/BlogImages/DirectedGraphMarkupLanguageDGML_835B/image_4.png" width="638" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;In order to change the color of the entire link, set the &lt;strong&gt;Stroke&lt;/strong&gt; attribute to your desired color. If you only specify &lt;strong&gt;Stroke &lt;/strong&gt;and not &lt;strong&gt;Background&lt;/strong&gt;, the arrowhead fill color will also be changed to the &lt;strong&gt;Stroke &lt;/strong&gt;color value.&lt;/p&gt;  &lt;p&gt;You can also change the thickness of the link itself by assigning a value to the &lt;strong&gt;StrokeThickness&lt;/strong&gt; attribute, like so:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="225" alt="image" src="http://www.cwskinner.members.winisp.net/BlogImages/DirectedGraphMarkupLanguageDGML_835B/image_5.png" width="586" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;You can also make the link a dashed line by playing with values in the &lt;strong&gt;StrokeDashArray&lt;/strong&gt; attribute. The comma delimited values are converted to doubles, and are taken in relation to the &lt;strong&gt;StrokeThickness&lt;/strong&gt; value, which is &lt;strong&gt;1&lt;/strong&gt; by default. For example, setting &lt;strong&gt;StrokeDashArray&lt;/strong&gt; to &lt;strong&gt;5 &lt;/strong&gt;with a default thickness of 1 results in something like this:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="233" alt="image" src="http://www.cwskinner.members.winisp.net/BlogImages/DirectedGraphMarkupLanguageDGML_835B/image_6.png" width="591" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;You can make the dashed line much more involved by adding more values to the dash array, as specified &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.shapes.shape.strokedasharray.aspx"&gt;here&lt;/a&gt;. Here's an example:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="221" alt="image" src="http://www.cwskinner.members.winisp.net/BlogImages/DirectedGraphMarkupLanguageDGML_835B/image_7.png" width="610" border="0" /&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;&lt;u&gt;Summary&lt;/u&gt;&lt;/h2&gt;  &lt;p&gt;Just a quick taste on how to control link rendering. We'll start to build up more knowledge as we go. In a future post, I want to show the &lt;strong&gt;Node&lt;/strong&gt; element, and specifically get into how grouping / nesting is supported. Stay tuned!&lt;/p&gt;</description></item></channel></rss>