<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-32841709</atom:id><lastBuildDate>Thu, 07 Mar 2024 07:22:43 +0000</lastBuildDate><category>c#</category><category>open-source</category><category>tips</category><category>tool</category><category>visual studio</category><category>.net</category><category>xbox-live-indie-games</category><category>xna</category><title>Steve Dunn&#39;s Blog</title><description>This blog was generated by a tool.</description><link>http://stevedunns.blogspot.com/</link><managingEditor>noreply@blogger.com (Steve Dunn)</managingEditor><generator>Blogger</generator><openSearch:totalResults>78</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-4252386929704098458</guid><pubDate>Sun, 08 Jan 2012 19:35:00 +0000</pubDate><atom:updated>2012-01-08T19:45:28.667+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.net</category><category domain="http://www.blogger.com/atom/ns#">c#</category><category domain="http://www.blogger.com/atom/ns#">open-source</category><category domain="http://www.blogger.com/atom/ns#">tool</category><category domain="http://www.blogger.com/atom/ns#">xbox-live-indie-games</category><category domain="http://www.blogger.com/atom/ns#">xna</category><title>Announcing a new version of the Gleed 2D XNA tool</title><description>&lt;p&gt;I’ve spent some time over the Summer and Autumn of 2011 rewriting the &lt;a href=&quot;https://github.com/SteveDunn/Gleed2D/wiki&quot; target=&quot;_blank&quot;&gt;Gleed 2D tool&lt;/a&gt;.&amp;nbsp; This is a tool for editing levels for 2D games and is a very popular tool in the XNA community for games running on XBox and Windows Phone. &lt;/p&gt; &lt;p&gt;Most of the changes in the new version are under-the-hood.&amp;nbsp; The biggest change has been to make it have a plug-in architecture.&amp;nbsp; There has also been a few UI changes though; here’s some screen-shots.&lt;/p&gt; &lt;h5&gt;The original tool before being re-written:&lt;/h5&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY-GJnE6AdHuRWcOc_c9AfJyjZG0wGiZK31FYY89TIUKQSQjHkn1D5zwfGBzenRXETrtzjInNK0uG4-WeGdjfowvhZZCuHQvpi6dwG4LjZotnR2mKp20wFLbESKQxdJcR9xKFQnw/s1600-h/gleed-original%25255B2%25255D.jpg&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;gleed-original&quot; border=&quot;0&quot; alt=&quot;gleed-original&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLHwYMtoZytLTRXDaItRYqLhhawJL6W8UjYk1aH5T8GfLMdyIiZ0EX2Ggj4_onLxLGw0morYyyNe8qfYeLogAMcz0-Mc7MHW-MjXgbLptgjFmFh-YXj0okEDu7IIghEh6ZGj_AZA/?imgmax=800&quot; width=&quot;244&quot; height=&quot;186&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;h5&gt;and here’s the new version:&lt;/h5&gt; &lt;h5&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDG63gZttkMibciLfy1rik1hGK-rYv1Pqp4V1nrUETN6Jx_ll802wdKMpQ3ouIcJjJD3cakInUc189cu7nQ_rdKQk7mfAR3nBYhne1tu0tXrk6FMKi_XalsXYV3qpwW5j6Z1ANLQ/s1600-h/new-annotated%25255B2%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;new-annotated&quot; border=&quot;0&quot; alt=&quot;new-annotated&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHDy16SP8ZEHH4qWm2_rf5g6WEXH5gjM4DkBYayVVPliWWg7kUWddjiGqcRy0WJKsLOf02Ju5FvEsgjuSCQcHKtQiqmroH7pypxX7-DCTU_NgVk4sY5dI7T9lj-HHtzgIYzGYVXQ/?imgmax=800&quot; width=&quot;244&quot; height=&quot;199&quot;&gt;&lt;/a&gt;&lt;/h5&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The main reason for rewriting the tool was that I wanted to add more features to it but found that it wasn’t easy.&amp;nbsp; It wasn’t easy because it was originally written to just handle the basics needed for creating and editing levels.&lt;/p&gt; &lt;p&gt;The features that I wanted to add were for the next version of &lt;a href=&quot;http://marketplace.xbox.com/en-US/Product/Crazy-Balloon-Lite/66acd000-77fe-1000-9115-d80258550914&quot; target=&quot;_blank&quot;&gt;my game&lt;/a&gt; (&lt;a href=&quot;http://www.youtube.com/watch?v=-H3099NgokM&quot; target=&quot;_blank&quot;&gt;video here&lt;/a&gt;). I wanted to include lighting and shadows and&amp;nbsp; I wanted to design these on the canvas.&lt;/p&gt; &lt;p&gt;Instead of shoe-horning my changes into the original Gleed 2D source, I decided it’d be best to rewrite it and change it to a plug-in based tool.&lt;/p&gt; &lt;p&gt;So, now everything is a plug-in.&amp;nbsp; The basic shapes (rectangle, circle, path) and textures are now plug-ins.&amp;nbsp; Lighting (lights and shadows) is now a plug-in.&amp;nbsp; There’s also a plug-in for simple ‘behaviour’.&lt;/p&gt; &lt;p&gt;Here’s a quick video showing how to use the basic shapes and textures:&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:f36e7a50-87e7-4598-8f1b-5a8bc1bd9d44&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;div&gt;&lt;object width=&quot;448&quot; height=&quot;252&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/9UitcINDDjc?hl=en&amp;amp;hd=1&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/9UitcINDDjc?hl=en&amp;amp;hd=1&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;448&quot; height=&quot;252&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div style=&quot;width:448px;clear:both;font-size:.8em&quot;&gt;Basic shapes and textures&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Here’s a short video showing lighting:&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:94f2fdb3-5562-4b7b-9cc7-3a1d65c70bdf&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;div&gt;&lt;object width=&quot;448&quot; height=&quot;252&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/2a4shMgRQrk?hl=en&amp;amp;hd=1&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/2a4shMgRQrk?hl=en&amp;amp;hd=1&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;448&quot; height=&quot;252&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div style=&quot;width:448px;clear:both;font-size:.8em&quot;&gt;Lights and shadows&lt;/div&gt;&lt;/div&gt; &lt;p&gt;and lastly, here’s a short video showing simple behaviours:&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:50a1baf5-a94f-48ca-96a5-dbe8a79f71fb&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;div&gt;&lt;object width=&quot;448&quot; height=&quot;252&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/rFReB6OzYT0?hl=en&amp;amp;hd=1&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/rFReB6OzYT0?hl=en&amp;amp;hd=1&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;448&quot; height=&quot;252&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div style=&quot;width:448px;clear:both;font-size:.8em&quot;&gt;Simple behaviours&lt;/div&gt;&lt;/div&gt; &lt;p&gt;The tool is still currently a bit rough.&amp;nbsp; There’s various &lt;a href=&quot;https://github.com/SteveDunn/Gleed2D/issues&quot; target=&quot;_blank&quot;&gt;bugs&lt;/a&gt; that need to be fixed, but none of them stop the tool from doing what it was designed to do.&amp;nbsp; The project is now quick big, so I’m hoping that the community will jump in and add/fix stuff.&amp;nbsp; I’d like to see plug-ins for physics and particle systems.&lt;/p&gt; &lt;p&gt;Feel free to download the source and play around.&lt;/p&gt;  </description><link>http://stevedunns.blogspot.com/2012/01/announcing-new-version-of-gleed-2d-xna.html</link><author>noreply@blogger.com (Steve Dunn)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLHwYMtoZytLTRXDaItRYqLhhawJL6W8UjYk1aH5T8GfLMdyIiZ0EX2Ggj4_onLxLGw0morYyyNe8qfYeLogAMcz0-Mc7MHW-MjXgbLptgjFmFh-YXj0okEDu7IIghEh6ZGj_AZA/s72-c?imgmax=800" height="72" width="72"/><thr:total>8</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-2313438609525475397</guid><pubDate>Wed, 17 Aug 2011 21:45:00 +0000</pubDate><atom:updated>2011-08-17T21:45:38.133+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">c#</category><category domain="http://www.blogger.com/atom/ns#">open-source</category><title>A fast way of converting C# enums to strings–and back again.</title><description>&lt;p&gt;I recently needed a fast way of converting lots of enums to strings (and back again).&amp;nbsp; I needed to do it very quickly.&amp;nbsp; ‘Enum.Parse’ just wasn’t fast enough.&lt;/p&gt; &lt;p&gt;I discovered there was no ‘enum mapper’ in C#, so I knocked up &lt;a href=&quot;https://gist.github.com/1152680&quot; target=&quot;_blank&quot;&gt;this little class&lt;/a&gt;.&amp;nbsp; It uses reflection just once when it comes across a new enum.&lt;/p&gt; &lt;p&gt;It’s compatible with .NET 3.5 too.&lt;/p&gt;  </description><link>http://stevedunns.blogspot.com/2011/08/fast-way-of-converting-c-enums-to.html</link><author>noreply@blogger.com (Steve Dunn)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-1035053383948661691</guid><pubDate>Wed, 11 May 2011 19:41:00 +0000</pubDate><atom:updated>2011-05-11T20:02:35.115+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">c#</category><category domain="http://www.blogger.com/atom/ns#">tips</category><title>Handy use of extension method on a bool</title><description>&lt;p&gt;I don’t like to overuse if/else statements.&amp;nbsp; I really dislike seeing code like this:&lt;br&gt;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9D7513F9-C04C-4721-824A-2B34F0212519:f1bbbcac-31e8-4858-8cd5-20cf6aae7216&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;pre style=&quot; width: 331px; height: 179px;background-color:White;overflow: auto;&quot;&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(somethingIsTrue)
{
  DoSomethingWhenTrue( ) ;
}
&lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;
{
  DoSomethingElse( ) ;
}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn&#39;s Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;
&lt;p&gt;I just had an idea about using extension methods so I can write this instead:&lt;/p&gt;
&lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9D7513F9-C04C-4721-824A-2B34F0212519:d9b6af4f-2a93-40df-bf8b-9ae4c50e3235&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;pre style=&quot; width: 362px; height: 83px;background-color:White;overflow: auto;&quot;&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style=&quot;color: #000000;&quot;&gt;somethingIsTrue.Branch(
        ( ) &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; DoSomethingWhenTrue( ),
        ( ) &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; DoSomethingElse( ) ) ;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn&#39;s Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;
&lt;p&gt;… and here’s the extension method:&lt;/p&gt;
&lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9D7513F9-C04C-4721-824A-2B34F0212519:d2f9eb5e-9d05-4da9-a201-ecd61e617371&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;pre style=&quot; width: 664px; height: 245px;background-color:White;overflow: auto;&quot;&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; Branch(&lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;bool&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; @bool, Action left, Action right)
{
  &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;( @bool )
  {
    left( ) ;
  }
  &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;
  {
    right( ) ;
  }
}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn&#39;s Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;Nice or not? I think it reads a bit better (for single line expressions anyway).  </description><link>http://stevedunns.blogspot.com/2011/05/handy-use-of-extension-method-on-bool.html</link><author>noreply@blogger.com (Steve Dunn)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-30228031332473213</guid><pubDate>Sun, 11 Jul 2010 13:13:00 +0000</pubDate><atom:updated>2010-07-11T13:13:59.251+00:00</atom:updated><title>New version (2.5) of the Code Formatter Plug-in for Windows Live Writer</title><description>&lt;p&gt;A new version of my code formatter plug-in for Windows Live Writer can be found at &lt;a href=&quot;http://tinyurl.com/3483vwh&quot;&gt;http://tinyurl.com/3483vwh&lt;/a&gt;&lt;/p&gt;  </description><link>http://stevedunns.blogspot.com/2010/07/new-version-25-of-code-formatter-plug.html</link><author>noreply@blogger.com (Steve Dunn)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-4008185928980470339</guid><pubDate>Wed, 14 Apr 2010 11:54:00 +0000</pubDate><atom:updated>2010-04-14T11:59:44.865+00:00</atom:updated><title>Summon Method</title><description>&lt;blockquote&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&quot;Summon Method&quot;&lt;/span&gt;
A method that gets or creates something.&lt;/blockquote&gt;A common question (well, I&#39;ve seen it asked a few times), is &lt;span style=&quot;font-weight: bold;&quot;&gt;what should I call a method the gets or creates something?&lt;/span&gt;

Instead of &lt;pre&gt;Foo GetOrCreateFoo()&lt;/pre&gt;use:
&lt;pre&gt;Foo SummonFoo()&lt;/pre&gt;
What do you think?</description><link>http://stevedunns.blogspot.com/2010/04/summon-method.html</link><author>noreply@blogger.com (Steve Dunn)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-4437544393809635168</guid><pubDate>Thu, 25 Feb 2010 21:02:00 +0000</pubDate><atom:updated>2011-09-17T16:24:24.641+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">tool</category><category domain="http://www.blogger.com/atom/ns#">visual studio</category><title>A tool to switch project files between using Visual Studio 2008 and 2010</title><description>&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijdxTQ945yo2ZC-RqvpCfNsFiFdyBbgcpfQPCvTScfqG7A9KySPVh4Lj3nm_LiqmLMrsIIBnqESYZrBSoopA9OttxNbUKDdw2eVD3SCwKzYO-eCPuh0JjEVz-EgEQOXBMBxUp9rg/s1600-h/toolbox10.jpg&quot;&gt;&lt;img style=&quot;border-width: 0px; margin: 0px; display: inline;&quot; title=&quot;tool-box&quot; alt=&quot;tool-box&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6xaSa8qb-wgAM3AbbyQ2w5eDb0WttepyYE0q5yHwBE_j0XOhNSufurqEc9HCAfsegGGIA7H19wShkMbw3n79pNfMRQ1Vbp2EerYUCAq8bOknuBtLIBworSICHuFlyVtoIoZCkMA/?imgmax=800&quot; align=&quot;right&quot; border=&quot;0&quot; height=&quot;162&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;i&gt;&lt;b&gt;Update: the source is now on &lt;a href=&quot;https://github.com/SteveDunn/SwitchVsVersion&quot;&gt;GitHub&lt;/a&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Visual Studio 2010 is almost here.  Visual Studio 2010 (the release candidate) &lt;strong&gt;is here&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;I’ll describe the problem before I describe the tool:  You want to use the latest version of Visual Studio but you don’t want it to modify all of your projects and solutions because you’ve got other team members who don’t want to (or can’t) switch to 2010.&lt;/p&gt;  &lt;p&gt;A serious problem indeed.  If only you could you run a tool to update all of you project files to 2010, do your changes in Visual Studio 2010, then switch all projects back to 2008 format before checking in.&lt;/p&gt;  &lt;p&gt;Well, here’s a command line tool to do just that!&lt;/p&gt;  &lt;p&gt;It’s very easy to use: run it from the command line, give it a folder name, and tell it whether you want all your projects and solutions under that folder to be either 2008 or 2010 format. For example:&lt;/p&gt;  &lt;div style=&quot;padding: 0px; margin: 0px; display: inline; float: none;&quot; id=&quot;scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:d5d6d703-0829-4f94-9acd-70693956c4ad&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;pre style=&quot;background-color: rgb(255, 255, 255); white-space: pre-wrap; word-wrap: break-word; overflow: auto;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;SwitchVsVersion c:&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;\&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;temp&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;\&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;MySolution &lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;2010&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;
SwitchVsVersion c:&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;\&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;temp&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;\&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;MySolution &lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;2008&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn&#39;s Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;As a bonus, you can also tell it to change all your target frameworks to either .NET 4 or .NET 3.5. For example:&lt;/p&gt;

&lt;div style=&quot;padding: 0px; margin: 0px; display: inline; float: none;&quot; id=&quot;scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:8050272c-f546-4905-8278-7e56f9f0229d&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;pre style=&quot;background-color: rgb(255, 255, 255); white-space: pre-wrap; word-wrap: break-word; overflow: auto;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;SwitchVsVersion c:&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;\&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;temp&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;\&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;MySolution &lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;5Framework
SwitchVsVersion c:&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;\&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;temp&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;\&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;MySolution &lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;4&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;0Framework&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn&#39;s Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;http://sites.google.com/a/dunnhq.com/steve/SwitchVsVersion-Binary.zip?attredirects=0&amp;amp;d=1&quot;&gt;Binary&lt;/a&gt; here. &lt;a href=&quot;http://sites.google.com/a/dunnhq.com/steve/SwitchVsVersion-source.zip?attredirects=0&amp;amp;d=1&quot;&gt;Source code&lt;/a&gt; here.  Here’s a &lt;a href=&quot;http://sites.google.com/a/dunnhq.com/steve/TestSolutionWithLotsOfDifferentTypeOfBlankProjects.7z?attredirects=0&amp;amp;d=1&quot;&gt;test solution&lt;/a&gt; with lots of different empty projects to try it out on too.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3LI8kU5X2oq1BTVd6i7M0nANR5ZLoYL1lcsJ_qgzRXBHIbF_J_cPA3RD8rGV60tbK2UTQRUViI8IhRqRKmZDyz0dg-2hzSxXsw0VY6bcOWNYxtiE-4qnn8Vq8NlZ4mh3KeTxOww/s1600-h/toolbox4.jpg&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclaimer: this is a noddy little tool that may not work properly on your projects and solutions.  I’ve tested it on quite a large WinForms solution and it worked fine.  I’ve also tested it on quite a variety of projects including C# and VB WinForms, Web Apps, Libraries, WPF Projects, and WPF Libraries.  The only one it doesn’t do is C++ projects (which is a coincidence, because I no longer do C++ projects either).  Be sure to back up your stuff before you use this tool!  Terms and conditions apply.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Update: Thanks for the feedback.  As requested, the source is covered under the WTFPL.  Do what you want with it:
&lt;/strong&gt;&lt;/p&gt;           DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
&lt;code&gt;&lt;b&gt;
This program is free software. It comes without any warranty, to the extent permitted by applicable law. You can redistribute it and/or modify it under the terms of the Do What The Fuck You Want To Public License, Version 2, as published by Sam Hocevar. See &lt;a href=&quot;http://sam.zoy.org/wtfpl/COPYING&quot;&gt;http://sam.zoy.org/wtfpl/COPYING&lt;/a&gt; for more details.
&lt;/b&gt;&lt;/code&gt;
&lt;p&gt;
&lt;/p&gt;</description><link>http://stevedunns.blogspot.com/2010/02/tool-to-switch-project-files-between.html</link><author>noreply@blogger.com (Steve Dunn)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6xaSa8qb-wgAM3AbbyQ2w5eDb0WttepyYE0q5yHwBE_j0XOhNSufurqEc9HCAfsegGGIA7H19wShkMbw3n79pNfMRQ1Vbp2EerYUCAq8bOknuBtLIBworSICHuFlyVtoIoZCkMA/s72-c?imgmax=800" height="72" width="72"/><thr:total>9</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-163635037699929970</guid><pubDate>Sat, 09 Jan 2010 20:07:00 +0000</pubDate><atom:updated>2010-01-09T20:12:41.142+00:00</atom:updated><title>Updated: Code Formatter Plugin for Windows Live Writer</title><description>&lt;p&gt;This plug-in formats and highlights code. Version 2.0.0.3 can be &lt;a href=&quot;http://sites.google.com/a/dunnhq.com/steve/CodeFormatterPlugin2.0.0.3.zip?attredirects=0&quot;&gt;downloaded here&lt;/a&gt;. Keep reading for more info.&lt;/p&gt;  &lt;p&gt;As well as a few bug fixes, this release includes the following features: &lt;/p&gt; · Use different formatting engines such as &lt;a href=&quot;http://www.actiprosoftware.com/Products/DotNet/WindowsForms/SyntaxEditor/Default.aspx&quot;&gt;&lt;b&gt;ActiPro &lt;/b&gt;&lt;/a&gt;(Insert formatted code), and &lt;a href=&quot;http://alexgorbatchev.com/wiki/SyntaxHighlighter:Demo&quot;&gt;SyntaxHighlighter&lt;/a&gt;&lt;b&gt; &lt;/b&gt;(Insert highlighted code)   &lt;br /&gt;· Dozens of languages, including PowerShell, MSIL, Pascal and XAML   &lt;br /&gt;· Live formatting of code using the superb ActiPro code editor.&amp;#160; ActiPro very kindly donated the license.   &lt;br /&gt;· The ability to output either &lt;b&gt;highlighted text&lt;/b&gt; (html) or an &lt;b&gt;image    &lt;br /&gt;&lt;/b&gt;· WordPress support for the SyntaxHighlighter Evolved plugin   &lt;p&gt;This plugin adds &lt;strong&gt;four tools&lt;/strong&gt; in WLW&#39;s tool window: &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgv_3nYjy2nEPXUOl0th6Ocg8Bu6FK90HklpZvvhslGqWnGlrQqHU8S-j4DS9R8Z3TFjAGJB6Mx1BlRMMmFFIIHwGRYMQqd2yoPgOqYnHsEjDmRhyWUd5nTp7Trrvilhn6Av4Onw/s1600-h/image%5B27%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCIqJLrB6TaX1w4rg4R4gq9YkMnUSFtlQlmYAlq9VqhZpXzeH6p2SJtZizC_DOczMJxVzmBussyIU2v_6JxyXIkqttXb4r4-kZpJJbLu7QL2M_HbwooUszX2bOIp4PXJeLhsZP1w/?imgmax=800&quot; width=&quot;370&quot; height=&quot;484&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Tool 1) Code as bitmap&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;This uses the ActiPro formatting engine to take a snapshot of the code.&amp;#160; &lt;/p&gt;  &lt;p&gt;You&#39;ll see this screen when clicked – if there’s text in the clipboard, it’ll be shown here, or you can copy and paste when the window appears: &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm6EWiVp3VhA65DJ3EcbHGatNQMbaU3_Aa-bRaHUrXxMNddamcOVFmhEt2VwWbWmpddaSs5QeliwbUQMmF5bEGl32fFkHr8b-TQjHG2LuYSh0rXQ6Z5XFW1kvvbzWpRViwjIdKWQ/s1600-h/image%5B28%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOm5K9g53YbvZjK4Z2wHMCFK4QhRMWCqc0j6Vet6HSSiq4Mt-rw9vvW6Pik7wg7hLTI6rFU3JSFwYQcyq0_rCo7smpMAjbVgunY1I_R5f-CdWARgbObp6sTBPKuczffNAOt0Bu1Q/?imgmax=800&quot; width=&quot;370&quot; height=&quot;355&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This srceen allows you to set the size of the editor window.&amp;#160; You can either select common widths from the drop-down or put in your own width - for instance, 465 is the ideal width for my template on Blogger.&amp;#160; The buttons on the bottom right allow you to then: &lt;/p&gt;  &lt;p&gt;&lt;i&gt;a)&lt;/i&gt; insert the image straight into the blog post or     &lt;br /&gt;&lt;i&gt;b) &lt;/i&gt;have the plugin copy the image or     &lt;br /&gt;c) discard it.&amp;#160; &lt;/p&gt;  &lt;p&gt;The advantage of the option A is that the code is still editable in WLW; the disadvantage - you cannot [yet] apply bitmap effects, such as reflection or drop shadow.&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;The advantage of option B is that you can apply bitmap effects, but the disadvantage is that code will no longer be editable. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Tool B) Formatted code&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;This also uses uses the ActiPro formatting engine. &lt;/p&gt;  &lt;p&gt;When inserting code, the plugin window will allow various properties of the code to be changed: &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9Zcki-I1akXj6XsMshddfn5v5jY_Je3VakSHisE_7ym-XIzVHr3Y0NE8y5M3G-6Uoaf7X7KQyUyq55PzmB_WfLZ5DRGqr5rZdu_HOo6J9krlmhvx2JSTeHpYhe1q8SP8OgV3qCQ/s1600-h/image%5B29%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy1CLnd6l7KW2uBRWdufg_VxmAzTOk0s4rx7LghIaZA8d594NMHevclp0DjFQhJqDm7muGvwohCpDTfqSel-6AcIjd4s6haeH5KwVHU4QP0Aen7nQd5LB8RbZr4U9RNrW2sopFQQ/?imgmax=800&quot; width=&quot;370&quot; height=&quot;383&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;When clicking edit code, you&#39;ll see the edit source code screen: &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP_L2qzapDghu9X57QDAGih3prxSpZM-Qxz98C_xGQUmQAP0-qrAbNcRJuT1uuqrpsxKZW1U5ekrGdptirhoE20wo6TMfsBT40NvoEqd0qVr3fFYnYH735hoU9ABR64RAbp8CjlQ/s1600-h/image%5B30%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3ETrLpj6X-cNt9W60x6POi6ql956zNNCyiwHdALaWhhDKjP25ig6PgPIa8CT10n9-xrAS2ZZsNE5tzyIqoHHsPcctaz01qHndGLeYIJIwCEC4Xhv-mO63Isj5e9o4vb2T5G_OlQ/?imgmax=800&quot; width=&quot;370&quot; height=&quot;244&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Tool C) Highlighted code&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;This uses the Syntax Highlighter formatting engine.&amp;#160; When inserting code, the edit screen will appear in the same way as when you insert formatted code (see above).&amp;#160; The only difference is a ‘show preview’ button, which displays this preview window:    &lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjidrW2pwZWoJ9GWm_uW0_Hpx6CFxluTe_BRQKsP2P0C5d1i_68ccIQV-T9auHdJXzsuiF3zTFxwOCZBwKGS363s3o_ogFBo83WqMpBM1wDHksGPXRZ3ZSfPA4YDYcPX7LVt50Wbw/s1600-h/image%5B31%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE-bHLiesg_SzQjlJQ3GjQjWzdhughtf1V5_pwNz-crWUTNfdVAC1QCtoRT4rlTO7GbjLHwZH924Quj5dTiXEHb5fH5fYEjxReiAvq3-hFheIwNe4_yacfz6uudCdbyLBpU1oV_g/?imgmax=800&quot; width=&quot;370&quot; height=&quot;136&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;To use the SyntaxHighlighter engine, ensure your blog is correctly set-up.&amp;#160; For the preview window to correctly display your code, ensure the Settings are correct.&amp;#160; Here’s the Settings window:    &lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5sUHealdCaT7isWy_ESvCCsZwzrYyaxzZqhylSKamqmIW_N0YTwdWTLLunCBtnCIJ7eg8JzKHTiW4Q65ajeuOaqZ6AmZElM4NYPv44W-zBzkwNyx2NlXXVUIefyInFUNsv5LRUw/s1600-h/image%5B32%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV7d357DM0OJLkwAoC6Gvpo8zVtXeAQhjrIjQeN-PFn0hTq_6oxmPQNWaBDnjW8-4x7uYUjcHIrKCyPCj8C_jkQI5HUf88Ns6jyCdm_NxUA6feV_JEFpZXjAC9IXcCP6vpV1Z95w/?imgmax=800&quot; width=&quot;370&quot; height=&quot;246&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Tool D) WordPress Formatted&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This changes the HTML output to that expected by theSyntaxHighlighter Evolved plugin for WordPress.&amp;#160; It’s very similar to using the SyntaxHighlighter engine, but you don’t need to worry about setting up your blog with the correct scripts.&amp;#160; &lt;em&gt;Do be aware though, that for the Preview window to work correctly, you still need to set-up this plugin so that it knows where the SyntaxHighlighter brushes and scripts are (the default settings work right now, but if Alex changes the location in the future, you’ll need to update the settings).&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;To see examples of the output, please &lt;a href=&quot;http://stevedunns.blogspot.com/2009/03/new-version-of-code-formatter-plugin.html&quot;&gt;see this blog post&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Version 2.0.0.3 can be &lt;a href=&quot;http://sites.google.com/a/dunnhq.com/steve/CodeFormatterPlugin2.0.0.3.zip?attredirects=0&quot;&gt;downloaded here&lt;/a&gt;.&amp;#160; To use it, extract the binaries to &lt;b&gt;Program Files\Windows Live\Writer\Plugins&lt;/b&gt; and run WLW.&amp;#160; If you&#39;re using a version of WLW prior to Beta 3, then you need to remove it and update!&amp;#160; (alternatively, change the directory to \Program Files\Windows Live Writer\Plugins) &lt;/p&gt;  &lt;p&gt;Thanks again to all those that left feedback.&amp;#160;&amp;#160; Please keep it coming. Hopefully the bugs that have been reported have now been fixed.&amp;#160; &lt;/p&gt;  </description><link>http://stevedunns.blogspot.com/2010/01/updated-code-formatter-plugin-for.html</link><author>noreply@blogger.com (Steve Dunn)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCIqJLrB6TaX1w4rg4R4gq9YkMnUSFtlQlmYAlq9VqhZpXzeH6p2SJtZizC_DOczMJxVzmBussyIU2v_6JxyXIkqttXb4r4-kZpJJbLu7QL2M_HbwooUszX2bOIp4PXJeLhsZP1w/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-8965201505829862303</guid><pubDate>Sat, 17 Oct 2009 19:25:00 +0000</pubDate><atom:updated>2009-10-17T19:25:24.771+00:00</atom:updated><title>Problems with CSS and themes when using ASP.NET Forms Authentication</title><description>&lt;p&gt;A while back, I wrote a &lt;a href=&quot;http://stevedunns.blogspot.com/2006/10/forms-authentication-and-stylesheet.html&quot; target=&quot;_blank&quot;&gt;blog post&lt;/a&gt; about how turning on Forms Authentication caused problems with stylesheets and Themes.&amp;#160; A lot of people found this post useful but had trouble finding it.&amp;#160; One reader suggested I change the title to get more hits.&amp;#160; So, I did, and this is it.&amp;#160; &lt;/p&gt;  </description><link>http://stevedunns.blogspot.com/2009/10/problems-with-css-and-themes-when-using.html</link><author>noreply@blogger.com (Steve Dunn)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-2341439713917419737</guid><pubDate>Mon, 27 Jul 2009 19:48:00 +0000</pubDate><atom:updated>2009-07-27T19:48:56.588+00:00</atom:updated><title>ReSharper for Visual Studio 2010</title><description>&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxgs-T8NCmef_JQcwFhQ2RKnUxDwZ8ZxXXyB-xjpmvu_f98SPTokif1QdwOGz7NAN4h-Zi2348WpPNy70e1-WoxgIzVHST2pc6WqSmPyGZOTFEHbrPtxIfBiekuptPrvG_J8dx1Q/s1600-h/rs%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px&quot; title=&quot;rs&quot; border=&quot;0&quot; alt=&quot;rs&quot; align=&quot;right&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuOzsMuKo7dEBGzCT9HhDZPIWu07bJ9Yh3iTIo2s2zgKJhvDG63Vq1Ha-6mK1Y1cqrya8sqxhEiZ9lCRjXtIlHZXmiFAC6LL-1IH_WECTmqYaQhWgiYswefo25mDXV0e26dlmNlA/?imgmax=800&quot; width=&quot;170&quot; height=&quot;184&quot; /&gt;&lt;/a&gt; I don’t know how I missed this for so long, but JetBrains have released a &lt;a href=&quot;http://www.jetbrains.net/confluence/display/ReSharper/ReSharper+for+Visual+Studio+2010+%28Preview%29&quot;&gt;preview of ReSharper for Visual Studio 2010&lt;/a&gt;! They say this version is neither 4.5.1 nor 5.0, but a preview build with some of the new 5.0 features enabled.&lt;/p&gt;  &lt;p&gt;Looking at the nightly builds, it seems that the first release was 9th July, but there was no news on their blog, which I’ve been checking daily since June (when they said it’d be ready). &lt;/p&gt;  &lt;p&gt;Anyway, now I can give Visual Studio 2010 another try.&amp;#160; I just couldn’t use it, not even for evaluation, without ReSharper!&lt;/p&gt;  &lt;p&gt;Also, let’s not forget that version 4.5.1 for Visual Studio 2005 and 2008 is also &lt;a href=&quot;http://www.jetbrains.com/resharper/index.html&quot;&gt;now available&lt;/a&gt;.&lt;/p&gt;  </description><link>http://stevedunns.blogspot.com/2009/07/resharper-for-visual-studio-2010.html</link><author>noreply@blogger.com (Steve Dunn)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuOzsMuKo7dEBGzCT9HhDZPIWu07bJ9Yh3iTIo2s2zgKJhvDG63Vq1Ha-6mK1Y1cqrya8sqxhEiZ9lCRjXtIlHZXmiFAC6LL-1IH_WECTmqYaQhWgiYswefo25mDXV0e26dlmNlA/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-3344565284460003208</guid><pubDate>Thu, 04 Jun 2009 06:24:00 +0000</pubDate><atom:updated>2009-06-04T06:24:33.849+00:00</atom:updated><title>Google Squared and sexy languages!</title><description>&lt;p&gt;&lt;a href=&quot;http://www.google.com/squared&quot;&gt;Google Squared&lt;/a&gt; looks like an interesting tool.&amp;#160; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“Google Squared is a search tool that helps you quickly build a collection of facts from the Web for any topic you specify. &lt;/em&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;em&gt;Facts about your topic are organized as a table of items and attributes (we call them &amp;quot;Squares&amp;quot; for fun). &lt;/em&gt;&lt;/li&gt;      &lt;li&gt;&lt;em&gt;Customize these Squares to see just the items and attributes you&#39;re interested in. &lt;/em&gt;&lt;/li&gt;      &lt;li&gt;&lt;em&gt;See the websites that served as sources for the information in your Square. &lt;/em&gt;&lt;/li&gt;      &lt;li&gt;&lt;em&gt;Save and share Squares with others.”&lt;/em&gt; &lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhr188J3KFrkiD7OKrvEG4ZQfztrL6_DePiuq0YYJ9_cjHt9ikCWNw5-OcbUW96wYqqgYwF6r3AoCpCfxNMdL7_4iQIXrtUv5gZpELfO-2v9L_i_Aha4nxySU7z_ubLUl4ZO1aIjA/s1600-h/mk%5B5%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px&quot; title=&quot;mk&quot; border=&quot;0&quot; alt=&quot;mk&quot; align=&quot;right&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik5TdYFFAkPm8znL3VybNoekTYhgA8rzPeizfWtCdgl_3CY_JKslgVMU_LMmyZ9B0RwPVW3ibjBv66w9MxFkqg6gt16ta3Rl03VRNkmClkM_JOih5YOg5vTir3jukgls8XbnxgSg/?imgmax=800&quot; width=&quot;154&quot; height=&quot;154&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;There’s some interesting results.&amp;#160; I searched for &lt;a href=&quot;http://www.google.com/squared/search?q=programming+languages#&quot;&gt;‘programming languages’&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;It displays a list of languages, a picture of the language, a description, and what it was influenced by. &lt;/p&gt;  &lt;p&gt;I was very surprised to see the &lt;strong&gt;Miranda&lt;/strong&gt; language (apparently influenced by Haskell).&amp;#160; Try it yourself:&amp;#160; scroll down to Miranda.&amp;#160; I must take a closer look at this one! &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinWId9lXFl42cpb8KoF96hj2JKYihmG7rJ8qAXJkeZ2XAhaKp-w7GDyS6ZPYmjmhKEeNsnANij-D5aA7w1uPSgbuQIE5ZDnbaZFybrmd6Hdob90Ft24wZaXpvdFnTK0ZZZtVJ6fQ/s1600-h/limbo%5B3%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px&quot; title=&quot;limbo&quot; border=&quot;0&quot; alt=&quot;limbo&quot; align=&quot;left&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0JGonlzCLrRYG_lJRIyFZb4BdLKUj9IIUOszTUlZEyx3PXbNXdtPQaQ2Vg7T6CF0W2A4YKVs-FhWgJXVmmPBzcQukOcNR447cbRRfxb1HH7QobfBr2W0xocdZE7Fn1rmX3hWtxg/?imgmax=800&quot; width=&quot;244&quot; height=&quot;174&quot; /&gt;&lt;/a&gt;&lt;/strong&gt; Another one that might get you excited is &lt;strong&gt;Limbo&lt;/strong&gt;.&amp;#160; Scroll down and take a look &lt;font color=&quot;#ff0000&quot;&gt;(but be careful if you’re at work!!)&lt;/font&gt;. Apparently influenced from Stackless Python.&amp;#160; I’d say more like alcohol!&lt;/p&gt;  </description><link>http://stevedunns.blogspot.com/2009/06/google-squared-and-sexy-languages.html</link><author>noreply@blogger.com (Steve Dunn)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik5TdYFFAkPm8znL3VybNoekTYhgA8rzPeizfWtCdgl_3CY_JKslgVMU_LMmyZ9B0RwPVW3ibjBv66w9MxFkqg6gt16ta3Rl03VRNkmClkM_JOih5YOg5vTir3jukgls8XbnxgSg/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-8648064017793223872</guid><pubDate>Mon, 25 May 2009 12:45:00 +0000</pubDate><atom:updated>2009-05-25T12:45:32.192+00:00</atom:updated><title>Updated: Tree Trim</title><description>&lt;p&gt;&lt;a href=&quot;http://code.google.com/p/treetrim/&quot;&gt;Tree Trim&lt;/a&gt; is a command line tool that trims your source code tree.&amp;#160; It removes debug files, source control bindings, and temporary files.&lt;/p&gt;  &lt;p&gt;It’s integrated with Windows Explorer: when you right click a folder you’re given the option to clean the folder.&lt;/p&gt;  &lt;p&gt;Massive thanks to &lt;a href=&quot;http://www.google.co.uk/url?sa=t&amp;amp;source=web&amp;amp;ct=res&amp;amp;cd=1&amp;amp;url=http%3A%2F%2Fwww.hanselman.com%2Fblog%2FTheWeeklySourceCode42TreeTrimPluginsAndMEF.aspx&amp;amp;ei=DpEaStDKOdKNjAff3_jjDA&amp;amp;usg=AFQjCNHhWMPTOYQ98ZjmgSTlq0wMMUxfnA&amp;amp;sig2=AT06w81BwD_bo2HdgknhbA&quot;&gt;Scott Hanselman for blogging about it&lt;/a&gt; and for providing some great and detailed feedback.&lt;/p&gt;  &lt;p&gt;If you’re interested in doing your own Tree Trim plugin, there’s now a &lt;a href=&quot;http://code.google.com/p/treetrim/wiki/CreatingPlugins&quot;&gt;Wiki page to take you through the process&lt;/a&gt;.&amp;#160; If you’d like to contribute your plugin or fix any issues, then &lt;a href=&quot;http://code.google.com/p/treetrim/wiki/HowToContribute&quot;&gt;take a look at this page&lt;/a&gt;.&lt;/p&gt;  </description><link>http://stevedunns.blogspot.com/2009/05/updated-tree-trim.html</link><author>noreply@blogger.com (Steve Dunn)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-5842204062872556821</guid><pubDate>Fri, 15 May 2009 21:11:00 +0000</pubDate><atom:updated>2009-05-15T21:11:50.926+00:00</atom:updated><title>Updated: Code Formatter Plugin for Windows Live Writer</title><description>&lt;p&gt;Version 2.0.0.2 of the Code Formatter Plugin can be &lt;a href=&quot;http://stevedunns.googlepages.com/codeformatterforwindowslivewriter&quot;&gt;downloaded here&lt;/a&gt;.&amp;#160; This has a fix for when the plugin tried to load configuration from the wrong location on disk.&lt;/p&gt;  </description><link>http://stevedunns.blogspot.com/2009/05/updated-code-formatter-plugin-for.html</link><author>noreply@blogger.com (Steve Dunn)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-3634606305043163213</guid><pubDate>Mon, 13 Apr 2009 11:45:00 +0000</pubDate><atom:updated>2009-04-13T11:45:15.734+00:00</atom:updated><title>New tool: TreeTrim</title><description>&lt;p&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px&quot; title=&quot;hammer&quot; border=&quot;0&quot; alt=&quot;hammer&quot; align=&quot;right&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb_2wjTiMGynXM2I4nSIPsAeLWbO6CKDHTgZ4tlpbch1DXQt9oV2pFR4JWQFy-O5dLY3KNnnxrrFLVaV1OoxEFbsDAemhMJBZ1g0CKTiatDCryr3KZsOy_rAoBBWaU2D2IzYd8qA/?imgmax=800&quot; width=&quot;244&quot; height=&quot;191&quot; /&gt; I&#39;ve recently been working on a &lt;a href=&quot;http://code.google.com/p/treetrim/&quot;&gt;tool&lt;/a&gt; based on &lt;a href=&quot;http://www.codinghorror.com/blog/&quot;&gt;Jeff Atwoods&lt;/a&gt; &lt;a href=&quot;http://www.codinghorror.com/blog/archives/000368.html&quot;&gt;Clean Sources Plus&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;It&#39;s called &lt;strong&gt;TreeTrim&lt;/strong&gt;.&amp;#160; It&#39;s a tool that strips out debug files and folders in your source code tree and also zips and emails amongst other things. &lt;/p&gt;  &lt;p&gt;One of the BIG requests for CleanSourcePlus (well, amongst the 5 people in the comments section of the tool&#39;s page!) is for the tool to make a working copy of your source before it deletes and zips.&amp;#160; TreeTrim does this.&lt;/p&gt;  &lt;p&gt;It&#39;s plug-in based, so if it doesn&#39;t do something that you want, you can write your own plug-in, plonk it in the directory, and have the tool run it alongside the other plugins. &lt;/p&gt;  &lt;p&gt;The installer and source code is available for download at &lt;a href=&quot;http://code.google.com/p/treetrim/&quot;&gt;http://code.google.com/p/treetrim/&lt;/a&gt;&lt;/p&gt;  </description><link>http://stevedunns.blogspot.com/2009/04/new-tool-treetrim.html</link><author>noreply@blogger.com (Steve Dunn)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb_2wjTiMGynXM2I4nSIPsAeLWbO6CKDHTgZ4tlpbch1DXQt9oV2pFR4JWQFy-O5dLY3KNnnxrrFLVaV1OoxEFbsDAemhMJBZ1g0CKTiatDCryr3KZsOy_rAoBBWaU2D2IzYd8qA/s72-c?imgmax=800" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-4070427652306194942</guid><pubDate>Fri, 13 Mar 2009 21:35:00 +0000</pubDate><atom:updated>2009-03-13T21:35:26.132+00:00</atom:updated><title>ReSharper 4.5 Beta</title><description>&lt;p&gt;&lt;a href=&quot;http://www.jetbrains.com/resharper/beta.html&quot; target=&quot;_blank&quot;&gt;Nice&lt;/a&gt;&lt;/p&gt;  </description><link>http://stevedunns.blogspot.com/2009/03/resharper-45-beta.html</link><author>noreply@blogger.com (Steve Dunn)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-3328280976515766199</guid><pubDate>Thu, 12 Mar 2009 19:44:00 +0000</pubDate><atom:updated>2009-03-12T19:44:33.671+00:00</atom:updated><title>Update to the Code Formatter Plugin</title><description>&lt;p&gt;Version 2.0.0.1 of the &lt;a href=&quot;http://stevedunns.googlepages.com/codeformatterforwindowslivewriter&quot; target=&quot;_blank&quot;&gt;Code Formatter Plugin&lt;/a&gt; is now available.&lt;/p&gt;  &lt;p&gt;New in this version:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Enhanced support for &lt;a href=&quot;http://alexgorbatchev.com/wiki/SyntaxHighlighter&quot; target=&quot;_blank&quot;&gt;Syntax Highlighter 2x&lt;/a&gt;       &lt;br /&gt;You can now specify things such as &lt;a href=&quot;http://alexgorbatchev.com/wiki/SyntaxHighlighter:Demo:tab-size&quot; target=&quot;_blank&quot;&gt;tab size&lt;/a&gt;, &lt;a href=&quot;http://alexgorbatchev.com/wiki/SyntaxHighlighter:Demo:ruler&quot; target=&quot;_blank&quot;&gt;show ruler&lt;/a&gt;, &lt;a href=&quot;http://alexgorbatchev.com/wiki/SyntaxHighlighter:Demo:collapse&quot; target=&quot;_blank&quot;&gt;collapse&lt;/a&gt;,&amp;#160; &lt;a href=&quot;http://alexgorbatchev.com/wiki/SyntaxHighlighter:Demo:toolbar&quot; target=&quot;_blank&quot;&gt;show toolbar&lt;/a&gt;, &lt;a href=&quot;http://alexgorbatchev.com/wiki/SyntaxHighlighter:Demo:gutter&quot; target=&quot;_blank&quot;&gt;show line numbers&lt;/a&gt;, &lt;a href=&quot;http://alexgorbatchev.com/wiki/SyntaxHighlighter:Demo:first-line&quot; target=&quot;_blank&quot;&gt;starting line number&lt;/a&gt;, and &lt;a href=&quot;http://alexgorbatchev.com/wiki/SyntaxHighlighter:Demo:highlight&quot; target=&quot;_blank&quot;&gt;highlighting specific line numbers&lt;/a&gt;.&amp;#160; &lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHeDwt8kvfu6vBvUHPDGMaTD7w28cw-hFJwFRFj_Kzo4K7oiaCESED6KQgu_CS-LbA3-G8uhbVSnyA3c3uawGQP9-MGdcVBnJhuXh0XN41UQhyphenhyphenuGYgoN1LvLh-0sMNYC_HylZ3GQ/s1600-h/image%5B5%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4zMImf5bHmXi26SVxYrIHs_SKlnzv8bzi9YAa-hfBd2P_Dns2nD78efRKgLxfnT3LLqs6XZNU5gv5e6_hb8TU9CoLMlnuFajFxzlezIzoQIcegMb4RdgyRampQXGn8M1zTjvmqA/?imgmax=800&quot; width=&quot;340&quot; height=&quot;295&quot; /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Configuration screens for the different providers      &lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWqQ7o3rPBkkv0MuYVuutPvaAxY2-O01lIf1oiL-_D9yTrBXVGwXpGvzgxuLyyvnWKN3HwT4pax5tcICNY8aYRXwYYClqJHLpPOMltheHOIjCmWcEee1DlYvG9G8rcoNI-GXXJ8g/s1600-h/image19.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMXw_yJoKfMtuv8OoCHvuyeDofOzCpMMSxGYsd3zLRFNQl92V7YqUaefGFQLbQnxX98JPYkDJG0wxDkMjuQHKsvzzwhDdTQIbQErr2Lb4UottzQfrrffLOwCqzCkVKtjx1G25x4w/?imgmax=800&quot; width=&quot;334&quot; height=&quot;245&quot; /&gt;&lt;/a&gt;       &lt;br /&gt;You can now add and remove languages and generally configure each provider.&amp;#160; You can also edit the files manually – they are called SyntaxHightlighter2xConfiguration.xml and ActiProConfiguration.xml.&amp;#160; They are located in the Plugins folder. &lt;/li&gt;    &lt;li&gt;Preview window for Syntax Highlighter formatted code.      &lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF4h1MO64DzwXQNYLHEKbEBKMrgDheiMND9HemYiV9EChEuxaMsD40784ZcVOlsWUz6En0AhQWmVTNkUWh4l7QFcQx9D7kDCeSVvdz1APkIPDMPSCFKX9WZdge0OohZTmNF7cYIA/s1600-h/image20.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL9sN19HvwTBvQyEkfhyphenhyphenzVyTerCerkKQTDnsVRKAEdBVSfYMHhWvwTTEveS2DIZ8wCBiWI-sp4h38sJJZZIjbALuzX8l9mu0jf6S89Sw7czxR8wmFT-ZJpnFf38GS3_DOt3LghSQ/?imgmax=800&quot; width=&quot;348&quot; height=&quot;206&quot; /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;This was added because the Preview tab in Windows Live Writer doesn’t include the scripts and styles used in your blog engine’s templates and hence previewing Syntax Highlighted code means it looks plain.&amp;#160; Click the Show Preview button to see this window. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href=&quot;http://stevedunns.googlepages.com/codeformatterforwindowslivewriter&quot; target=&quot;_blank&quot;&gt;Code Formatter Plugin home-page&lt;/a&gt;     &lt;br /&gt;&lt;a href=&quot;http://stevedunns.googlepages.com/CodeFormatterPlugin2.0.0.1.zip&quot; target=&quot;_blank&quot;&gt;Direct download link&lt;/a&gt;&lt;/p&gt;  </description><link>http://stevedunns.blogspot.com/2009/03/update-to-code-formatter-plugin.html</link><author>noreply@blogger.com (Steve Dunn)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4zMImf5bHmXi26SVxYrIHs_SKlnzv8bzi9YAa-hfBd2P_Dns2nD78efRKgLxfnT3LLqs6XZNU5gv5e6_hb8TU9CoLMlnuFajFxzlezIzoQIcegMb4RdgyRampQXGn8M1zTjvmqA/s72-c?imgmax=800" height="72" width="72"/><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-5101870733589216424</guid><pubDate>Fri, 06 Mar 2009 20:10:00 +0000</pubDate><atom:updated>2009-03-06T20:10:23.993+00:00</atom:updated><title>IDisposable alerts</title><description>&lt;p&gt;Types that implement IDisposable usually do so for a reason.&amp;#160; They probably consume resources that should be released as early as possible.&lt;/p&gt;  &lt;p&gt;In a recent project, I came across a very neat idea.&amp;#160; In the destructor/finalizer/finaliser of your IDisposable type, do something to alert the consumer that you’re being collected by the Garbage Collector and hence you haven’t been disposed of correctly.&lt;/p&gt;  &lt;p&gt;But how does this type know it’s not been disposed correctly?&amp;#160; Well, if you follow the IDisposable pattern to the letter &lt;em&gt;(described in the excellent book Effective C# (Item 18), and about 3,000 places around t’internet)&lt;/em&gt;, in your Dispose method, you’ll call GC.SupressFinalize(this);&amp;#160; meaning the Garbage Collector won’t call your finalizer.&amp;#160; So if you ever end up in the finalizer, the naughty user hasn’t called Dispose or hasn’t put the construction of your type in a using block.&lt;/p&gt;  &lt;p&gt;There’s two bits to this&lt;/p&gt;  &lt;p&gt;The constructor:   &lt;br /&gt;    &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:DFDE9937-D816-47f4-A306-7B60D5CE5AC0:16f71f16-e24d-4df5-9064-b23a0e884c18&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;pre class=&quot;brush: csharp;&quot;&gt;public MyResourceHungryType( )
{
  _stackTrace = new StackTrace( ) ;
}
&lt;/pre&gt;&lt;/div&gt;

  &lt;br /&gt;The finalizer:

  &lt;br /&gt;

  &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:DFDE9937-D816-47f4-A306-7B60D5CE5AC0:6f330505-be4f-4e78-9f7b-fb570932185b&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;pre class=&quot;brush: csharp;&quot;&gt;~MyResourceHungryType( )
{
  Debug.WriteLine( _stackTrace.ToString( ) ) ;
}
&lt;/pre&gt;&lt;/div&gt;

  &lt;br /&gt;Then, if the finalizer is ever called, you’ll get a call stack printed up to the point where you created this type – something like:

  &lt;br /&gt;

  &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:DFDE9937-D816-47f4-A306-7B60D5CE5AC0:9405c000-8e4b-4474-8d7e-6b298651f8f8&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;pre class=&quot;brush: css;&quot;&gt;at Namespace.MyResourceHungryType..ctor()
   at Namespace.MyType.DoSomething()
   at SomeNamespace.SomeMethod()&lt;/pre&gt;&lt;/div&gt;

  &lt;br /&gt;Handy.&lt;/p&gt;  </description><link>http://stevedunns.blogspot.com/2009/03/idisposable-alerts.html</link><author>noreply@blogger.com (Steve Dunn)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-1615687804045075963</guid><pubDate>Fri, 06 Mar 2009 07:21:00 +0000</pubDate><atom:updated>2009-03-07T07:51:47.014+00:00</atom:updated><title>New version of the Code Formatter Plugin</title><description>&lt;p&gt;Version 2.0 of the Code Formatter Plugin for &lt;a href=&quot;http://download.live.com/writer&quot; target=&quot;_blank&quot;&gt;Windows Live Writer&lt;/a&gt; is now available.&lt;/p&gt;  &lt;p&gt;New in this version is the ability to use different formatting engines – in this version: &lt;a href=&quot;http://www.actiprosoftware.com/Products/DotNet/WindowsForms/SyntaxEditor/Default.aspx&quot; target=&quot;_blank&quot;&gt;ActiPro&lt;/a&gt; and &lt;a href=&quot;http://code.google.com/p/syntaxhighlighter/&quot; target=&quot;_blank&quot;&gt;SyntaxHighlighter 2.0&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Also new is the ability to output either formatted code as text or as a bitmap.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;A massive thank you to &lt;a href=&quot;http://www.actiprosoftware.com/Default.aspx&quot; target=&quot;_blank&quot;&gt;ActiPro&lt;/a&gt; for donating the &lt;a href=&quot;http://www.actiprosoftware.com/Products/DotNet/WindowsForms/SyntaxEditor/Default.aspx&quot; target=&quot;_blank&quot;&gt;ActiPro Syntax Editor&lt;/a&gt; component – &lt;strong&gt;the&lt;/strong&gt; best code editor available! &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;If you’re reading this in an aggregator, the following code snippets may look unformatted (apart from the bitmap), but if you’re not, then it should be all nicely formatted.&lt;/p&gt;  &lt;p&gt;Here’s some output from ActiPro as text:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:21d3b9cb-44e3-48c3-9d09-0d6093ff0ac0&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;pre style=&quot;background-color:#FFFFFF;;overflow: auto;&quot;&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; TabWidth
{
  &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;
  {
      &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; _content.GetInt(&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;@&quot;&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;TabWidth&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #800080;&quot;&gt;4&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;);
  }
  &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;
  {
      _content.SetInt(&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;@&quot;&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;TabWidth&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, value);
  }
}&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn&#39;s Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Here it is again as a bitmap: &lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicrRODs36D0sUi-XDtSjpfaKXtA05dF4cqkGUVFfX8hGOsXZYI0SojlMbaige3NxB1ibe3-1nYoV3m5O9niVx6J716ImnG0HK2Z5vJCJqeIHF5JOuORbyWLJ-qiybmIqCKnpOviw/s1600-h/image%5B5%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp0Ty0xdxA_tjF5OPy8IYoRDBG9kT64lhWPEUhC3xBCkLp5ThVI3vTBEkNFl47LmOPv3daP0UdGyF3-5VzO9rJSxc8KSlQjxq6Zlr6Py7BOVi9KO6u-Iww013aR9V03Z6LlRQJnA/?imgmax=800&quot; width=&quot;383&quot; height=&quot;163&quot; /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;and here it is using SyntaxHighlighter 2.0 &lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:DFDE9937-D816-47f4-A306-7B60D5CE5AC0:7490f7c8-1e25-4244-8440-959fc1826bf8&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;pre class=&quot;brush: csharp;&quot;&gt;public int TabWidth
{
  get
  {
      return _content.GetInt(@&amp;quot;TabWidth&amp;quot;, 4);
  }
  set
  {
      _content.SetInt(@&amp;quot;TabWidth&amp;quot;, value);
  }
}&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://stevedunns.googlepages.com/codeformatterforwindowslivewriter&quot; target=&quot;_blank&quot;&gt;Please feel free to read more and download it.&lt;/a&gt;&lt;/p&gt;  </description><link>http://stevedunns.blogspot.com/2009/03/new-version-of-code-formatter-plugin.html</link><author>noreply@blogger.com (Steve Dunn)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp0Ty0xdxA_tjF5OPy8IYoRDBG9kT64lhWPEUhC3xBCkLp5ThVI3vTBEkNFl47LmOPv3daP0UdGyF3-5VzO9rJSxc8KSlQjxq6Zlr6Py7BOVi9KO6u-Iww013aR9V03Z6LlRQJnA/s72-c?imgmax=800" height="72" width="72"/><thr:total>18</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-5946676158618399087</guid><pubDate>Thu, 05 Mar 2009 07:16:00 +0000</pubDate><atom:updated>2009-03-05T07:16:21.056+00:00</atom:updated><title>Online mind maps in Silverlight</title><description>&lt;p&gt;I’m a big fan of mind maps.&amp;#160; I use &lt;a href=&quot;http://www.mindjet.com/&quot; target=&quot;_blank&quot;&gt;MindManager&lt;/a&gt;, but there’s now an online Silverlight alternative from &lt;a href=&quot;http://dropmind.com/&quot; target=&quot;_blank&quot;&gt;DropMind&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;It’s currently in beta, so there’s a few things that need addressing to make it as nice to use as MindManager (such as keyboard navigation).&amp;#160; Despite this, it looks feature packed compared to other online mind mapping tools I’ve tried.&lt;/p&gt;  &lt;p&gt;There’s also a desktop version.&amp;#160; It has none of the above keyboard problems.&amp;#160; It also looks and feels &lt;em&gt;very&lt;/em&gt; similar to MindManager:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;DropMind&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpwoEatNMyO3HqmBa46MZnxCTHWC_AWCoWH9fftPqO04cWdWNp7zVJoHK4oi8SSYlvn2QgXG7_oUoW4g3c7Ahtzafu_Zj7QZRn3fC7U1f-71INTs5vCwae7hZHCAMXDPRUqD2Dqg/s1600-h/image%5B5%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1p0YSPmts3V2J4IFqoMFThfWRbyWtKH8SzfQab2h54ZU3yNKoGhzE8duSKp-ab1TNcS4c_WOJp953YDqvjOuYYEm2dDMSq5NCm72YNuLtJdfiM_DATzmzjtOuoGsGwYK5a5Pt4A/?imgmax=800&quot; width=&quot;396&quot; height=&quot;407&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;MindManager&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnMNwvjtwU1qVrn6IGN5w-J0J-f72AMLb37SqiM6xM3lDscm10AjWF2OgnvU3ZNsGZ4nFlextwdud61Xyx2ZuJeTmKBD0xPKbT_TzQvG6fIavVvFIExd8K_ZyxIgPRvDKp3FdJRw/s1600-h/image%5B16%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlAOv3l6_ejfMtTWABZpfVuHohK-Yk0h_3e8lFFkg8F0MZifCKOv13vL3KDfXEjAkWtUB8agwCBBfOzUki81IrdYBNExY6-AdXVLrp1F_zzrTgiI1kbCFSiDczDL1dJyWOxGUykQ/?imgmax=800&quot; width=&quot;416&quot; height=&quot;433&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;It’s nice to see Silverlight apps like this.&amp;#160; I’d probably switch to it once all the glitches are resolved.&amp;#160; MindManager’s great, but it comes with a lot of fluff I don’t need, like Office integration and RSS features.&lt;/p&gt;  </description><link>http://stevedunns.blogspot.com/2009/03/online-mind-maps-in-silverlight.html</link><author>noreply@blogger.com (Steve Dunn)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1p0YSPmts3V2J4IFqoMFThfWRbyWtKH8SzfQab2h54ZU3yNKoGhzE8duSKp-ab1TNcS4c_WOJp953YDqvjOuYYEm2dDMSq5NCm72YNuLtJdfiM_DATzmzjtOuoGsGwYK5a5Pt4A/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-5997206026351497820</guid><pubDate>Wed, 04 Mar 2009 16:19:00 +0000</pubDate><atom:updated>2009-03-04T16:25:06.570+00:00</atom:updated><title>Halt, this is StyleCop.  You are in violation of SA1201!</title><description>&lt;p&gt;&lt;a href=&quot;http://code.msdn.microsoft.com/sourceanalysis&quot; target=&quot;_blank&quot;&gt;StyleCop&lt;/a&gt; has a &lt;strike&gt;law&lt;/strike&gt; rule named &lt;a href=&quot;http://www.thewayithink.co.uk/stylecop/sa1201.htm&quot; target=&quot;_blank&quot;&gt;SA1201&lt;/a&gt;. It says that you should put various parts of your code in the correct order.&amp;#160; For the contents of a class this goes like:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Fields&lt;/li&gt;    &lt;li&gt;Constructors&lt;/li&gt;    &lt;li&gt;Finalizers (Destructors)&lt;/li&gt;    &lt;li&gt;Delegates&lt;/li&gt;    &lt;li&gt;Events&lt;/li&gt;    &lt;li&gt;Enums&lt;/li&gt;    &lt;li&gt;Interfaces&lt;/li&gt;    &lt;li&gt;Properties&lt;/li&gt;    &lt;li&gt;Indexers&lt;/li&gt;    &lt;li&gt;Methods&lt;/li&gt;    &lt;li&gt;Structs&lt;/li&gt;    &lt;li&gt;Classes&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Doing all this by hand is tedious, but as with most things, &lt;a href=&quot;http://www.jetbrains.com/resharper/&quot; target=&quot;_blank&quot;&gt;ReSharper&lt;/a&gt; (R#) makes it easier!&lt;/p&gt;  &lt;p&gt;R# has a couple of features that, when combined, will mean you are fully SA1201 compliant (and, quite possibly well within the &lt;a href=&quot;http://www.entertonement.com/clips/39146/You-have-20-seconds-to-comply&quot; target=&quot;_blank&quot;&gt;20 seconds compliance window&lt;/a&gt;!)&amp;#160; Firstly, there is a feature called Code Cleanup:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfwDcho_wzEeWVYqpPFikP94iLbg7nvxst7HwOj5c0kwfIaeaBlNyz-1Omk_fAiVTjO8XK0tG1QzmHVpJwotiYssd7tig_QsjTfieNw9vDOloPfMLuol49Y9e8tX2HpL9kJtLSMg/s1600-h/sshot-2%5B5%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;sshot-2&quot; border=&quot;0&quot; alt=&quot;sshot-2&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBRwrjAlXUqtrJEFR5Com1c2kC57EYnYYtbUdd9rMiJRXSD_14tfu5k37BuGU6w_rYsesmzL-rlq9UOTb8GFOoPRDhMe8c3NURbPejZXT1YQ0PVsMXrbCpJouaSsQVZJvJvmx1tw/?imgmax=800&quot; width=&quot;410&quot; height=&quot;456&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You can get R# to do various things during code clean-up.&amp;#160; One of them is Reorder Type Members.&amp;#160; R# does a decent job of moving stuff around by default, but it’s not perfect and doesn’t stop all warnings about SA1201.&amp;#160; Thankfully, Reorder Type Members is configurable.&amp;#160; The interface is straight XML in the R# Options screen.&amp;#160; It’d be nice to have a GUI over it, but as yet (in R# 4.1 and &lt;a href=&quot;http://www.jetbrains.net/confluence/display/ReSharper/ReSharper+4.5+Nightly+Builds&quot; target=&quot;_blank&quot;&gt;4.5&lt;/a&gt;), there isn’t one.&amp;#160; Thankfully, you can’t bugger things up too much as the XML is validated against an XSD before it’s saved.&lt;/p&gt;  &lt;p&gt;I was going through a legacy project recently and wanted a way to automatically reorder things, so I modified the R# XML configuration.&amp;#160; To get your environment set-up, &lt;a href=&quot;http://stevedunns.googlepages.com/ReSharperReorderTypeMembersConfigura.xml&quot; target=&quot;_blank&quot;&gt;download the new XML configuration&lt;/a&gt;, go to ReSharper/Options and under languages/C# there an entry named &lt;strong&gt;Type Members Layout&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiToWxz8lrwofutC9pzHvVcVNKS2jzCp45Y50DMIBhS2bgdpVeB5A7rdR7p602MidkBNkJr9KpTysNbbAB5jxfEKrTv1bIB5nZqywGIx4lf1Bo3ZdaLm81Sz7OS4SDYI7PaSZH4QA/s1600-h/sshot-3%5B5%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;sshot-3&quot; border=&quot;0&quot; alt=&quot;sshot-3&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEhRfwT6c6bMK7rqI8Sxb2VfDbj22zRiuLUjbDsqwr4Pl68gE2VuZpyM2nNduhXLF1KGtPBkSfQudUoEZooVzcI4yIcQTqLYc7BEH7pXUaPz1gAJYUt4pza3YEr32t_jFfeefO7Q/?imgmax=800&quot; width=&quot;420&quot; height=&quot;391&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Deselect &lt;em&gt;Use Default Patterns&lt;/em&gt; check-box and past in the new XML and click OK.&lt;/p&gt;  &lt;p&gt;If you want a C# class that contains most of the things that should be reorganised, &lt;a href=&quot;http://stevedunns.googlepages.com/Class1.cs&quot; target=&quot;_blank&quot;&gt;download it here&lt;/a&gt;.&amp;#160; Mash it up a bit and then run StyleCop on it to ensure no SA1201 errors.&lt;/p&gt;  </description><link>http://stevedunns.blogspot.com/2009/03/halt-this-is-stylecop-you-are-in.html</link><author>noreply@blogger.com (Steve Dunn)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBRwrjAlXUqtrJEFR5Com1c2kC57EYnYYtbUdd9rMiJRXSD_14tfu5k37BuGU6w_rYsesmzL-rlq9UOTb8GFOoPRDhMe8c3NURbPejZXT1YQ0PVsMXrbCpJouaSsQVZJvJvmx1tw/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-709299203569553598</guid><pubDate>Tue, 03 Mar 2009 11:55:00 +0000</pubDate><atom:updated>2009-03-03T11:55:49.512+00:00</atom:updated><title>Hiding your privates from StyleCop</title><description>&lt;p&gt;&lt;a href=&quot;http://stevedunns.blogspot.com/2009/02/stylecop.html&quot; target=&quot;_blank&quot;&gt;I like StyleCop&lt;/a&gt; but I didn’t like the fact it produced warnings on private fields and methods.&amp;#160; I was wrong. Not wrong in that I didn’t like warnings on privates, but wrong that I thought there was no way to tell it to stop it.&lt;/p&gt;  &lt;p&gt;Apparently there is.&amp;#160; &lt;a href=&quot;http://blogs.msdn.com/sourceanalysis/&quot; target=&quot;_blank&quot;&gt;Jason Allor&lt;/a&gt; kindly left a comment saying that it can be configured through the StyleCop settings dialog in Visual Studio. &lt;/p&gt;  &lt;p&gt;I took a look and initially didn’t find it.&amp;#160; I didn’t find it because I assumed there’d be different rules for public and private entities.&amp;#160; But there’s not, you can decide at the &lt;em&gt;rule type&lt;/em&gt; level:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-6bop8Ze-c60mw6GXARMf2GnIPfh4bc9IsQq1KJkFzZdy-vSCkm63mrdUFVH4JpefJq5u4awJ9qNDy9K_Dg0S-0NlLjOIMtWVoUoTKvcN4JzFleVEQNWg3yCbrgelOxabHIsWkQ/s1600-h/sshot-1%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;sshot-1&quot; border=&quot;0&quot; alt=&quot;sshot-1&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhKusZd9b9GYqSAc44jdJJFaj6X4_jl97Qz1vD0NXn1Yi2lcAP6yD4xE7lnE8aDfDC0ftzOTfEj7yW9qqHYlMgF85P4NMGwybkS645HEE46fEDaqKJK97qSmpYWygl-YNknX87iw/?imgmax=800&quot; width=&quot;376&quot; height=&quot;318&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;It’d be nice to have separate rules for public and private.&amp;#160; Currently, I’ve turned off &lt;strong&gt;all &lt;/strong&gt;Documentation rules because I don’t like being warned that I haven’t commented private methods.&amp;#160; However, I’d still like it to give me all the other great warnings if I do decide to comment a particular private method.&lt;/p&gt;  </description><link>http://stevedunns.blogspot.com/2009/03/hiding-your-privates-from-stylecop.html</link><author>noreply@blogger.com (Steve Dunn)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhKusZd9b9GYqSAc44jdJJFaj6X4_jl97Qz1vD0NXn1Yi2lcAP6yD4xE7lnE8aDfDC0ftzOTfEj7yW9qqHYlMgF85P4NMGwybkS645HEE46fEDaqKJK97qSmpYWygl-YNknX87iw/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-3899971527459743981</guid><pubDate>Tue, 03 Mar 2009 11:34:00 +0000</pubDate><atom:updated>2009-03-03T11:34:01.369+00:00</atom:updated><title>Programs that launch (or should launch) Visual Studio</title><description>&lt;p&gt;Programs such as &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/bb429476(VS.80).aspx&quot; target=&quot;_blank&quot;&gt;FxCop&lt;/a&gt; provide links to source files that can be clicked and then edited in Visual Studio.&amp;#160; &lt;/p&gt;  &lt;p&gt;FxCop recently&lt;em&gt; (probably since I went 64bit, but also possibly a side-effect of running Windows 7)&lt;/em&gt; started failing when clicking these links.&amp;#160; It said:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Could not start Microsoft Visual Studio. Try specifying an alternate source code editor in Application Settings.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Maybe it just looks in \Program Files\Microsoft Visual Studio\[whatever version].&amp;#160; Anyway, I couldn’t see anything in the event log or any local FxCop logs, so I just changed the setting under Tools\Settings to use an explicit path to devenv.exe.&lt;/p&gt;  &lt;p&gt;This worked, although it started a new instance of the IDE for every file.&amp;#160; To get around that, you need to use the &lt;strong&gt;/Edit&lt;/strong&gt; argument.&amp;#160; Here’s what it looks like (click to make it bigger):&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIhjMLvKmHpaM3ZpBDOzXStZCZ2sfLIxL4xRTVpar6lgh2arq9Oa-0iXa655jZwyb_KnEqeVa0bCGmtn-svyjbnCrfK4BfQtFeZZFgft-_WwtSM2pfabiBImxyE_LkMqI2OrJGOw/s1600-h/sshot-2%5B6%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;sshot-2&quot; border=&quot;0&quot; alt=&quot;sshot-2&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnBlXuaYDgopak6vDPxcEXRV7BubEcRqjiCQx4MchR_Wdap5haBi2oAe0XlHDVRySh8bSX7QYmUQhhLYJeFsD0hcZzoo98r3XL2p4F9jhLJSIe61lYgp8p70StJDw9NB7q8oy0Xg/?imgmax=800&quot; width=&quot;283&quot; height=&quot;251&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;blockquote&gt;&lt;/blockquote&gt;  &lt;p&gt;There’s other handy switches, some of which I knew about, like building a particular project/solution (to get the full list, run devenv.exe /?).&amp;#160;&amp;#160; It now uses an existing instance of Visual Studio if one’s present, otherwise it starts one up.&amp;#160; &lt;/p&gt;  </description><link>http://stevedunns.blogspot.com/2009/03/programs-that-launch-or-should-launch.html</link><author>noreply@blogger.com (Steve Dunn)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnBlXuaYDgopak6vDPxcEXRV7BubEcRqjiCQx4MchR_Wdap5haBi2oAe0XlHDVRySh8bSX7QYmUQhhLYJeFsD0hcZzoo98r3XL2p4F9jhLJSIe61lYgp8p70StJDw9NB7q8oy0Xg/s72-c?imgmax=800" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-6173033147875507883</guid><pubDate>Thu, 26 Feb 2009 10:20:00 +0000</pubDate><atom:updated>2009-02-26T10:20:40.190+00:00</atom:updated><title>ThoughtWork’s Mingle on X64 machines</title><description>&lt;p&gt;By default, 32 bit applications installed on 64 bit machines are installed into the \Program Files (x86) directory.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://studios.thoughtworks.com/mingle-agile-project-management&quot;&gt;Mingle&lt;/a&gt;, in particular, Ruby doesn’t like the brackets in this path, hence, when Mingle tries to start, it fails.&amp;#160; It writes the following entries to the log file in the program’s directory:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Failed to load Rails: C:/Program Files (x86)/Mingle_2_2/app/controllers/caching/keys.rb:1: Invalid char `\257’ (‘¯’) in expression C:/Program Files (x86)/Mingle_2_2/vendor/rails/activesupport/lib/active_support/dependencies.rb:505:in `load’ C:/Program Files (x86)/Mingle_2_2/config/../vendor/rails/railties/lib/initializer.rb:475:in `load_application_initializers’ C:/Program Files (x86)/Mingle_2_2/config/../vendor/rails/railties/lib/initializer.rb:474:in `each’ C:/Program Files (x86)/Mingle_2_2/config/../vendor/rails/railties/lib/initializer.rb:474:in `load_application_initializers’ C:/Program Files (x86)/Mingle_2_2/config/../vendor/rails/railties/lib/initializer.rb:145:in `process’ C:/Program Files (x86)/Mingle_2_2/config/../vendor/rails/railties/lib/initializer.rb:93:in `run’ C:/Program Files (x86)/Mingle_2_2/config/environment.rb:116 C:/Program Files (x86)/Mingle_2_2/config/environment.rb:1&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The solution: change the default installation to just \Program Files.&amp;#160; Handy.&amp;#160; If you want to use Mingle.&amp;#160; On a 64 bit machine.&lt;/p&gt;  </description><link>http://stevedunns.blogspot.com/2009/02/thoughtworks-mingle-on-x64-machines.html</link><author>noreply@blogger.com (Steve Dunn)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-3106196704250181196</guid><pubDate>Tue, 24 Feb 2009 21:53:00 +0000</pubDate><atom:updated>2009-02-24T21:53:08.547+00:00</atom:updated><title>Problems adding an XBox 360 Media Center Extender</title><description>&lt;p&gt;Skip this if you’re not using a Linksys Wireless N device, Media Center, or an XBox 360!&lt;/p&gt;  &lt;p&gt;After my umpteenth Seagate disk packed up yesterday, I’ve just reinstalled Windows 7 X64.&amp;#160; I have spent the last couple of hours trying to get an XBox 360 connected to Windows Media Center.&lt;/p&gt;  &lt;p&gt;Not too long ago I went through the exact same thing:&amp;#160; Start WMC, Start the XBox,&amp;#160; type the number on the XBox’s screen into WMC, and get nothing.&amp;#160; The last time I did this, it was too late in the day to discover what was wrong or how to fix it – but the next day, everything worked perfectly!&lt;/p&gt;  &lt;p&gt;This time, I went through exactly the same ritual.&amp;#160; I looked at the Security event log and it said that :&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Event 5032 – Audit Failure - Windows Firewall was unable to notify the user that it blocked an application from accepting incoming connections on the network.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;After ensuring that I’d allowed Media Center Extenders through the home network (shortly followed by turning the damn firewall off altogether), I started getting (from the Media Center log under Applications and Services Logs in Event Viewer):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Event 538 - Media Center Extender Setup failed as the Extender was detected on the network but the UPnP search for the Extender failed (timed out after 20000ms).&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This all seemed very familiar and nothing I was doing was making a difference.&amp;#160; It was at this point on my last attempt that I went off to do something else.&amp;#160; This time though, the something else’s opening hours hadn’t yet arrived, so I persevered!&lt;/p&gt;  &lt;p&gt;In the corner of the screen (remember, this is a fresh install), was the Windows Update icon.&amp;#160; I checked to see what it needed to update, and along with the 294 Office 2007 security patches was an update for a &lt;em&gt;Marvell - Network – Wireless-N USB Network Adapter&lt;/em&gt;.&amp;#160; I wondered if this had anything to do with my Linksys Wireless N USB, and it looks like it does.&amp;#160; And after restarting, everything worked great!&lt;/p&gt;  &lt;p&gt;The information from Windows Update showed this information:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Marvell - Network - Wireless-N USB Network Adapter &lt;/p&gt;    &lt;p&gt;Update type: Optional &lt;/p&gt;    &lt;p&gt;DriverUpdate: Marvell Network software update released in October, 2007 &lt;/p&gt;    &lt;p&gt;More information:      &lt;br /&gt;&lt;a href=&quot;http://winqual.microsoft.com/support/?driverid=20110859&quot;&gt;http://winqual.microsoft.com/support/?driverid=20110859&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The URL wasn’t much good as it was broken.&amp;#160; The driver information from device manager reads:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Marvell Semiconductor, Inc, version 1.00.04.03 – filename MRVW24C.sys. &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;This replaced the Vista drivers that I downloaded and installed from the Cisco site.&lt;/p&gt;  &lt;p&gt;In fact, I’ve just done a search for &lt;em&gt;Marvell Linksys driver&lt;/em&gt;, and it showed &lt;a href=&quot;http://forums.linksys.com/linksys/board/message?board.id=Wireless_Adapters&amp;amp;thread.id=10108&quot;&gt;this page&lt;/a&gt;.&amp;#160; This shows how to force the driver on Vista/Windows 7 if it doesn’t show up via Windows Update.&lt;/p&gt;  &lt;p&gt;I hope some of these keywords will help others with this problem.&amp;#160; My heart sank when I searched for the Media Center error and didn’t get 1 single hit!&amp;#160; That shouldn’t happen any more!&lt;/p&gt;  </description><link>http://stevedunns.blogspot.com/2009/02/problems-adding-xbox-360-media-center.html</link><author>noreply@blogger.com (Steve Dunn)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-2720638571217272496</guid><pubDate>Mon, 23 Feb 2009 11:21:00 +0000</pubDate><atom:updated>2009-02-24T13:27:12.502+00:00</atom:updated><title>Tool update: Visual Studio Orphaned Items</title><description>&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHQDCwZUz0EzN3p9SwTQ-HzAQk1s1kzWtrSjL_lNbgdFxwg9SuqepprWn4QULQEzZ2THsxgX9TRrr1sGgEfoNMewrqyOr6EFYEcoWL9kW7qd9XZut79Cf4Dt3V4-vKwWtOW7dBhA/s1600-h/sshot-1%5B7%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;sshot-1&quot; border=&quot;0&quot; alt=&quot;sshot-1&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAUxaPiRT8eg6joJdaCK45yEN5P9ifHkUV71JanBKrQrR05u96oVRIV2zOngZcNeQMgcvoIc1M_DNGl1Y-qJtYS5-Znad05RUI5xHQ-r3eXstv6yoI8V3wi1QxAeHq9VBqFD5_pw/?imgmax=800&quot; width=&quot;240&quot; height=&quot;179&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;A while back I did a small simple tool to find files on disk that were once part of a Visual Studio project but are now orphaned (removed from the project but still on disk and in your source repository).&amp;#160; I’ve just updated it to find obsolete files from Visual Studio 2008 projects.&amp;#160; You can download the app or the installer, or the source (or all of them!).&amp;#160; The installer adds a right-click context menu action for .csproj files in Windows Explorer.&lt;/p&gt;  &lt;p&gt;Available &lt;a href=&quot;http://stevedunns.googlepages.com/vsorphaneditemsfinder&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;  </description><link>http://stevedunns.blogspot.com/2009/02/tool-update-visual-studio-orphaned.html</link><author>noreply@blogger.com (Steve Dunn)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAUxaPiRT8eg6joJdaCK45yEN5P9ifHkUV71JanBKrQrR05u96oVRIV2zOngZcNeQMgcvoIc1M_DNGl1Y-qJtYS5-Znad05RUI5xHQ-r3eXstv6yoI8V3wi1QxAeHq9VBqFD5_pw/s72-c?imgmax=800" height="72" width="72"/><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32841709.post-2543969566487017326</guid><pubDate>Sat, 21 Feb 2009 13:44:00 +0000</pubDate><atom:updated>2009-02-21T13:44:26.318+00:00</atom:updated><title>StyleCop</title><description>&lt;p&gt;&lt;a href=&quot;http://code.msdn.microsoft.com/sourceanalysis&quot; target=&quot;_blank&quot;&gt;StyleCop&lt;/a&gt; is a tool that looks at your source code and recommends ways to improve readability and consistency.&amp;#160; For instance, it tells you to:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Put things in a consistent order in the file – Constructors first, followed by public methods, followed by private methods etc.&lt;/li&gt;    &lt;li&gt;Put a blank line after a closing brace.&amp;#160; I thought this was a bit anal, but for some reason it makes code much more readable.&amp;#160; &lt;em&gt;On a related note, some people swear by having no blank lines in their source.&amp;#160; Their reasoning: they can see more on screen without having to scroll and can see more of the method on screen at once.&amp;#160; To me, this was like reading a book with no paragraphs.&amp;#160; Also, If you’ve got methods that take up a whole screen, they’re probably &lt;/em&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Single_responsibility_principle&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;doing too much&lt;/em&gt;&lt;/a&gt;&lt;em&gt; and are &lt;/em&gt;&lt;a href=&quot;http://www.onjava.com/pub/a/onjava/2004/06/16/ccunittest.html&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;too complex&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&amp;#160; I was invited to try it with the reassurance that I’d eventually see the benefit.&amp;#160; I declined, but then realised that I had been ‘trying it’ all along - every time I read the code!&amp;#160; &lt;/em&gt;&lt;/li&gt;    &lt;li&gt;Remove unnecessary parenthesis.&amp;#160; Reminds of a quote:&amp;#160; &lt;em&gt;“Parenthesis (however relevant) are unnecessary.”&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;Add XML comments to methods, properties, and events.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;There’s hundreds of suggestions, mostly good, although there are some issues – here’s mine:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;I generally don’t like to comment private methods, but there doesn’t seem a way to tell it to only warn me if I have public methods that are undocumented.&amp;#160; I hope this’ll be added to the next version.&amp;#160; I don’t like commenting private methods as, if I feel it needs a comment, then the code isn’t self describing and is either a) poorly named, or b) too complex, or c) doing too much.&lt;/li&gt;    &lt;li&gt;StyleCop says don’t precede field names with notation.&amp;#160; I follow the almost ubiquitous practice of preceding private fields with an underscore.&amp;#160; For no other reason than to be able to type &lt;em&gt;underscore &lt;/em&gt;+ &lt;em&gt;ctrl+space &lt;/em&gt;and have intellisense pop-up my private fields.&amp;#160;&amp;#160; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;The good news is that it’s possible to turn off&amp;#160; warnings.&amp;#160; It’s also very well thought out in how these settings are managed:&amp;#160; If you think a certain warning is so ridiculous you never want to see it again, you can put it in the StyleCop.Settings file and put this file at the top of your source tree.&amp;#160; If you’ve got a project where it would make sense to turn off a warning just for that project, you can put another StyleCop.Settings file at the project level.&amp;#160; More &lt;a href=&quot;http://blogs.msdn.com/sourceanalysis/pages/sharing-source-analysis-settings-across-projects.aspx&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I’m wondering if anybody would be brave enough to integrate this in their CI process!&amp;#160; Breaking the build because there’s not a blank line under a brace seems a tad extreme!&lt;/p&gt;  </description><link>http://stevedunns.blogspot.com/2009/02/stylecop.html</link><author>noreply@blogger.com (Steve Dunn)</author><thr:total>4</thr:total></item></channel></rss>