<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/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>Ειδήσεις του dotNETZone.gr</title><link>https://www.dotnetzone.gr:443/cs/forums/10/ShowForum.aspx</link><description>Σχολιασμός των ειδήσεων της πρώτης σελίδας του dotNetZone.gr</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Orphan Shape in the Class Designer</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/1952.aspx</link><pubDate>Fri, 13 May 2005 13:26:52 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:1952</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/1952.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=10&amp;PostID=1952</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;&lt;font face="Georgia" size="2"&gt;Άλλο ένα post από το Blog του Visual Studio Class Deginer Team...&lt;/font&gt;&lt;br /&gt;&lt;br /&gt; &lt;table class="itemlayout" bordercolor="#cccccc" cellspacing="0" cellpadding="0" width="90%" align="center" border="1"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;table cellspacing="0" cellpadding="5" width="100%" bgcolor="#eeeeee" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td class="controlbutton" align="middle" width="25"&gt;&lt;/td&gt; &lt;td class="windowtitle" width="100%"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;strong&gt;Orphan Shape in the Class Designer&lt;/strong&gt;&lt;/font&gt;&lt;/td&gt; &lt;td class="closebutton" width="25"&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="windowbackground" colspan="3"&gt;&lt;span&gt;&lt;?XML:NAMESPACE PREFIX = O /&gt;&lt;O:P&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;One of the biggest value propositions of the Class Designer is to keep class diagrams always in-sync with code – in fact it is supposed to be another view of your code.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Code is the ‘model’ behind class diagrams.&lt;span&gt;&amp;nbsp; &lt;/span&gt;If you open a class diagram file in an xml editor you will find that all it contains is the visual information – placement of the shapes, hidden members if any, association lines if any, etc.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The thing that associates a shape to code is the fully qualified name of the type it is representing and the source artifact that type is defined.&lt;span&gt;&amp;nbsp; &lt;/span&gt;You can find more information on the file format of class diagrams in an upcoming blog post.&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;When you open a class diagram, Class Designer will look for the type associated with each shape by its fully qualified name and associate it with the shape.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The members of the type are dynamically populated by parsing the source files or retrieving it from the assembly (as the case may be).&lt;span&gt;&amp;nbsp; &lt;/span&gt;If the class diagram is open, the class designer will listen to change events to update the diagram to reflect the changes made to the code.&lt;span&gt;&amp;nbsp; &lt;/span&gt;When you save the diagram, the fully qualified name of the type and the artifact it came from (source file/assembly) will be persisted in the diagram file.&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;However, what happens if you rename a class (or its namespace) with the class diagram closed?&lt;span&gt;&amp;nbsp; &lt;/span&gt;Or what if, in a team scenario, somebody just checks out source code, makes the changes and checks it back in, without updating the diagram?&lt;span&gt;&amp;nbsp; &lt;/span&gt;When the diagram is opened, since Class Designer will try to associate the shape with the fully qualified name of the type, it won’t be able to find the shape’s type and load the member information.&lt;span&gt;&amp;nbsp; &lt;/span&gt;If it is unable to find a shape’s type Class Designer will remove the shape from the diagram.&lt;span&gt;&amp;nbsp; &lt;/span&gt;But you might have spent considerable effort customizing your shape – for example, grouped them by access, hidden some of the members, shown some of the members as association lines, manually placed line ends etc.&lt;span&gt;&amp;nbsp; &lt;/span&gt;If the class designer removed the shape you’d have to redo the whole thing again (of course if you had the diagram opened while you refactored your code, Class Designer will be able to listen to the change events and update the diagram).&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Here are a couple of shapes before customization.&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;img src="http://www.ramesh.members.winisp.net/images/OrphanedShapes/Shapes_Before_Customization.jpg" /&gt;&lt;/p&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/b&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma" size="2"&gt;Here are the shapes after the following customizations:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;/span&gt;&lt;img src="http://www.ramesh.members.winisp.net/images/OrphanedShapes/Shapes_After_Customization.jpg" /&gt;&lt;/p&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/b&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;XmlNode &lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt; &lt;ul&gt; &lt;li class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Methods compartment is collapsed to hide all methods. &lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt; &lt;li class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;The Attributes property is shown as a line pointing to XmlAttributeCollection class, rather than just a regular member inside the shape. &lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt; &lt;li class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;The following properties are hidden on the diagram: BaseURI, InnerXml, IsReadOnly, LocalName, NamespaceURI, NextSibling, OuterXml, OwnerDocument, Prefix, PreviousSibling, SchemaInfo. &lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt; &lt;li class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;“Lollipop” is collapsed – the diagram now communicates that the class implements one or more interfaces, but it isn’t important to show in this diagram precisely which interfaces are implemented. &lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt; &lt;li class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;XmlAttributeCollection &lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt; &lt;ul&gt; &lt;li class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Shape is collapsed to hide all its members. &lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt; &lt;li class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Width is increased so that entire name is readable. &lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Class Designer has a couple of cool features that helps you preserve your shape customizations in scenarios described earlier (refactoring your code with the class diagrams closed).&lt;span&gt;&amp;nbsp; &lt;/span&gt;I mentioned earlier the thing that associates a shape to code is the fully qualified type name and the source artifact name.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Well, there is one additional piece of information that is also stored for a shape – a hash code value.&lt;span&gt;&amp;nbsp; &lt;/span&gt;This value is computed from the member signatures (other than constructor/destructor) of the various members in the class.&lt;span&gt;&amp;nbsp; &lt;/span&gt;When the class diagram is opened, if the class designer cannot find the type in the source file, it will look for other classes defined in the same file and compute the hash value for those classes.&lt;span&gt;&amp;nbsp; &lt;/span&gt;If it finds one that falls within a certain pre-determined threshold percentage, then class designer will assume that type to be the one representing the shape and associate it with that shape.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Obviously, this heuristic will work better if the class has more members.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The reason we don’t require an exact match of the hash value is because it is likely that along with the rename, you might have added or changed a few members.&lt;span&gt;&amp;nbsp; &lt;/span&gt;But it may be the case that you also changed the file name along with the class name.&lt;span&gt;&amp;nbsp; &lt;/span&gt;If this is so, the class designer will go through all the files in your project and try to find a class that is the best match.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Note if your project contains a lot of files this will result in a delay in opening the diagram.&lt;span&gt;&amp;nbsp; &lt;/span&gt;If your project contains more than 50 files, Class Designer will give you an option of doing this search or not.&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Under what circumstances will I see orphan shapes in my diagram?&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma" size="2"&gt;The class designer makes a reasonable effort to keep your diagram intact by using this heuristic.&lt;span&gt;&amp;nbsp; &lt;/span&gt;However, as any solution based on heuristics, it is likely that there are situations where Class Designer cannot make an association between a shape and the type it represents.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Or you may have a large project and choose to not wait for Class Designer to search through all the files to look for a match.&lt;span&gt;&amp;nbsp; &lt;/span&gt;In such situations, when you open a diagram, you will get what we call an “Orphan” shape on the diagram for any shapes that cannot be associated with its type.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Here is an example:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;img src="http://www.ramesh.members.winisp.net/images/OrphanedShapes/Orphaned_Shape.jpg" /&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma" size="2"&gt;The following table lists the possible causes for an orphaned shape in your diagram.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt; &lt;table class="MsoNormalTable" cellspacing="0" cellpadding="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;p class="MsoNormal"&gt;&lt;a name="_Toc43837862"&gt;&lt;span&gt;&lt;strong&gt;&lt;font face="Tahoma" color="#0002ca" size="2"&gt;If user does the following&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;strong&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;while diagram is closed&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;span&gt;&lt;strong&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt; &lt;td&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;&lt;font face="Tahoma" size="2"&gt;Class Designer will react as follows &lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;at diagram load time&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;span&gt;&lt;strong&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Class code is significantly changed such that CD can no longer associate the shape with its code. &lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;span&gt;&lt;/span&gt; &lt;td&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Shape is displayed as orphaned.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The user can delete the shape or associate it with existing code.&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;span&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Deletes class&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;span&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/span&gt; &lt;td&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Shape is displayed as orphaned.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;span&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Removes reference to assembly or project&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;span&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/span&gt; &lt;td&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Shape is displayed as orphaned.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;span&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Unload referenced project (class resides in the referenced project)&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;span&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/span&gt; &lt;td&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Shape is displayed as orphaned.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;span&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Delete or remove class’ source code file from project&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;span&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/span&gt; &lt;td&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Shape is displayed as orphaned.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;span&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Moves class to another file&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;span&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/span&gt; &lt;td&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Class Designer should be able to associate the shape and its code, as long as the code has not significantly changed.&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;span&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;If you hover over the shape you will get tooltip text that says code is missing for the shape and how you can associate the shape back to the type.&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.ramesh.members.winisp.net/images/OrphanedShapes/Orphaned_Shape_With_Tooltip.jpg" /&gt;&lt;/p&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/b&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;As the tooltip text suggests, you can either type in the new fully qualified name for the shape (either in-place on the shape or in the property browser) or drag and drop the renamed type from Class View.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Once this association is made, the Class Designer will restore the shape with all the customizations that still apply including lines coming to and going from the shape!&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;A simple walkthrough:&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;The following section provides a simple walk through that lets you experiment with this feature:&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Create a new C# class library. In the auto-generated class Class1, add a new method foo which looks like this:&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;span&gt;&lt;span&gt;&lt;pre class="source"&gt;&lt;table border="0" cellspacing="0" width="100%"&gt;&lt;tr&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td bgcolor="lightgrey" width="15"&gt;&lt;/td&gt;&lt;td bgcolor="lightgrey"&gt;&lt;br&gt;&lt;font face="Lucida Console, Courier" size="2"&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;font size="2"&gt;public void foo(int i)&lt;br/&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="2"&gt;{&lt;br/&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/font&gt;&lt;br&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/pre&gt; &lt;p class="MsoNormal"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Create a new class diagram which looks like&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;img src="http://www.ramesh.members.winisp.net/images/OrphanedShapes/Orphan_2.png" /&gt;&lt;/p&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/b&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Save and close the diagram.&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span&gt;&lt;span&gt;4.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;In source code, rename class Class1 to MyClass&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;img src="http://www.ramesh.members.winisp.net/images/OrphanedShapes/Orphan_3.png" /&gt;&lt;/p&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/b&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span&gt;&lt;span&gt;5.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Re-open the diagram and you will see that the diagram now shows class MyClass &lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.ramesh.members.winisp.net/images/OrphanedShapes/Orphan_4.png" /&gt;&lt;/p&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/b&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;In this example, Class Designer’s heuristics determined that there is a high probability that the shape that used to be associated with Class1 ought to be associated with MyClass.&lt;span&gt;&amp;nbsp; &lt;/span&gt;In most cases, the heuristic can reconcile differences well enough to re-associate shapes to types.&lt;span&gt;&amp;nbsp; &lt;/span&gt;In the event it cannot, please read on…&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;You can re-associate an orphaned shape to a type using one of the following methods:&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Drag/drop a type node from Class View onto the orphaned shape. The orphaned shape will display appropriate drop target feedback when a Class View type is dragged onto it for re-association. &lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.ramesh.members.winisp.net/images/OrphanedShapes/Orphan_5.png" /&gt;&lt;/p&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/b&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Here are a couple of things to keep in mind: &lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span&gt;&lt;span&gt;a.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;You cannot drop a selection containing multiple types from the Class View onto an orphaned shape.&lt;span&gt;&amp;nbsp; &lt;/span&gt;If you try to do so, a no-smoking icon will appear to indicate that the shape is rejecting the types.&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span&gt;&lt;span&gt;b.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;You cannot drop a type from Class View onto an orphaned shape if the type is already represented by another shape on the diagram.&lt;span&gt;&amp;nbsp; &lt;/span&gt;A no-smoking icon will appear to indicate that that type cannot be dropped on the shape.&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Rename the shape to match the name of the type that you want it to be associated with. You can rename a shape by single-clicking on its name; this will put you in edit mode.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Alternatively, you can right-click on the orphan shape and choose “Relink Shape with Code” and then enter the name of the type that you want the shape to be associated with.&lt;span&gt;&amp;nbsp; &lt;/span&gt;When you’re done, press ENTER to commit the change.&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.ramesh.members.winisp.net/images/OrphanedShapes/Orphan_6.png" /&gt;&lt;/p&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/b&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Another alternative is simply to rename the class in the code file to match the name of the orphaned shape. Class Designer automatically will recognize the match and associated the type with the shape.&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span&gt;&lt;span&gt;4.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Or, if you don’t want the orphaned shape anymore, you can simply delete it.&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Ramesh Rajagopal and Patrick Tseng&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Microsoft Visual Studio Class Designer Team&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&lt;a target="_blank" title="http://blogs.msdn.com/classdesigner/archive/2005/05/12/417000.aspx" href="http://blogs.msdn.com/classdesigner/archive/2005/05/12/417000.aspx"&gt;&lt;br /&gt;&lt;font face="Tahoma" size="2"&gt;Original Post&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt;&lt;img height="1" src="http://blogs.msdn.com/aggbug.aspx?PostID=417000" width="1" /&gt; &lt;br /&gt;&lt;/font&gt; &lt;div class="newsitemfooter"&gt;&lt;br /&gt;&lt;font face="Tahoma" size="2"&gt;Yesterday 08:47 | ClassDesigner&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Using Class Designer to document your code – Exporting diagrams as images</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/1858.aspx</link><pubDate>Fri, 06 May 2005 05:39:45 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:1858</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/1858.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=10&amp;PostID=1858</wfw:commentRss><description>&lt;font face="Georgia" size="2"&gt;Περισσότερα δείγματα από τον Class Designer. Δεν το είχα δει νωρίτερα αλλά έχει και δικό του &lt;/font&gt;&lt;a target="_blank" title="http://blogs.msdn.com/classdesigner/default.aspx" href="http://blogs.msdn.com/classdesigner/default.aspx"&gt;&lt;font face="Georgia" size="2"&gt;Blog&lt;/font&gt;&lt;/a&gt;&lt;font face="Georgia" size="2"&gt;!&lt;/font&gt;&lt;br /&gt;&lt;br /&gt; &lt;table class="itemlayout" bordercolor="#cccccc" cellspacing="0" cellpadding="0" width="90%" align="center" border="1"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;table cellspacing="0" cellpadding="5" width="100%" bgcolor="#eeeeee" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td class="controlbutton" align="middle" width="25"&gt;&lt;/td&gt; &lt;td class="windowtitle" width="100%"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;strong&gt;Using Class Designer to document your code – Exporting diagrams as images&lt;/strong&gt;&lt;/font&gt;&lt;/td&gt; &lt;td class="closebutton" width="25"&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="windowbackground" colspan="3"&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;font face="Tahoma" size="2"&gt;One of the design goals of Class Designer was to enable developers to easily document the design of applications and keep it in sync with the code. Class diagrams residing in Visual Studio projects solve this purpose very well, however more traditional documentation formats commonly used for external documentation or presentation such as Microsoft Office documents or web-pages, require diagrams to be saved in some image format.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;font face="Tahoma" size="2"&gt;“Export as Image” functionality provided by Class Designer allows you to export all or a subset of class diagrams inside a solution with a few mouse clicks. In this post I’ll describe how to use this feature to produce project design documentation and keep it in sync later on.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;b&gt;&lt;span&gt;&lt;font face="Tahoma" size="2"&gt;Preparing Diagram for Export&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;?XML:NAMESPACE PREFIX = O /&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;font face="Tahoma" size="2"&gt;Before you save diagrams as images for embedding into Office documents or publishing on the web, you can use class diagram annotation and customization features to make diagrams better explain your design.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;While working with a class diagram within Visual Studio tool-tips and live code are available right there to look at, this information is not accessible when diagram is saved as an image – thus you might want to display types of members on the diagram using the “Display Member Types” command available from toolbar or diagram context menu.&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;img src="http://www.ramesh.members.winisp.net/images/documentation/UsingClassDesignerToDocumentYourCode1.PNG" /&gt;&lt;/font&gt;&lt;/p&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/b&gt; &lt;p align="justify"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;In case you’re documenting a general-purpose API which will be consumed by external customers, you might want to filter members visible on the diagram to those of public and protected visibility and hide all private/internal details of implementation. You can use “Group by Access” mode of the diagram (available from toolbar) to see all private/internal members in groups and hide groups of members by invoking “Hide Compartment” command on Private or Internal compartments. Another thing to consider would be removing private/internal types from diagrams for public consumption.&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Finally, you can make great use of comment shapes to annotate your diagram to explain design decisions and to clarify the purpose of different elements. To create a comment shape, open the Toolbox tool window, then drag &amp;amp; drop a Comment item on the diagram and enter your annotation text.&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;img src="http://www.ramesh.members.winisp.net/images/documentation/UsingClassDesignerToDocumentYourCode2.PNG" /&gt;&lt;/font&gt;&lt;/p&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/b&gt; &lt;p align="justify"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Here is an example of a class diagram customized for documentation:&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;img src="http://www.ramesh.members.winisp.net/images/documentation/UsingClassDesignerToDocumentYourCode3.PNG" /&gt;&lt;/font&gt;&lt;/p&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/b&gt; &lt;p align="justify"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;b&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;b&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Exporting Diagrams as Images&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;When the diagram(s) are ready for export, simply right-click empty design surface area of the diagram and choose “Export Diagram as Image…” menu item – you will see Export Diagram as Image dialog opened and the active diagram checked in the diagrams list:&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;img src="http://www.ramesh.members.winisp.net/images/documentation/UsingClassDesignerToDocumentYourCode4.PNG" /&gt;&lt;/font&gt;&lt;/p&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/b&gt; &lt;p align="justify"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;If you click Export button now a diagram image with the same name as diagram name and .png extension, designating Portable Network Graphics format, will be created at the same location where your solution (.sln) file is located on disk.&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Lets take a quick look over dialog elements.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;i&gt;&lt;span&gt;Diagrams check list&lt;/span&gt;&lt;/i&gt;&lt;span&gt; – this element allows you to choose diagrams to be exported and contains a full list of all diagrams included in the projects of the currently opened solution.&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;i&gt;&lt;span&gt;Overwrite existing files&lt;/span&gt;&lt;/i&gt;&lt;span&gt; – this option switches on or off the prompt for image file overwrite – when the check-box is set (the default), Class Designer won’t ask you to overwrite existing files.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;i&gt;&lt;span&gt;Export location &lt;/span&gt;&lt;/i&gt;&lt;span&gt;– specifies path of the folder where diagram image files will be created.&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;i&gt;&lt;span&gt;Image format&lt;/span&gt;&lt;/i&gt;&lt;span&gt; – allows you to choose the format of exported images from a list of standard formats (BMP, JPEG, GIF, PNG, TIFF and EMF). If you need a quality/size balance, PNG format is probably a good choice, however if quality is important and/or diagram is large and needs to scale, EMF (Enhanced Metadata Format) might be a better choice.&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;When you click Export and all checked diagrams are exported to specified location in format selected, dialog settings are also stored in the user options file (.suo) for the opened solution. Next time you use the Export dialog, all choices are preserved unless you change it again or remove the .suo file from solution folder.&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;b&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Documentation Scenarios&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Now lets take a look how “Export Diagram as Image” functionality can be used in documentation scenarios.&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;One scenario is when diagrams are published to web and linked from web-pages – in this case most likely there’s a folder on the web-site containing diagram images, so specifying this folder in the “Export Diagram as Image” dialog would directly update the web-site content replacing existing diagram images with the current versions.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;When documentation represents a set of Office documents, diagram images are embedded into the documents. You do so by using “Insert | Picture | From File…” command from Microsoft Word menu. This menu item brings Insert Picture dialog which lets you choose the image to insert. Default behavior of this command is to copy image into the document. However another option might look more attractive from the point of view of continuous updates to diagrams used within the document when code they’re generated from is changing. Instead of storing the image in the Word document itself, store a link to the image file in disk – you can choose this option by clicking on the down arrow icon on the “Insert” button of Insert Picture dialog and choosing “Link to File” or “Insert and Link”:&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;img src="http://www.ramesh.members.winisp.net/images/documentation/UsingClassDesignerToDocumentYourCode5.PNG" /&gt;&lt;/font&gt;&lt;/p&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/b&gt; &lt;p align="justify"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;In case of “Link to File” the document will always display the external image file and in the case of “Insert and Link” the image will still be inserted into the document, however a link to the file on disk will be added so that when the image file is updated, the image stored in the document will be updated as well.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Using image linking option you can keep your design documentation up-to-date with minimal effort by invoking the “Export Diagram as Image” command from Class Designer. Images in design documents will be updated automatically when you update diagram images using Export as Image.&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;b&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Copy Image Command&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Cases when you need to copy/paste just a single class shape or a couple of types with lines from a class diagram to a Word document or e-mail are quite often. Exporting the whole diagram in such situations neither practical nor reasonable. For these cases Copy Image command available on type shapes and/or multiple selection of those comes in handy – this command places the image of current selection on clipboard in BMP and WMF formats. When you paste “Copy Image” result into raster applications such as Paint the BMP format will be placed. Pasting into Word documents will paste a vector-base scalable image of the diagram which doesn’t loose quality/clarity on reasonable resizing.&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;b&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;What is the difference between Copy and Copy Image?&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;You might ask why there are two commands available – Copy and “Copy as Image”? The usual Copy command (available via Ctrl+C) places on clipboard shape information (e.g. for cloning code or copying the shape to another diagram) as well as regular raster BMP image of selection. “Copy Image” command as described above places BMP format as well and WMF format, but doesn’t place shape info, so it can’t be used to copy the shape.&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;Dmitriy Vasyura&lt;br /&gt;Visual Studio Class Designer Team&lt;O:P&gt;&lt;/O:P&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" align="justify"&gt;&lt;span&gt;&lt;O:P&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;img height="1" src="http://blogs.msdn.com/aggbug.aspx?PostID=415026" width="1" /&gt;&lt;/font&gt;&lt;a target="_blank" title="http://blogs.msdn.com/classdesigner/archive/2005/05/05/415026.aspx" href="http://blogs.msdn.com/classdesigner/archive/2005/05/05/415026.aspx"&gt;&lt;font face="Tahoma" size="2"&gt;Original Link&lt;/p&gt;&lt;/font&gt;&lt;/a&gt; &lt;div class="newsitemfooter" align="justify"&gt;&lt;font face="Tahoma" size="2"&gt;Today 05:09 | ClassDesigner&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;font face="Georgia" size="2"&gt;George J.&lt;/font&gt;</description></item><item><title>Class Diagrams in Visual Studio.NET Beta 2</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/1797.aspx</link><pubDate>Sat, 30 Apr 2005 17:36:27 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:1797</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/1797.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=10&amp;PostID=1797</wfw:commentRss><description>&lt;div&gt;&lt;font face="Georgia" size="2"&gt;Μερικοί φεύγουν για το Πάσχα, άλλοι είναι υποχρεωμένοι λόγω ανωτέρας βίας να μείνουν πίσω... Και πως να περάσουν την ώρα τους;&lt;br /&gt;&lt;br /&gt;Χαζεύουν από εδώ και από εκεί: Και βλέπουν ενδιαφέροντα πράγματα &lt;img src="/forums//emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt; &lt;table id="table1" style="BORDER-RIGHT: 2px ridge; BORDER-TOP: 2px ridge; BORDER-LEFT: 2px ridge; BORDER-BOTTOM: 2px ridge" bordercolor="#cccccc" cellspacing="0" cellpadding="0" width="90%" align="center" border="1"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;table id="table2" cellspacing="0" cellpadding="5" width="100%" bgcolor="#eeeeee" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style="BORDER-RIGHT: #003399 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #003399 1px solid; PADDING-LEFT: 1px; FONT-SIZE: 8pt; PADDING-BOTTOM: 1px; BORDER-LEFT: #003399 1px solid; COLOR: #ffffff; PADDING-TOP: 1px; BORDER-BOTTOM: #003399 1px solid; FONT-FAMILY: Marlett; BACKGROUND-COLOR: #003399" align="middle" width="25"&gt;1&lt;/td&gt; &lt;td style="BORDER-RIGHT: #003399 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #003399 1px solid; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: 8pt; PADDING-BOTTOM: 2px; BORDER-LEFT: #003399 1px solid; COLOR: #ffffff; PADDING-TOP: 2px; BORDER-BOTTOM: #003399 1px solid; FONT-FAMILY: Tahoma; BACKGROUND-COLOR: #003399" width="100%"&gt;&lt;font size="2"&gt;Class Diagrams in Visual Studio.NET Beta 2&lt;/font&gt;&lt;/td&gt; &lt;td style="BORDER-RIGHT: #003399 2px solid; PADDING-RIGHT: 1px; BORDER-TOP: #003399 2px solid; PADDING-LEFT: 1px; FONT-WEIGHT: bold; FONT-SIZE: 10pt; PADDING-BOTTOM: 1px; BORDER-LEFT: #003399 2px solid; COLOR: #ffffff; PADDING-TOP: 1px; BORDER-BOTTOM: #003399 2px solid; FONT-FAMILY: Marlett; BACKGROUND-COLOR: #ff0000" width="25"&gt;r&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style="BORDER-RIGHT: 2px groove; BORDER-TOP: 2px groove; FONT-SIZE: 8pt; BORDER-LEFT: 2px groove; BORDER-BOTTOM: 2px groove; FONT-FAMILY: Tahoma; BACKGROUND-COLOR: #ffffff" colspan="3"&gt; &lt;p&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;A few days ago &lt;/font&gt;&lt;a title="http" href="http://codebetter.com/blogs/raymond.lewallen/archive/2005/04/26/62457.aspx"&gt;&lt;u&gt;&lt;font color="#0000ff" size="2"&gt;Raymond Lewallen blogged about refactoring&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;font size="2"&gt; some VB.NET code using interfaces, and abstract classes. I followed up with &lt;/font&gt;&lt;a title="http" href="http://codebetter.com/blogs/john.papa/archive/2005/04/26/62501.aspx"&gt;&lt;u&gt;&lt;font color="#0000ff" size="2"&gt;a C# example of the same code in a blog&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;font size="2"&gt;. I thought this would be interesting to see how it looks in a VS.NET Beta 2 class diagram. One of the nice features that I like about the tool is that it allow syou to export an image of the diagram in a variety of formats. &lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;img alt="" src="http://codebetter.com/photos/jpapa/images/62566/original.aspx" /&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;The class diagram is easy to use … just drag and drop a class onto it. You can right click the classes refactor or add fields, properties, methods, and constants. Nothing glamorous, but when you are a visual developer like me, it often is nice to see the class structure in a diagram like this. Yeah there are tools that do it for you, but now its built in.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p class="ngpostlinks"&gt;&lt;a title="http" style="FONT-SIZE: 10pt; COLOR: #333399; FONT-FAMILY: Tahoma" href="http://codebetter.com/blogs/john.papa/archive/2005/04/27/62560.aspx"&gt;&lt;u&gt;Original Link&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;font face="Georgia" size="2"&gt;Καλό Πάσχα,&lt;br /&gt;George J.&lt;br /&gt;&lt;/font&gt;</description></item></channel></rss>