<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.microsoft.co.il/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>IHateSpaghetti {code}</title><link>http://blogs.microsoft.co.il/blogs/eyal/</link><description>VSX, DSL and Beyond by Eyal Lantzman</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Visual Studio 2010 Pro Power Tools</title><link>http://blogs.microsoft.co.il/blogs/eyal/archive/2010/07/01/visual-studio-2010-pro-power-tools.aspx</link><pubDate>Thu, 01 Jul 2010 16:58:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:673475</guid><dc:creator>Eyal</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/rsscomments.aspx?PostID=673475</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/commentapi.aspx?PostID=673475</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/eyal/archive/2010/07/01/visual-studio-2010-pro-power-tools.aspx#comments</comments><description>&lt;p&gt;Copied from the visual studio gallery page:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef"&gt;&amp;nbsp;Check it out + download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:small;"&gt;&lt;strong&gt;Visual Studio&amp;nbsp;2010&amp;nbsp;Productivity Power Tools&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;A set of extensions to Visual Studio Professional (and above) which improves developer productivity.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Document Well 2010 Plus (&lt;a href="http://blogs.msdn.com/b/visualstudio/archive/2010/06/10/document-well-2010-plus.aspx"&gt;&lt;font color="#0d76c2"&gt;More Info&lt;/font&gt;&lt;/a&gt;)&lt;/strong&gt;&lt;br /&gt;One of the key pieces of feedback that we have received over several versions of Visual Studio is that users want to be able to customize the behaviour of their document tabs. &amp;nbsp;From the ordering of tabs to the position of the close buttons, user can now configure dozens of different options for their tabs.&amp;nbsp; Go to &lt;code&gt;Tools -&amp;gt; Options -&amp;gt; Environment -&amp;gt; Document Tab Well&lt;/code&gt; to configure these options as you prefer: 
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tab Well UI&lt;/strong&gt; 
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Scrollable tabs&lt;/strong&gt;&lt;br /&gt;Maintain spatial consistency of the documents that are included in the document well. 
&lt;li&gt;&lt;strong&gt;Vertical tabs&lt;/strong&gt;&lt;br /&gt;Document tabs are shown vertically, allowing you to fit more tabs than are normally visible when shown horizontally. 
&lt;li&gt;&lt;strong&gt;Pinned tabs&lt;/strong&gt;&lt;br /&gt;Allows you to pin tabs to keep them always visible and available. 
&lt;li&gt;&lt;strong&gt;Show close button in tab well&lt;br /&gt;&lt;/strong&gt;Similar to Visual Studio 2008, will show a close button in the document well that will close the active tab. &lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;&lt;strong&gt;Tab Behavior&lt;/strong&gt; 
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Remove tabs by usage order (LRU)&lt;br /&gt;&lt;/strong&gt;When a new tab is inserted and existing tabs don&amp;#39;t fit in the document well, instead of removing the tab at the end of the well it will remove the least recently used tab. This ensures that frequently used tabs are readily available. &lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Show pinned tabs in a separate row/column&lt;br /&gt;&lt;/strong&gt;Pinning tabs can quickly cause you to run out of space for regular tabs. The option allows you to always show pinned tabs in a separate row (or column, if displayed vertically) from regular tabs. &lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;&lt;strong&gt;Sorting&lt;/strong&gt; 
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sort tabs by project&lt;/strong&gt;&lt;br /&gt;Tabs will be sorted by the project they belong to, thus keeping them always together in the document tab well. 
&lt;li&gt;&lt;strong&gt;Sort tabs alphabetically&lt;br /&gt;&lt;/strong&gt;Tabs will be sorted alphabetically. When Sort By Project is turned on, tabs will be sorted first by project and then alphabetically. 
&lt;li&gt;&lt;strong&gt;Sort tab well dropdown alphabetically&lt;br /&gt;&lt;/strong&gt;The drop down menu at the right end of the document well is sorted alphabetically. This option allows ordering as the tabs are laid out in the document well. &lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;&lt;strong&gt;Tab UI&lt;/strong&gt; 
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Color tabs according to their project or according to regular expressions&lt;br /&gt;&lt;/strong&gt;This option permits tabs to be colored according to the project they belong to. This is particularly useful when sorting tabs by project, as it allows you to immediately identify different groups of project documents.&lt;br /&gt;You can also configure regular expressions and assign a color to each one. If the name of a tab matches the configured regular expression, it will be colored with the assigned color. 
&lt;li&gt;&lt;strong&gt;Miscellaneous options that modify tab UI&lt;/strong&gt; 
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Show document/toolwindow icon in tab&lt;/strong&gt; 
&lt;li&gt;&lt;strong&gt;Show close button in tab&lt;/strong&gt; 
&lt;li&gt;&lt;strong&gt;Modify dirty indicator style&lt;br /&gt;&lt;/strong&gt;This option allows you to select from a set of different dirty indicators that you might prefer over the asterisk. 
&lt;li&gt;&lt;strong&gt;Modify minimum and maximum tab size&lt;br /&gt;&lt;/strong&gt;Allows you to modify minimum and maximum tab size. Try setting minimum and maximum sizes to the same value, and you will have evenly spaced tabs. &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;&lt;strong&gt;Searchable Add Reference Dialog (&lt;a href="http://blogs.msdn.com/b/visualstudio/archive/2010/06/22/what-s-next-for-the-productivity-power-tools.aspx"&gt;&lt;font color="#0d76c2"&gt;More Info&lt;/font&gt;&lt;/a&gt;)&lt;/strong&gt;&lt;br /&gt;The new Add Reference dialog makes it faster and easier for you to find the reference that you are looking for and add it to your VB, C# or F# project.&amp;nbsp; From the Solution Explorer, simply right click on the References node, select the Add Reference command to see the updated Add Reference Dialog.&amp;nbsp; 
&lt;li&gt;&lt;strong&gt;Highlight Current Line&lt;/strong&gt;&lt;br /&gt;As the resolution of monitors increases, it’s becoming more difficult to find the caret in the code editor.&amp;nbsp; The highlight current line extension makes it easy to find the caret by highlighting the line that the caret is on in the editor.&amp;nbsp; You can even configure the default colour by changing the setting for “Current Line (Extension)” and “Current Line Inactive (Extension)” in Tools Options Fonts &amp;amp; Colors.&amp;nbsp; 
&lt;li&gt;&lt;strong&gt;HTML Copy (&lt;a href="http://blogs.msdn.com/b/kirillosenkov/archive/2010/06/07/copy-code-in-html-format-with-visual-studio-2010.aspx"&gt;&lt;font color="#0d76c2"&gt;More Info&lt;/font&gt;&lt;/a&gt;)&lt;/strong&gt;&lt;br /&gt;This extension provides support for the HTML Clipboard format when copying code from the editor.&amp;nbsp; This means that you’ll no longer have to go fix up the formatting of your code when you paste it into a TFS bug form or any other HTML based control.&amp;nbsp; 
&lt;li&gt;&lt;strong&gt;Triple Click&lt;/strong&gt;&lt;br /&gt;It’s never been easier to select a line of code from the mouse by simple triple-clicking anywhere on the line.&amp;nbsp; 
&lt;li&gt;&lt;strong&gt;Fix Mixed Tabs&lt;/strong&gt;&lt;br /&gt;Some developers prefer tabs, others prefer spaces, and nobody likes mixing tabs &amp;amp; spaces.&amp;nbsp; This extension promotes developer harmony by warning as they are open or save a file that has a mixture of tabs &amp;amp; spaces.&amp;nbsp; The information bar also provides an easy way to fix the file to suit your preference.&amp;nbsp; 
&lt;li&gt;&lt;strong&gt;Ctrl + Click Go To Definition&lt;/strong&gt;&lt;br /&gt;This extension gives the editor a web browser by adding clickable hyperlinks to symbols in your code as you hold down the Ctrl key. 
&lt;li&gt;&lt;strong&gt;Align Assignments&lt;/strong&gt;&lt;br /&gt;This extension is useful for making your code a little more readable by aligning the assignments when you type Ctrl+Alt+] such that it takes this:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img alt="" src="http://visualstudiogallery.msdn.microsoft.com/en-us/site/view/file/29667/0/align1.png" width="235" height="89" /&gt;&lt;br /&gt;And turns it into this:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;img alt="" src="http://visualstudiogallery.msdn.microsoft.com/en-us/site/view/file/29668/0/align2.png" width="235" height="84" /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="TEXT-DECORATION:underline;"&gt;Please note:&lt;/span&gt;&lt;/em&gt; This may conflict with your formatting settings. E.g. in C# you will need to disable: &lt;code&gt;Tools-&amp;gt;Options-&amp;gt;Text Editor-&amp;gt;C#-&amp;gt;Formatting-&amp;gt;Spacing-&amp;gt;&amp;quot;Ignore spaces in declaration statements&amp;quot;&lt;/code&gt; 
&lt;li&gt;&lt;strong&gt;Colorized Parameter Help&lt;/strong&gt;&lt;br /&gt;This extension improves consistency with the editor by applying syntax highlighting to the contents of the Parameter Help window for C# &amp;amp;VB.&amp;nbsp; 
&lt;li&gt;&lt;strong&gt;Move Line Up/Down Commands&lt;/strong&gt;&lt;br /&gt;This extension maps the Alt+Up Arrow &amp;amp; Alt+Down Arrow keys such that they will move the current line of code or the selected lines up and down through the editor.&amp;nbsp; 
&lt;li&gt;&lt;strong&gt;Column Guides&lt;/strong&gt;&lt;br /&gt;Since Visual Studio 2002, there has been a not so secret registry key which allowed user to draw a vertical line in the code editor.&amp;nbsp; This is very useful to remind developers that their full line of code or comments may not fit one a single screen. Thanks to this extension this feature has returned with UI configure it.&amp;nbsp; Simply place the cursor at the appropriate column and select Add Guideline from the context menu &lt;span style="TEXT-DECORATION:underline;"&gt;﻿&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=673475" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/VS2010/default.aspx">VS2010</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Extensibility/default.aspx">Extensibility</category></item><item><title>Getting Started with Extending Visual Studio</title><link>http://blogs.microsoft.co.il/blogs/eyal/archive/2010/06/04/getting-started-with-extending-visual-studio.aspx</link><pubDate>Fri, 04 Jun 2010 16:45:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:648431</guid><dc:creator>Eyal</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/rsscomments.aspx?PostID=648431</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/commentapi.aspx?PostID=648431</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/eyal/archive/2010/06/04/getting-started-with-extending-visual-studio.aspx#comments</comments><description>&lt;p&gt;New msdn&amp;nbsp;page on Visual Studio extensibility - &lt;a href="http://code.msdn.microsoft.com/vsvmsdk"&gt;UML Tools, DSL Tools&lt;/a&gt;, IDE, Debugger, and much more.&lt;/p&gt;
&lt;p&gt;Check it out - &lt;a href="http://msdn.microsoft.com/en-us/vstudio/ff677564.aspx"&gt;here&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=648431" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/SDK/default.aspx">SDK</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/VSX/default.aspx">VSX</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/DSL/default.aspx">DSL</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/vs+shell/default.aspx">vs shell</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/UML/default.aspx">UML</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/VS2010/default.aspx">VS2010</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Extensibility/default.aspx">Extensibility</category></item><item><title>Blog post explaining how you can enable a DSL to MEF extensions</title><link>http://blogs.microsoft.co.il/blogs/eyal/archive/2010/05/18/blog-post-explaining-how-you-can-enable-a-dsl-to-mef-extensions.aspx</link><pubDate>Tue, 18 May 2010 17:04:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:621934</guid><dc:creator>Eyal</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/rsscomments.aspx?PostID=621934</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/commentapi.aspx?PostID=621934</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/eyal/archive/2010/05/18/blog-post-explaining-how-you-can-enable-a-dsl-to-mef-extensions.aspx#comments</comments><description>&lt;p&gt;Jean-Marc published a &lt;a href="http://blogs.msdn.com/jmprieur/archive/2010/05/17/enabling-your-dsl-for-mef-extensions.aspx"&gt;nice post&lt;/a&gt; on how to enable a DSL to MEF extensios. There&amp;#39;s &lt;a href="http://blogs.msdn.com/jmprieur/archive/2010/05/18/enabling-your-dsl-for-mef-extensions-follow-up.aspx"&gt;a followup post&lt;/a&gt; for those who migrated from VS2005 and missing the magical &lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:#2b91af;FONT-SIZE:10pt;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-US;mso-bidi-language:HE;"&gt;InternalsVisibleTo&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:11pt;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-US;mso-bidi-language:HE;"&gt; attribute in their AssemblyInfo.cs.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:11pt;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-US;mso-bidi-language:HE;"&gt;For more info on DSL tools see this code gallery page: &lt;a href="http://code.msdn.microsoft.com/vsvmsdk"&gt;http://code.msdn.microsoft.com/vsvmsdk&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:11pt;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-US;mso-bidi-language:HE;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:11pt;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-US;mso-bidi-language:HE;"&gt;Eyal&lt;/span&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=621934" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/SDK/default.aspx">SDK</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/VSSDK/default.aspx">VSSDK</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/DSL/default.aspx">DSL</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/MEF/default.aspx">MEF</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Modeling/default.aspx">Modeling</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/VS2010/default.aspx">VS2010</category></item><item><title>Toolbox items in DSL tools</title><link>http://blogs.microsoft.co.il/blogs/eyal/archive/2010/01/19/toolbox-items-in-dsl-tools.aspx</link><pubDate>Tue, 19 Jan 2010 22:26:44 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:503187</guid><dc:creator>Eyal</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/rsscomments.aspx?PostID=503187</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/commentapi.aspx?PostID=503187</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/eyal/archive/2010/01/19/toolbox-items-in-dsl-tools.aspx#comments</comments><description>&lt;p&gt;In this post:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1) General overview of the way the toolbox items work in &lt;a href="http://code.msdn.microsoft.com/DslTools"&gt;DSL tools for VS2010&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;2) Toolbox related Changes from VS2008 to VS2010&lt;/p&gt;    &lt;p&gt;3) Customization of static toolbox items - how to grouped model elements into single toolbox item&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In VS 2010 we change the way we manage toolbox items from being set explicitly during package initialization to being partially set(*) before the package has been created and initialized. The toolbox items that are set this way called &lt;b&gt;&lt;i&gt;static toolbox item&lt;/i&gt;&lt;/b&gt;&lt;i&gt;s&lt;/i&gt; (vs. &lt;b&gt;&lt;i&gt;dynamic toolbox items&lt;/i&gt;&lt;/b&gt; in VS2008).&lt;/p&gt;  &lt;p&gt;* By partially I mean only the text, tooltip and icon are set (there are few more but they are there for technical reasons) – no action or any DSL-specific information is associated with the toolbox item –practically those toolbox items are stubs until their full initialization.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Q: Why did moved to static toolbox items?&lt;/p&gt;    &lt;p&gt;A: By using this approach we were able to speed up the overall VS loading time because no package will be created (and initialized) prematurely just because it has some toolbox items.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The full initialization will occur when the specific designer will show up and someone will hover the toolbox item and at that point the partial toolbox items will be replaced with &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.modeling.design.modelingtoolboxitem.aspx"&gt;ModelingToolboxItem&lt;/a&gt; that will be created according to the following sequence diagram:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/eyal/image_3ADE1683.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://blogs.microsoft.co.il/blogs/eyal/image_thumb_586FF182.png" width="617" height="393" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;Blue line&lt;/font&gt; – VS will use package.GetToolboxItemData(..) to try and get the toolbox item data for each of the toolbox items ids you’ve hovered to replace it with the stub toolbox item and cache it in VS toolbox cache.&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;Red Line&lt;/font&gt; – Toolbox helper will create an instance of &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.modeling.design.modelingtoolboxitem.aspx"&gt;ModelingToolboxItem&lt;/a&gt; according to the toolbox item id.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Q: How would I add custom static toolbox items that are not mapped to a shape or logically group several model elements into single toolbox item?&lt;/p&gt;    &lt;p&gt;A: The recommended approach is to add class attribute on partial package class (in DslPackage) and extending the ToolboxHelper class (in Dsl) and supporting the new toolbox item id.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Example for language name “MyLanguage”:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Under DslProject project&lt;/u&gt;:&lt;/b&gt;&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// See the generated Package.cs for examples&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; [ProvideStaticToolboxItem(…, “MyNamesSpace.MyNewToolboxItem”,….)]&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;partial&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; MyLangaugePackage : MylLanguagePackageBase&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt; {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;blockquote&gt;
  &lt;p&gt;More info: &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.shell.providestatictoolboxitemattribute(VS.100).aspx"&gt;ProvideStaticToolboxItemAttribute&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;u&gt;Under Dsl project&lt;/u&gt;:&lt;/b&gt;&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;partial&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; MyLanguageToolboxHelper : MyLanguagelToolboxHelperBase&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; ModelingToolboxItem GetToolboxItem(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; itemId, Store store)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;     {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (store == &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt;         {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt;   7:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum8"&gt;   8:&lt;/span&gt;         }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum9"&gt;   9:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (itemId != “MyNamesSpace.MyNewToolboxItem”)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum10"&gt;  10:&lt;/span&gt;         {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum11"&gt;  11:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;.GetToolboxItem(itemId, store);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum12"&gt;  12:&lt;/span&gt;         }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum13"&gt;  13:&lt;/span&gt;&amp;#160; &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum14"&gt;  14:&lt;/span&gt;             &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum15"&gt;  15:&lt;/span&gt;         &lt;span style="color:#008000;"&gt;// return the custom toolbox item instance &lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum16"&gt;  16:&lt;/span&gt;         &lt;span style="color:#008000;"&gt;// see the generated ToolboxHelper.cs code for examples&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum17"&gt;  17:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum18"&gt;  18:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; ModelingToolboxItem(“MyNamesSpace.MyNewToolboxItem”,&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum19"&gt;  19:&lt;/span&gt;                         1, &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum20"&gt;  20:&lt;/span&gt;                         …,&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum21"&gt;  21:&lt;/span&gt;                         …,&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum22"&gt;  22:&lt;/span&gt;                         …,&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum23"&gt;  23:&lt;/span&gt;                         …,&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum24"&gt;  24:&lt;/span&gt;                         …,&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum25"&gt;  25:&lt;/span&gt;                         …,&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum26"&gt;  26:&lt;/span&gt;                         CreateMyCustomPrototype(store), &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum27"&gt;  27:&lt;/span&gt;                         …&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum28"&gt;  28:&lt;/span&gt;                         });&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum29"&gt;  29:&lt;/span&gt;     }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum30"&gt;  30:&lt;/span&gt;&amp;#160; &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum31"&gt;  31:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; ElementGroupPrototype CreateMyCustomPrototype (Store store)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum32"&gt;  32:&lt;/span&gt;     {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum33"&gt;  33:&lt;/span&gt;         ElementGroup elementGroup = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; ElementGroup(store.DefaultPartition);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum34"&gt;  34:&lt;/span&gt;&amp;#160; &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum35"&gt;  35:&lt;/span&gt;         &lt;span style="color:#008000;"&gt;// add all the model elements that create a logical group&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum36"&gt;  36:&lt;/span&gt;         &lt;span style="color:#008000;"&gt;// make sure to set the properties that will be used as defaults&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum37"&gt;  37:&lt;/span&gt;         elementGroup.AddGraph(&lt;span style="color:#008000;"&gt;/*Add model element 1 instance*/&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum38"&gt;  38:&lt;/span&gt;         elementGroup.AddGraph(&lt;span style="color:#008000;"&gt;/*Add model element 2 instance */&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum39"&gt;  39:&lt;/span&gt;         elementGroup.AddGraph(&lt;span style="color:#008000;"&gt;/*Add model element 3 instance */&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum40"&gt;  40:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; elementGroup.CreatePrototype();&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum41"&gt;  41:&lt;/span&gt;     }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum42"&gt;  42:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;More info: &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.modeling.design.modelingtoolboxitem.modelingtoolboxitem.aspx"&gt;ModelingToolboxItem&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=503187" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/SDK/default.aspx">SDK</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/DSL/default.aspx">DSL</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Best+Practices/default.aspx">Best Practices</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/VS2008/default.aspx">VS2008</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/VS10/default.aspx">VS10</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/VS2010/default.aspx">VS2010</category></item><item><title>DslLibraries in VS2010 DSL SDK</title><link>http://blogs.microsoft.co.il/blogs/eyal/archive/2009/11/11/dsllibraries-in-vs2010-dsl-sdk.aspx</link><pubDate>Wed, 11 Nov 2009 17:52:33 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:441832</guid><dc:creator>Eyal</dc:creator><slash:comments>36</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/rsscomments.aspx?PostID=441832</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/commentapi.aspx?PostID=441832</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/eyal/archive/2009/11/11/dsllibraries-in-vs2010-dsl-sdk.aspx#comments</comments><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;One of the new features for DSL in VS2010 is DSL libraries, in this post I will explain how to use the new feature.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Prerequisites&lt;/u&gt;: &lt;a href="http://www.microsoft.com/downloads/info.aspx?na=40&amp;amp;p=1&amp;amp;SrcDisplayLang=en&amp;amp;SrcCategoryId=&amp;amp;SrcFamilyId=f5431a70-b421-4be6-8fd3-6b27abda0817&amp;amp;u=http%3a%2f%2fgo.microsoft.com%2ffwlink%2f%3fLinkID%3d165597" target="_blank"&gt;VS SDK 2010 Beta2&lt;/a&gt; and higher + &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=f5431a70-b421-4be6-8fd3-6b27abda0817&amp;amp;displaylang=en" target="_blank"&gt;DSL SDK 2010 Beta2&lt;/a&gt; and higher.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;DslLibrary is a DSL that is used as a library – you can extended it or just use it with you DslLibrary/DSL.&lt;/p&gt;  &lt;p&gt;In order to start creating DslLibraries:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;1. Start VS and then File-&amp;gt;New-&amp;gt;Project&lt;/p&gt;  &lt;p&gt;2. Find the Domain-Specific Language Designer (under Other Project Type-&amp;gt;Extensibility)&lt;/p&gt;  &lt;p&gt;3. In the wizard choose DslLibrary and click Finish (or proceed with the wizard)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/eyal/image_55E52C5E.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://blogs.microsoft.co.il/blogs/eyal/image_thumb_376AC5A8.png" width="537" height="339" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;4. The wizard will unfold a single project solution with an empty model.&lt;/p&gt;  &lt;p&gt;5. In DSL Explorer window right click on the root node and then add a Domain Class&lt;/p&gt;  &lt;p&gt;6. Switch to Solution Explore Window and regenerate all (the command with the red rectangles surrounding it)&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; Note: For the current example you want be needing the generated code so, just the .dsl file itself.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://blogs.microsoft.co.il/blogs/eyal/image_3330C816.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://blogs.microsoft.co.il/blogs/eyal/image_thumb_570979A3.png" width="683" height="287" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;7. Create another DslLibrary or a DSL.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;8. When the second language is unfolded switch to the DSL Explorer Window&lt;/p&gt;  &lt;p&gt;9. Right click on the root of the tree and choose Add DSL Library Import&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/eyal/image_7A75F83B.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://blogs.microsoft.co.il/blogs/eyal/image_thumb_3599AE3A.png" width="436" height="350" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;10. Select the import and set the file path to the library (relative or absolute), when you hit ENTER, if the path is valid the library will appear in the DSL Explorer Window&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/eyal/image_11B0D6E0.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://blogs.microsoft.co.il/blogs/eyal/image_thumb_5B7F38C3.png" width="476" height="443" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;11. At this point you can use the library in your language.&lt;/p&gt;  &lt;p&gt;Note: as soon as you will consume it in your DSL you will create a dependency that will require the library to be present on the specified path.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=441832" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/SDK/default.aspx">SDK</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/VSSDK/default.aspx">VSSDK</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/DSL/default.aspx">DSL</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Modeling/default.aspx">Modeling</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/VS10/default.aspx">VS10</category></item><item><title>We released the Beta2 version of DSL SDK!</title><link>http://blogs.microsoft.co.il/blogs/eyal/archive/2009/10/22/we-released-the-beta2-version-of-dsl-sdk.aspx</link><pubDate>Thu, 22 Oct 2009 15:42:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:429233</guid><dc:creator>Eyal</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/rsscomments.aspx?PostID=429233</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/commentapi.aspx?PostID=429233</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/eyal/archive/2009/10/22/we-released-the-beta2-version-of-dsl-sdk.aspx#comments</comments><description>&lt;p&gt;As of yesterday, you can &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=f5431a70-b421-4be6-8fd3-6b27abda0817&amp;amp;displaylang=en" target="_blank"&gt;download&lt;/a&gt; the new version of the &lt;a href="http://code.msdn.microsoft.com/DslTools" target="_blank"&gt;DSL SDK&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;We fixed some bugs and we added some really cool features such as better templates for WPF and Winforms based designers, T4 code generation at build time, domain model extensibility (you can even extend the Dsl designer itself), and DslLibraries and much more. For the full list see &lt;a href="http://blogs.msdn.com/jmprieur/archive/2009/10/22/we-released-the-dsl-sdk-for-visual-studio-beta2-this-morning.aspx" target="_blank"&gt;Jean-Marc&amp;#39;s post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;There&amp;#39;s a known issue with debugging Dsl designers using F5 - the toolbox items won&amp;#39;t appear in the exp hive. In order to work around this (until the RC) you will have to run using CTRL+F5 (without debugging) and after the exphive will showup you will be able to attach the debugger. See &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/vstsprerelease/thread/48857aea-a838-4d7f-9cf6-cd9f2a5956a6/" target="_blank"&gt;this &lt;/a&gt;thread of more info.&lt;/p&gt;
&lt;p&gt;Have fun&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=429233" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/SDK/default.aspx">SDK</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/DSL/default.aspx">DSL</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/T4/default.aspx">T4</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/VS10/default.aspx">VS10</category></item><item><title>DSL Tools samples</title><link>http://blogs.microsoft.co.il/blogs/eyal/archive/2009/06/29/dsl-tools-samples.aspx</link><pubDate>Mon, 29 Jun 2009 16:29:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:348142</guid><dc:creator>Eyal</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/rsscomments.aspx?PostID=348142</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/commentapi.aspx?PostID=348142</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/eyal/archive/2009/06/29/dsl-tools-samples.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/jmprieur"&gt;Jean-Marc&lt;/a&gt; has released another sample over the weekend:&lt;/p&gt;
&lt;p&gt;Domain Model Extensibility, here is a quote from his &lt;a href="http://blogs.msdn.com/jmprieur/archive/2009/06/27/new-sample-demonstrating-the-domain-model-extensibility.aspx"&gt;post&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;The sample presents a DSL to explain the architecture of a multi-Tiered application. Each tier is made of components, which have ports. Connections are made between output ports and input ports. What is new is that a Domain Model Extension will add a “Security Extension” thus providing to the toolbox new items (an Audit Log), to a Tier new decorators, to Ports three new Domain properties related to the HTTP security, new validation methods, and new rules. I’m pretty sure you’ll like this sample very much.&amp;quot;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;You can find this sample and the other samples at: &lt;a href="http://code.msdn.microsoft.com/DslTools"&gt;http://code.msdn.microsoft.com/DslTools&lt;/a&gt; &lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=348142" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/SDK/default.aspx">SDK</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/DSL/default.aspx">DSL</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/VS10/default.aspx">VS10</category></item><item><title>WPF Toolkit June 2009 </title><link>http://blogs.microsoft.co.il/blogs/eyal/archive/2009/06/25/wpf-toolkit-june-2009.aspx</link><pubDate>Thu, 25 Jun 2009 23:15:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:346160</guid><dc:creator>Eyal</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/rsscomments.aspx?PostID=346160</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/commentapi.aspx?PostID=346160</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/eyal/archive/2009/06/25/wpf-toolkit-june-2009.aspx#comments</comments><description>&lt;p&gt;Check out the &lt;a class="" href="http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=29117"&gt;new WPF toolkit&lt;/a&gt; that was released today on &lt;a class="" href="http://wpf.codeplex.com/"&gt;WPF codeplex site&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The new stuff:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Chart Controls &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Bug fixes for common issues, including: &lt;br /&gt;&amp;nbsp;- DataGrid.DeleteCommand requires a current cell (as reported here) &lt;br /&gt;&amp;nbsp;- DataGridColumn DisplayIndex ArgumentOutOfRange exception (as reported here) &lt;br /&gt;&amp;nbsp;- DatePicker IsEnabled=False does not gray out (as reported here) &lt;br /&gt;&amp;nbsp;- DatePicker Enter, Escape, and Spacebar inputs do not correctly commit/cancel edits and close the popup &lt;br /&gt;&amp;nbsp;- VSM steady state animations fail to run&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;a class="FileNameLink" id="ctl00_ctl00_MasterContent_Content_ReleasePanelOrderingContainer_ReleaseFilesCtrl_FileList_ctl00_FileNameHyperLink" href="http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=29117#DownloadId=72610"&gt;&lt;font color="#3e62a6"&gt;WPFToolkitBinaries&lt;/font&gt;&lt;/a&gt; &lt;a class="FileNameLink" id="ctl00_ctl00_MasterContent_Content_ReleasePanelOrderingContainer_ReleaseFilesCtrl_FileList_ctl01_FileNameHyperLink" href="http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=29117#DownloadId=72912"&gt;&lt;font color="#3e62a6"&gt;WPFToolkitBinariesAndSource&lt;/font&gt;&lt;/a&gt; &lt;br /&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=346160" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category></item><item><title>DSL 2010 Beta1 Sample: ModelBus</title><link>http://blogs.microsoft.co.il/blogs/eyal/archive/2009/06/01/dsl-2010-beta1-sample-modelbus.aspx</link><pubDate>Tue, 02 Jun 2009 04:16:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:323053</guid><dc:creator>Eyal</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/rsscomments.aspx?PostID=323053</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/commentapi.aspx?PostID=323053</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/eyal/archive/2009/06/01/dsl-2010-beta1-sample-modelbus.aspx#comments</comments><description>&lt;p&gt;The first&amp;nbsp;DSL SDK 2010 Beta1 was &lt;a href="http://blogs.msdn.com/jmprieur/archive/2009/06/01/a-modelbus-sample-is-now-available.aspx" target="_blank"&gt;just added by Jean-Marc&lt;/a&gt; and it demonstrates the usage of our new feature - ModelBus, used for model referencing.&lt;/p&gt;
&lt;p&gt;The code and the documentation is available here: &lt;a href="http://code.msdn.microsoft.com/DslTools"&gt;http://code.msdn.microsoft.com/DslTools&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Side note: check out my first feature as MS employee - the ModelBus Picker - the WPF-based reference picker that&amp;nbsp;pops when you click on the ellipsis for&amp;nbsp;ModelBusReference typed properties ;-)&lt;/p&gt;
&lt;p&gt;Feedback is appreciated&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=323053" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/SDK/default.aspx">SDK</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/DSL/default.aspx">DSL</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/VS10/default.aspx">VS10</category></item><item><title>Announcing the Visual Studio 2010 DSL SDK Beta 1 </title><link>http://blogs.microsoft.co.il/blogs/eyal/archive/2009/05/22/announcing-the-visual-studio-2010-dsl-sdk-beta-1.aspx</link><pubDate>Fri, 22 May 2009 16:23:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:301546</guid><dc:creator>Eyal</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/rsscomments.aspx?PostID=301546</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/commentapi.aspx?PostID=301546</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/eyal/archive/2009/05/22/announcing-the-visual-studio-2010-dsl-sdk-beta-1.aspx#comments</comments><description>&lt;p&gt;Jean-Marc has just &lt;a href="http://blogs.msdn.com/jmprieur/archive/2009/05/22/announcing-the-visual-studio-2010-dsl-sdk-beta-1.aspx" target="_blank"&gt;announced&lt;/a&gt; about our release of DSL SDK for VS2010 Beta1 !&lt;/p&gt;
&lt;p&gt;In that posts he covers about the new features we&amp;#39;ve added, sample and more!&lt;/p&gt;
&lt;p&gt;We have a new code gallary page that is worth checking out: &lt;a href="http://code.msdn.microsoft.com/DslTools"&gt;http://code.msdn.microsoft.com/DslTools&lt;/a&gt;&amp;nbsp;(I planning to write a sample regarind our new WPF databinding features in the next week or two).&amp;nbsp; You can download the SDK &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=390fbb56-4e2c-4585-8f0c-ef51cf4cc93e&amp;amp;displaylang=en" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Cheers&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=301546" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/SDK/default.aspx">SDK</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/VSX/default.aspx">VSX</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/DSL/default.aspx">DSL</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/VS10/default.aspx">VS10</category></item><item><title>Visual Studio 2010 and .NET FX 4 Beta 1 ships!</title><link>http://blogs.microsoft.co.il/blogs/eyal/archive/2009/05/18/visual-studio-2010-and-net-fx-4-beta-1-ships.aspx</link><pubDate>Mon, 18 May 2009 21:16:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:296584</guid><dc:creator>Eyal</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/rsscomments.aspx?PostID=296584</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/commentapi.aspx?PostID=296584</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/eyal/archive/2009/05/18/visual-studio-2010-and-net-fx-4-beta-1-ships.aspx#comments</comments><description>&lt;span&gt;Today, we are releasing Beta 1 of Visual Studio 2010&amp;nbsp;and .NET FX 4.&amp;nbsp; If you are a MSDN subscriber, you can download the Beta today from &lt;a title="VS2010 Beta 1 Download for MSDN" href="http://msdn.microsoft.com/subscriptions/downloads/default.aspx?pv=18:370"&gt;here&lt;/a&gt;.&amp;nbsp; For the rest of the world, the Beta will be publicly available on Wednesday.&lt;/span&gt; &lt;span&gt;To find out how to download the beta and where to share your feedback, please visit the &lt;/span&gt;&lt;span&gt;&lt;a href="http://www.microsoft.com/visualstudio/products/2010/default.mspx"&gt;Visual Studio 2010 Product Page&lt;/a&gt;.&lt;/span&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=296584" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/VS10/default.aspx">VS10</category></item><item><title>Win7 specific .NET API</title><link>http://blogs.microsoft.co.il/blogs/eyal/archive/2009/04/21/win7-specific-net-api.aspx</link><pubDate>Tue, 21 Apr 2009 20:13:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:272593</guid><dc:creator>Eyal</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/rsscomments.aspx?PostID=272593</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/commentapi.aspx?PostID=272593</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/eyal/archive/2009/04/21/win7-specific-net-api.aspx#comments</comments><description>&lt;p&gt;Windows 7 specific APIs include demo , labs and presentaions:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;a class="" href="http://code.msdn.microsoft.com/SensorsAndLocation" target="_blank"&gt;Windows 7 Sensor and Location .NET Interop Sample Library&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;a class="" href="http://code.msdn.microsoft.com/WindowsTouch" target="_blank"&gt;Windows 7 Multitouch .NET Interop Sample Library&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;a class="" href="http://code.msdn.microsoft.com/Windows7Taskbar" target="_blank"&gt;Windows 7 Taskbar and Libraries .NET Interop Sample Library&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;Have fun&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=272593" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Windows+7/default.aspx">Windows 7</category></item><item><title>WPF stuff and multi touch</title><link>http://blogs.microsoft.co.il/blogs/eyal/archive/2009/03/27/wpf-stuff-and-multi-touch.aspx</link><pubDate>Fri, 27 Mar 2009 19:21:23 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:259571</guid><dc:creator>Eyal</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/rsscomments.aspx?PostID=259571</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/commentapi.aspx?PostID=259571</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/eyal/archive/2009/03/27/wpf-stuff-and-multi-touch.aspx#comments</comments><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Are you intrigued by multi touch? The Windows Engineering team just posted a great article on how Touch was implemented in Windows 7 and on how software developers can tap into this: &lt;a href="http://blogs.msdn.com/e7/archive/2009/03/25/touching-windows-7.aspx#comments"&gt;http://blogs.msdn.com/e7/archive/2009/03/25/touching-windows-7.aspx#comments&lt;/a&gt;    &lt;br /&gt;Check out these labs to find out how you can use Windows 7 touch with WPF 3.5 SP1: &lt;a href="http://code.msdn.microsoft.com/WindowsTouch"&gt;http://code.msdn.microsoft.com/WindowsTouch&lt;/a&gt;    &lt;br /&gt;This WPF 4.0 session from PDC shows you what you can expect next: &lt;a href="http://channel9.msdn.com/pdc2008/PC03/"&gt;http://channel9.msdn.com/pdc2008/PC03/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;And here’s another cool thing this is the official quote from the WPF Tree Services &amp;amp; Controls Team:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;We shipped some great new updates to the WPF Toolkit and WPF Futures on Codeplex earlier this week.&amp;#160; These included an updated version of the &lt;a href="http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=25047"&gt;WPF Toolkit&lt;/a&gt; with over 20 high-priority bug fixes for DataGrid, DatePicker, &amp;amp; Calendar, and also a package of &lt;a href="http://wpf.codeplex.com/Wiki/View.aspx?title=WPF%20Themes&amp;amp;referringTitle=Home"&gt;WPF Themes&lt;/a&gt; (matching those shipped with the &lt;a href="http://silverlight.codeplex.com/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%203"&gt;Silverlight Toolkit&lt;/a&gt;) as a new addition to the &lt;a href="http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=14962"&gt;WPF Futures&lt;/a&gt;.&amp;#160; We’ve also added a pointer to &lt;a href="http://blogs.msdn.com/delay/archive/2009/03/20/silverlight-charting-remains-just-a-click-away-and-runs-on-wpf-too-chartbuilder-sample-and-source-code-updated-for-charting-s-march-09-release.aspx"&gt;David Anson’s blog post&lt;/a&gt; with a preview of the WPF Chart Controls which are being written by the Presentation Platform Controls (PPC) team (the team who produces the Silverlight Toolkit).&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;img src="http://blogs.msdn.com/blogfiles/delay/ChartBuilder-Mar09-SL.png" alt="" /&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=259571" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/.NET+3.5SP1/default.aspx">.NET 3.5SP1</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/VS2008/default.aspx">VS2008</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Windows+7/default.aspx">Windows 7</category></item><item><title>System.Net traces</title><link>http://blogs.microsoft.co.il/blogs/eyal/archive/2009/03/24/system-net-traces.aspx</link><pubDate>Wed, 25 Mar 2009 03:43:08 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:257430</guid><dc:creator>Eyal</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/rsscomments.aspx?PostID=257430</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/commentapi.aspx?PostID=257430</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/eyal/archive/2009/03/24/system-net-traces.aspx#comments</comments><description>&lt;p&gt;Found &lt;a href="http://blogs.msdn.com/jpsanders/archive/2009/03/24/my-favorite-system-net-trace-configuration-file-dumps-process-id-and-date-time-information.aspx" target="_blank"&gt;this useful post&lt;/a&gt; you might want to know how to add tracing information for System.Net namespace:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;configuration&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;system.diagnostics&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;trace autoflush=&amp;quot;true&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;sources&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;source name=&amp;quot;System.Net&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;listeners&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;add name=&amp;quot;System.Net&amp;quot;/&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/listeners&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/source&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;source name=&amp;quot;System.Net.HttpListener&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;listeners&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;add name=&amp;quot;System.Net&amp;quot;/&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/listeners&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/source&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;source name=&amp;quot;System.Net.Sockets&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;listeners&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;add name=&amp;quot;System.Net&amp;quot;/&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/listeners&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/source&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;source name=&amp;quot;System.Net.Cache&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;listeners&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;add name=&amp;quot;System.Net&amp;quot;/&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/listeners&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/source&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/sources&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;sharedListeners&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;add      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; name=&amp;quot;System.Net&amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; type=&amp;quot;System.Diagnostics.TextWriterTraceListener&amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; initializeData=&amp;quot;System.Net.trace.log&amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; traceOutputOptions = &amp;quot;ProcessId, DateTime&amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/sharedListeners&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;switches&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;add name=&amp;quot;System.Net&amp;quot; value=&amp;quot;Verbose&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;add name=&amp;quot;System.Net.Sockets&amp;quot; value=&amp;quot;Verbose&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;add name=&amp;quot;System.Net.Cache&amp;quot; value=&amp;quot;Verbose&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;add name=&amp;quot;System.Net.HttpListener&amp;quot; value=&amp;quot;Verbose&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/switches&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/system.diagnostics&amp;gt;      &lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=257430" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/.NET+3.0/default.aspx">.NET 3.0</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Debug/default.aspx">Debug</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category></item><item><title>GDI vs GDI+ text rendering and measuring</title><link>http://blogs.microsoft.co.il/blogs/eyal/archive/2009/03/19/gdi-vs-gdi-text-rendering-and-measuring.aspx</link><pubDate>Thu, 19 Mar 2009 17:07:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:252249</guid><dc:creator>Eyal</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/rsscomments.aspx?PostID=252249</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/eyal/commentapi.aspx?PostID=252249</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/eyal/archive/2009/03/19/gdi-vs-gdi-text-rendering-and-measuring.aspx#comments</comments><description>&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;I was investigate a GDI/GDI+ related bug the other day and I found out that GDI+ doesn’t render RTL text very well. In order to render it correctly you need to render it using GDI.&lt;/font&gt;&lt;/p&gt;&lt;u&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;GDI+ Text rendering&lt;/font&gt;&lt;/font&gt;&lt;/u&gt; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;This is done by &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.drawing.graphics.aspx"&gt;&lt;font face="Calibri" size="3"&gt;Graphics.DrawString(…) / Graphics.MeasureString(..)&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;u&gt;&lt;font face="Calibri" size="3"&gt;GDI Text rendering&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;This is done by &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.textrenderer.aspx"&gt;&lt;font face="Calibri" size="3"&gt;TextRenderer.DrawText(..) / TextRenderer.MeasureText(…)&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;The interesting thing about GDI text measuring is that it sometimes the measured size might be larger than the maximum size so be aware of that!&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;Another point is to be aware of the &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.drawing.graphicsunit.aspx"&gt;&lt;font face="Calibri" size="3"&gt;GraphicsUnit&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri" size="3"&gt; in the &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.drawing.font.unit.aspx"&gt;&lt;font face="Calibri" size="3"&gt;Graphic.PageUnit&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri" size="3"&gt; instance vs. &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.drawing.font.unit.aspx"&gt;&lt;font face="Calibri" size="3"&gt;Font.Unit&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri" size="3"&gt; if one in pixels and the other is inches than it’s like comparing melons to oranges.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;&lt;u&gt;Test application&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;I&amp;#39;ve &lt;a class="" href="http://blogs.microsoft.co.il/blogs/eyal/GDIvsGDI+.zip"&gt;created this test application&lt;/a&gt; that might help you to see the differences between the two rendering technologies. &lt;/font&gt;&lt;/p&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;u&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Additional resources&lt;/font&gt;&lt;/font&gt;&lt;/u&gt; 
&lt;ul&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;a href="http://windowsclient.net/articles/gdiptext.aspx"&gt;&lt;font face="Calibri" color="#0000ff" size="3"&gt;http://windowsclient.net/articles/gdiptext.aspx&lt;/font&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;a href="http://support.microsoft.com/kb/307208"&gt;&lt;font face="Calibri" color="#0000ff" size="3"&gt;http://support.microsoft.com/kb/307208&lt;/font&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;a href="http://blogs.msdn.com/cjacks/archive/2006/05/19/gdi-vs-gdi-text-rendering-performance.aspx"&gt;&lt;font face="Calibri" color="#0000ff" size="3"&gt;http://blogs.msdn.com/cjacks/archive/2006/05/19/gdi-vs-gdi-text-rendering-performance.aspx&lt;/font&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=252249" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Winforms/default.aspx">Winforms</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/.NET+2.0/default.aspx">.NET 2.0</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Debug/default.aspx">Debug</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/Testing/default.aspx">Testing</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/eyal/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category></item></channel></rss>