<?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>Skinner's Blog : UML</title><link>http://blogs.msdn.com/camerons/archive/tags/UML/default.aspx</link><description>Tags: UML</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><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 22:52:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9911739</guid><dc:creator>camerons</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/camerons/comments/9911739.aspx</comments><wfw:commentRss>http://blogs.msdn.com/camerons/commentrss.aspx?PostID=9911739</wfw:commentRss><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;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9911739" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/camerons/archive/tags/tsbt-arch/default.aspx">tsbt-arch</category><category domain="http://blogs.msdn.com/camerons/archive/tags/UML/default.aspx">UML</category><category domain="http://blogs.msdn.com/camerons/archive/tags/Layer+Diagram/default.aspx">Layer Diagram</category><category domain="http://blogs.msdn.com/camerons/archive/tags/Videos/default.aspx">Videos</category><category domain="http://blogs.msdn.com/camerons/archive/tags/VS2010+Beta2/default.aspx">VS2010 Beta2</category><category domain="http://blogs.msdn.com/camerons/archive/tags/Visual+Studio+2010+Ultimate/default.aspx">Visual Studio 2010 Ultimate</category><category domain="http://blogs.msdn.com/camerons/archive/tags/VSTS+Designing/default.aspx">VSTS Designing</category></item><item><title>UML Request For Information</title><link>http://blogs.msdn.com/camerons/archive/2008/12/16/uml-request-for-information.aspx</link><pubDate>Tue, 16 Dec 2008 10:21:39 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9224452</guid><dc:creator>camerons</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/camerons/comments/9224452.aspx</comments><wfw:commentRss>http://blogs.msdn.com/camerons/commentrss.aspx?PostID=9224452</wfw:commentRss><description>&lt;p&gt;As you undoubtedly know by now, Microsoft joined the &lt;a href="http://www.omg.org"&gt;OMG&lt;/a&gt; a couple months back. Our own &lt;a href="http://blogs.msdn.com/stevecook/default.aspx"&gt;Steve Cook&lt;/a&gt; has been representing Microsoft at a number of OMG meetings, the latest occurring last week in Santa Clara. Coming out of that last meeting is a new Request For Information ( RFI ) for UML, found &lt;a href="http://www.omg.org/cgi-bin/doc?ad/2008-12-12"&gt;here&lt;/a&gt;. An OMG RFI is basically a formal request designed to elicit feedback around a particular issue. In this case, about UML itself, how you use it today, how you'd like to use it, etc. For example, here are some questions in that RFI:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;For what purposes does your organization currently use UML?&lt;/li&gt; &lt;li&gt;What parts of UML do you use (e.g. what diagrams)?&lt;/li&gt; &lt;li&gt;What is preventing your organization from getting more value from UML?&lt;/li&gt; &lt;li&gt;For what purposes would your organizations like to use UML in the future?&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;This RFI is targeting any and all users of UML, or people who are looking to use UML in the future. Please take the time to review this RFI and respond if at all possible. The gist of this RFI is &lt;strong&gt;"Hey folks, how can the OMG make the UML better?"&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;If you are not interested in sending a formal response to the OMG, then at least send some comments to me.&lt;/p&gt; &lt;p&gt;Thanks!&lt;/p&gt; &lt;p&gt;Cameron&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9224452" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/camerons/archive/tags/UML/default.aspx">UML</category></item><item><title>The UML Model Explorer</title><link>http://blogs.msdn.com/camerons/archive/2008/12/01/the-uml-model-explorer.aspx</link><pubDate>Mon, 01 Dec 2008 12:23:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9159987</guid><dc:creator>camerons</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/camerons/comments/9159987.aspx</comments><wfw:commentRss>http://blogs.msdn.com/camerons/commentrss.aspx?PostID=9159987</wfw:commentRss><description>&lt;p&gt;In the VSTS 2010 Architecture product, we've added another toolwindow to VS designed to help you understand and manipulate the UML models that you will be building. The UML Model Explorer ( that's what we're currently calling it, but that can certainly change :) ) is a WPF component that represents the UML Package hierarchy of your models. "Models" in this context refer to the contents of the Modeling projects you have created and added to the current solution. The root node or nodes of the UML Model Explorer are UML packages representing those Modeling Projects.&lt;/p&gt; &lt;p&gt;For example, in the image below, I have created two Modeling Projects, "My First Modeling Project" and "My Second Modeling Project". You'll notice that the UML Model Explorer has two corresponding nodes in the tree.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_58.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="365" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb_26.png" width="347" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;You might immediately be asking yourself "What's up here? Why show this same information in two tree controls?" The reason will become more clear as I continue on, but it is worth pointing out right now that the UML Model Explorer is a "logical" view over you models. The Solution Explorer is showing you the "physical" view of how those models are contained and persisted. Keep that in mind as you read on.&lt;/p&gt; &lt;p&gt;As I mentioned earlier, every time you create a Modeling Project, a new node will be displayed in the UML Model Explorer. That node is actually a UML package named after the Modeling Project, and serves as the root package for all modeling elements that will be serialized into the Modeling Project. Creating a Modeling Project is the only way to create a root node in the UML Model Explorer.&lt;/p&gt; &lt;p&gt;In the VSTS 2010 CTP, any and every element created under one of these roots is stored in the ModelDefinition.uml file found the Modeling project. In the current bits, we actually create a .uml file for every UML package created. When you intially create a Modeling Project, the UML Package that represents that project is persisted on disk in the ModelDefinition.uml file you see in the project. Every model element created in that package, except new Packages, will be stored in that same file. if you create a new Package, an additional .uml file will be created to store the data behind that package, and all its contents.&lt;/p&gt; &lt;p&gt;Let me drive this all home with some examples, and at the same time show some of the additional capabilities of the UML Model Explorer.&lt;/p&gt; &lt;h3&gt;&lt;u&gt;Adding Elements&lt;/u&gt;&lt;/h3&gt; &lt;p&gt;I want to add a class to the "My Second Modeling Project" model. I can do that by right-clicking on that node in the UML Model Explorer, and select Add-&amp;gt;Class.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_6.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="250" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb_2.png" width="343" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Each time I do that, a new class will appear underneath the "My Second Modeling Project" node.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_10.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="113" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb_4.png" width="262" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;To name the class, I hover over the current name, double-click, which allows me to rename the element. ( By the time we RTM, upon adding the new class, the tool will automatically put you in rename mode, as 99% of the time, that's what you will most likely be doing after adding an element in this manner. )&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_12.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="119" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb_5.png" width="265" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Below is an image of the explorer after adding a few elements. Notice, in small light-grey text is a label that indicates what type of element the node represents.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_14.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="174" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb_6.png" width="381" border="0"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The types of elements that can be added depend on the node you right click on. So far, I've been right-clicking on the Package node that represents the root of my model. If I right click on the class or interface element, I can add UML Attributes or Operations as well.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_16.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="171" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb_7.png" width="374" border="0"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Here's what the explorer looks like after adding a couple Operations and Attributes:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_18.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="250" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb_8.png" width="268" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Adding elements directly to the UML Model Explorer is great, but that is not the only way to add elements of course. As you drop new elements on diagrams, you will see those elements represented as you would expect.&lt;/p&gt; &lt;p&gt;For example, I'm going to create a new Logical Class Diagram in the "My First Modeling Project" project by right clicking on that project node in the Solution Explorer, selecting Add-&amp;gt;New Item..., which brings up the "Add New item dialog", where I select "Logical Class Diagram", give it a name, and hit "OK".&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_20.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="255" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb_9.png" width="395" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;I now have a blank class diagram in the document well, and my project has a new file inserted into it:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_22.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="219" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb_10.png" width="281" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Now I drop two classes on that diagram and create a UML Association between them. Like so:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_24.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="473" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb_11.png" width="356" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Now over in the UML Model Explorer, you'll see the two new classes underneath the "My First Modeling Project" node. You'll also notice the Association relationship also being represented:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_26.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="207" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb_12.png" width="330" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;But how did the tool know to create those new elements underneath the "My First Modeling Project" when dropping them on the diagram we just created? &lt;/p&gt; &lt;p&gt;By default, whenever creating any type of UML diagram in a Modeling Project, that diagram's "Linked Package" property is set to the UML package associated with the project itself. That property is used when dropping new elements to figure out what UML package the new elements should be directly contained by. So in this example, that property is set to "My First Modeling Project", as seen below:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_28.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="179" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb_13.png" width="402" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Let's drive this home with a more complicated example, and point out a couple more features of the system while we're at it.&lt;/p&gt; &lt;p&gt;First, I'm going to create three new UML Packages underneath the "My First Modeling Project" node, the results shown below:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_30.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="230" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb_14.png" width="320" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Now remember when I mentioned that creating a new package would result in a new .uml file being added to the Modeling Project? Take a look at the Solution Explorer, and the "My First Modeling Project" node. You'll notice three new .uml files added to that project, one for each new package I added ( again, the first uml file was already there ):&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_34.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="280" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb_16.png" width="405" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Now I'm going to create three new class diagrams and associate them with the newly created packages. I do that by right clicking on the "My First Modeling Project" project node in the Solution Explorer, select "Add-&amp;gt;New item...", select "Logical Class Diagram", and hit "OK" three times. Here's what my Solution Explorer looks like when done ( red square pointing out the new diagram files added to the project ):&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_36.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="352" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb_17.png" width="348" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;I associate "LogicalClassdiagram1" to the "One" package my setting that diagram's "Linked Package" property appropriately:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_38.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="377" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb_18.png" width="348" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;I do the same thing for the rest of the diagrams, pointing "LogicalClassdiagram2" to the "Two" package, and "LogicalClassdiagram3" to the "Three" package.&lt;/p&gt; &lt;p&gt;Now I drop a new class onto each of the new diagrams. The UML Model Explorer looks like this:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_40.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="258" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb_19.png" width="251" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;h3&gt;&lt;u&gt;Paste By Reference and Element Delete&lt;/u&gt;&lt;/h3&gt; &lt;p&gt;One of the great things that the UML Model Explorer makes very easy is the ability to represent the same model element on numerous diagrams, simply by dragging the element from the explorer onto the diagram. Let me show you what I mean.&lt;/p&gt; &lt;p&gt;I am going to drag "Class1" onto the three class diagrams I just finished creating. Here's the result:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_42.png" target="_blank"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="468" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb_20.png" width="644" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Class1 is now represented on all three diagrams. &lt;/p&gt; &lt;table cellspacing="0" cellpadding="5" width="641" bgcolor="rgb(174,225,238)" border="1"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="639"&gt; &lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;You'll notice in the image above that Class1 is represented on the diagrams with an elided name. Hovering over the element will show the fully qualified name. You can also widen the element to see the full name:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_56.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="106" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb_25.png" width="323" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;The reason for this is due to the fact that the diagram this shape is being displayed does not represent the same package that the model element is in. In this case, the LogicalClassDiagram3 represents the "Three" package, not the "My First Modeling Project" package which Class1 is directly owned by.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;There is still only one "Class1" element in the UML Model Explorer. If I add an operation to Class1 via the UML Model Explorer, that operation will immediately be displayed in the Class1 on each diagram. This is because the shapes on each of those diagrams is essentially a view into the model data that is Class1. Changing the Class1 model data, which is exactly what changing that data in the Model Explorer does, results in the views of that data also changing. &lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_32.png" target="_blank"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="467" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb.png" width="644" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;And of course, adding a new Attribute to any of the Class1 shapes ( also called "Presentation Elements" ) results in the Class1 model data being updated, which updates all the other shapes, and so on.&lt;/p&gt; &lt;p&gt;Dragging from the UML Model Explorer is the most straight forward way of creating "references" back to the model data, but so is copying a shape and selecting "Paste By Reference" in the context menu. &lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_48.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="247" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb_21.png" width="173" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Now deleting one of the shapes results in the shape being deleted, *not* the model element itself. So if I delete Class1 from LogicalClassDiagram1, nothing happens except that shape is removed from that diagram. Class1 is still present in the UML Model Explorer.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_46.png" target="_blank"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="466" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb_15.png" width="644" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;If I right click on Class1 and select "Delete", the model data is destroyed, along with all the shapes representing that element:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_50.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="156" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb_22.png" width="240" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_52.png" target="_blank"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="467" alt="image" src="http://blogs.msdn.com/blogfiles/camerons/WindowsLiveWriter/TheUMLModelExplorer_10DE2/image_thumb_23.png" width="644" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;h3&gt;&lt;strong&gt;&lt;u&gt;Summary&lt;/u&gt;&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;I hope that gives you a good taste of what the UML Model Explorer is all about. They key takeaway that I'm hoping you'll walk away with is that the UML Model Explorer is the logical view of the model&amp;nbsp; repository contained by the Modeling Project. It represents data that can be displayed across numerous diagrams. That data can be manipulated directly via the explorer or through manipulation of presentation elements.&lt;/p&gt; &lt;p&gt;By the time we RTM, we hope to have a number of other facilities plugged into the UML Model Explorer, such as:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Ability to represent Diagrams directly in the explorer  &lt;li&gt;Double click elements in the explorer will navigate to the diagram that element is represented on. If represented on many diagrams, you will be presented with a dialog allowing you to select which diagram to navigate to.  &lt;li&gt;Support for moving elements between packages inside the explorer  &lt;li&gt;Filtering of the explorer&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;As usual, would love to hear your feedback!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9159987" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/camerons/archive/tags/tsbt-arch/default.aspx">tsbt-arch</category><category domain="http://blogs.msdn.com/camerons/archive/tags/Architecture+Edition/default.aspx">Architecture Edition</category><category domain="http://blogs.msdn.com/camerons/archive/tags/UML/default.aspx">UML</category></item><item><title>RadioTFS Broadcast</title><link>http://blogs.msdn.com/camerons/archive/2008/10/16/radiotfs-broadcast.aspx</link><pubDate>Thu, 16 Oct 2008 18:15:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9001896</guid><dc:creator>camerons</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/camerons/comments/9001896.aspx</comments><wfw:commentRss>http://blogs.msdn.com/camerons/commentrss.aspx?PostID=9001896</wfw:commentRss><description>&lt;p&gt;I had the opportunity to sit with the guys at &lt;a href="http://www.radiotfs.com/default.aspx"&gt;RadioTFS&lt;/a&gt; and talk about the good stuff coming in the Architecture Edition in VSTS 2010. &lt;a href="http://www.radiotfs.com/2008/10/16/RoadToRosarioSpecialVSTS2010Architecture.aspx"&gt;Check it out!&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9001896" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/camerons/archive/tags/tsbt-arch/default.aspx">tsbt-arch</category><category domain="http://blogs.msdn.com/camerons/archive/tags/Team+System/default.aspx">Team System</category><category domain="http://blogs.msdn.com/camerons/archive/tags/Architecture+Edition/default.aspx">Architecture Edition</category><category domain="http://blogs.msdn.com/camerons/archive/tags/UML/default.aspx">UML</category></item><item><title>Microsoft joins the OMG</title><link>http://blogs.msdn.com/camerons/archive/2008/09/11/microsoft-joins-the-omg.aspx</link><pubDate>Thu, 11 Sep 2008 02:45:57 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8942425</guid><dc:creator>camerons</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/camerons/comments/8942425.aspx</comments><wfw:commentRss>http://blogs.msdn.com/camerons/commentrss.aspx?PostID=8942425</wfw:commentRss><description>&lt;p&gt;Today we've announced the fact that Microsoft has joined the OMG. Please see the press release &lt;a href="http://www.microsoft.com/presspass/press/2008/sep08/09-10OMGModelingPR.mspx"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;We're very excited about making this step. We are very interested in participating in future efforts that further the effectiveness of the UML as a collaboration and communication vehicle used throughout an organization. Our own &lt;a href="http://blogs.msdn.com/stevecook/default.aspx"&gt;Steve Cook&lt;/a&gt; will be participating in next weeks &lt;a href="http://www.omg.org/news/meetings/tc/orlando/info.htm"&gt;OMG meeting in Orlando&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;This move is one of many in Microsoft's push to make modeling and model-driven technologies more prevalent to a broader range of people. In this particular case, the need for our tooling to interop in a much more direct way via the industry standard that is UML will be a great boon for our current and future customer base.&lt;/p&gt; &lt;p&gt;We've already released an early &lt;a href="http://blogs.msdn.com/jeffbe/archive/2008/04/11/april-rosario-ctp-now-available.aspx"&gt;CTP&lt;/a&gt; that shows the start of this effort, and if you attend next month's PDC, you'll see a whole lot more! I will be giving a talk entitled: &lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;"Rosario": A Sprint with the Next Version of Microsoft Visual Studio Team System&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;where I will be showing many of the great things we will be delivering Team System all-up, including the latest bits around our UML and visualization designers.&lt;/p&gt; &lt;p&gt;Hope to see you there!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8942425" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/camerons/archive/tags/tsbt-arch/default.aspx">tsbt-arch</category><category domain="http://blogs.msdn.com/camerons/archive/tags/Team+System/default.aspx">Team System</category><category domain="http://blogs.msdn.com/camerons/archive/tags/Architecture+Edition/default.aspx">Architecture Edition</category><category domain="http://blogs.msdn.com/camerons/archive/tags/UML/default.aspx">UML</category><category domain="http://blogs.msdn.com/camerons/archive/tags/PDC2008/default.aspx">PDC2008</category></item><item><title>DSL + UML = Pragmatic Modeling</title><link>http://blogs.msdn.com/camerons/archive/2008/06/25/dsl-uml-pragmatic-modeling.aspx</link><pubDate>Wed, 25 Jun 2008 08:33:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8651052</guid><dc:creator>camerons</dc:creator><slash:comments>11</slash:comments><comments>http://blogs.msdn.com/camerons/comments/8651052.aspx</comments><wfw:commentRss>http://blogs.msdn.com/camerons/commentrss.aspx?PostID=8651052</wfw:commentRss><description>&lt;p&gt;There has been some speculation in the press recently around Microsoft's commitment to DSLs now that we are planning on supporting five UML 2.1 diagrams in the Rosario release ( Class, Use Case, Component, Sequence, and Activity diagrams ). Specifically, some articles have been written in a way to lead the reader towards a perception that Microsoft is moving away from DSLs and towards UML. Not at all correct! I wanted to take a moment and set the record straight on this, and start a broader conversation.  &lt;p&gt;Let me first start by making one thing very clear: Microsoft is &lt;strong&gt;very&lt;/strong&gt; committed to our DSL strategy, and in particular to the &lt;a href="http://msdn.microsoft.com/en-us/library/bb126235.aspx"&gt;DSL toolkit&lt;/a&gt; that ships as part of the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=30402623-93ca-479a-867c-04dc45164f5b&amp;amp;displaylang=en"&gt;VS SDK&lt;/a&gt;. In fact, our UML designers are built on top of that toolkit.  &lt;p&gt;I believe that supporting &lt;strong&gt;both&lt;/strong&gt; approaches to modeling gives developers and Architects alike the "right tool for the right job". For those folks who want to analyze and design their architecture using a standard notation that does not imply an implementation decision, use some UML diagrams. UML is great for describing higher level concepts and for defining the initial glossary that can be used to describe the concepts necessary to facilitate broader communication. For those folks who have decided on an implementation strategy, and do not want to be encumbered by the more general nature of the UML to describe that implementation choice, use DSLs.  &lt;p&gt;In the coming months, you will very likely hear me or others on the team talk about using UML at the "logical" layer and DSLs at the "physical" layer. We are really trying to promote a clean separation between the two approaches, while at the same time, attempt to maintain an understanding of how one can inform the other, and vice versa. In this way, we are hoping to more cleanly support the understanding and intent behind the models at each layer.  &lt;p&gt;So this is not a "DSL vs. UML" conversation. This is a "DSL + UML" conversation. And more importantly, this is about meeting our customers where they are and giving them tools that allow them to get to where they need to be.  &lt;p&gt;The true innovation in this space is going to be how we can seamlessly connect the two approaches, and how we can make modeling more central to a broader range of people.  &lt;p&gt;Stay tuned. :)  &lt;p&gt;Cameron&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8651052" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/camerons/archive/tags/tsbt-arch/default.aspx">tsbt-arch</category><category domain="http://blogs.msdn.com/camerons/archive/tags/Architecture+Edition/default.aspx">Architecture Edition</category><category domain="http://blogs.msdn.com/camerons/archive/tags/UML/default.aspx">UML</category><category domain="http://blogs.msdn.com/camerons/archive/tags/DSL/default.aspx">DSL</category></item></channel></rss>