<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Visual Studio Hacks &#187; Addins</title>
	<atom:link href="http://visualstudiohacks.com/category/addins/feed/" rel="self" type="application/rss+xml" />
	<link>http://visualstudiohacks.com</link>
	<description></description>
	<lastBuildDate>Mon, 23 Nov 2009 23:09:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>SlickEdit Versioning Toolbox Screencast</title>
		<link>http://visualstudiohacks.com/addins/screencasts/slickedit-versioning-toolbox-screencast/</link>
		<comments>http://visualstudiohacks.com/addins/screencasts/slickedit-versioning-toolbox-screencast/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 09:46:00 +0000</pubDate>
		<dc:creator>javery</dc:creator>
				<category><![CDATA[Screencasts]]></category>

		<guid isPermaLink="false">http://vsh.infozerk.net/?p=113</guid>
		<description><![CDATA[
In this screencast I cover some of the cool features I found in the SlickEdit Versioning Toolbox. The toolbox is a commercial product, but it is only $49 so I think it is a pretty [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>
<p>In this screencast I cover some of the cool features I found in the <a href="http://www.slickedit.com/index.php?option=com_content&amp;task=view&amp;id=488&amp;Itemid=57">SlickEdit Versioning Toolbox</a>. The toolbox is a commercial product, but it is only $49 so I think it is a pretty good deal.</p>
<p><object id="flashMovie" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" viewastext="" height="731" width="900"></p>
<param name="_cx" value="26">
<param name="_cy" value="26">
<param name="FlashVars" value="csConfigFile=http://visualstudiohacks.com/files/media/flash/slickedit/slickeditvt2_config.xml">
<param name="Movie" value="http://visualstudiohacks.com/files/media/flash/slickedit/slickeditvt2_controller.swf?csConfigFile=http://visualstudiohacks.com/files/media/flash/slickedit/slickeditvt2_config.xml">
<param name="Src" value="http://visualstudiohacks.com/files/media/flash/slickedit/slickeditvt2_controller.swf?csConfigFile=http://visualstudiohacks.com/files/media/flash/slickedit/slickeditvt2_config.xml">
<param name="WMode" value="Window">
<param name="Quality" value="high">
<param name="SAlign" value="">
<param name="Menu" value="-1">
<param name="Base" value="">
<param name="AllowScriptAccess" value="always">
<param name="DeviceFont" value="0">
<param name="EmbedMovie" value="0">
<param name="BGColor" value="#FFFFFF">
<param name="SWRemote" value="">
<param name="MovieData" value="">
<param name="SeamlessTabbing" value="1">
<p>   <embed id="EmbedflashMovie" src="http://visualstudiohacks.com/files/media/flash/slickedit/slickeditvt2_controller.swf?csConfigFile=http://visualstudiohacks.com/files/media/flash/slickedit/slickeditvt2_config.xml" flashvars="csConfigFile=http://visualstudiohacks.com/files/media/flash/slickedit/slickeditvt2_config.xml" quality="high" bgcolor="#FFFFFF" type="application/x-shockwave-flash" pluginspace="http://www.macromedia.com/go/getflashplayer" height="731" width="900">	</p>
<p></object></p></p>
]]></content:encoded>
			<wfw:commentRss>http://visualstudiohacks.com/addins/screencasts/slickedit-versioning-toolbox-screencast/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Checking your Source Code and Comments</title>
		<link>http://visualstudiohacks.com/addins/checking-your-source-code-and-comments/</link>
		<comments>http://visualstudiohacks.com/addins/checking-your-source-code-and-comments/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 14:26:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Addins]]></category>

		<guid isPermaLink="false">http://vsh.infozerk.net/?p=100</guid>
		<description><![CDATA[
It is a shame that what has become such a standard features in most applications is notably missing in Visual Studio.
I personally struggle with spelling and have in the past resorted to copying and pasting [...]]]></description>
			<content:encoded><![CDATA[<p></p><div><img src="/files/media/image/spellCheckerScreenShot.jpg" alt="Screen Shot of IntelliSpell Spell Checker  in VS2008" style="margin: 0px 0px 0px 10px; padding: 4px; position: relative; float: right;" /></p>
<p>It is a shame that what has become such a standard features in most applications is notably missing in Visual Studio.</p>
<p>I personally struggle with spelling and have in the past resorted to copying and pasting text into Microsoft Word,      into Google  or using the <a target="_blank" href="http://blogs.msdn.com/webdevtools/archive/2007/12/13/spell-checker-for-html-asp-net-jscript-vb-c-css-and-c-for-visual-studio-2005-and-2008.aspx">ASP.NET spell checker add-in </a>. The main weaknesses of the ASP.NET spell checker add-in is that it      relies on a recent version of Microsoft Office being installed and does not check .resx files.</p>
<p>I recently found <a target="_blank" href="http://www.componentone.com/SuperProducts/IntelliSpell/">Component One&#8217;s IntelliSpell</a>, a new add-in for spell checking source code and other files from within Visual Studio 2005/2008 resolves these issues.</p>
<p>There are two versions available; Community Edition which is free and allows you to spell check one file at a time and Professional Edition which lets you check your entire solution and contains additional features.</p>
<p>Once installed IntelliSpell is found under the Tools menu in your IDE from which you can choose to check the active file, project, solution or select a file. Although you have to actively choose to spell check a file or set of files it can easily be bound to a shortcut key or added to a toolbar.</p>
<p>When checking the document words are highlighted with a colored underline in the same manor as they are in Microsoft Word or Firefox. The misspelled words also appear in the task list which allows you to quickly sort through all the spelling mistakes.</p>
<p>To correct a word, as with other applications, you have the ability to right click on the incorrect word and select from a list of suggested alternatives. You also have the ability to add to Dictionary or Ignore all. Although these are standard spell check features they are particularly useful as standard programming terms such a Guid and enum (which may appear in comments) are not included by default in the dictionary.</p>
<p>You can customize the use of IntelliSpell through the options screen. This allows you to choose which parts of the documents you wish to spell check (such as all comments, xml comment and resx files), the dictionary language, the maximum number of suggestions, and much more.</p>
<p>Overall I have found this is to be a very fast and well designed add-in that has saved me time and improved the spelling in my applications. The IntelliSpell add-in can be download from <a target="_blank" href="http://www.componentone.com/SuperProducts/IntelliSpell/">http://www.componentone.com<wbr></wbr>/SuperProducts/IntelliSpell/</a></p>
</div>
<p><strong>Guest Contribution by John Kilmister</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://visualstudiohacks.com/addins/checking-your-source-code-and-comments/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>SlickEdit Editing Toolbox</title>
		<link>http://visualstudiohacks.com/addins/slickedit-editing-toolbox/</link>
		<comments>http://visualstudiohacks.com/addins/slickedit-editing-toolbox/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 20:23:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Addins]]></category>

		<guid isPermaLink="false">http://vsh.infozerk.net/?p=64</guid>
		<description><![CDATA[I love seeing more affordable add-ins that are a great value. SlickEdit recently announced a set of add-ins that are both priced at $49 and both provide a number of compelling features. In this article [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I love seeing more affordable add-ins that are a great value. <a href="http://www.slickedit.com">SlickEdit</a> recently announced a set of add-ins that are both priced at $49 and both provide a number of compelling features. In this article I am going to cover some of the highlights of the <a href="http://www.slickedit.com/index.php?option=com_content&amp;task=view&amp;id=486&amp;Itemid=57">Editing Toolbox.</a></p>
<p><span style="text-decoration: underline;"><strong>Aliases and Acronyms</strong></span></p>
<p>One feature set I particularly enjoy are the Aliases and Acronyms. Acronyms are simple code expansions, you can type a couple of characters and then hit Ctrl+` and it will fill out the entire word. It kind of like a micro-code snippet but it is much easier to use than the built in code snippets in Visual Studio. An example aliases is &quot;cxn&quot; which will expand into SqlConnection. This isn&#8217;t a ground-breaking feature but it can be very useful, especially since it is easy to create additional aliases:</p>
<p><img src="http://www.visualstudiohacks.com/files/media/image/slickedit1.png" alt="" /></p>
<p>Aliases are basically the same idea, but they work inside of the Open File dialog. For instance you can type up in the open file dialog and then Ctrl+Space and it will fill in the path to your user profile. This is much better than typing out &quot;C:\Documents and Settings\James Avery&quot; or hunting through the file system with your mouse. You can also set your own if you have common paths you constantly have to navigate to.</p>
<p><span style="text-decoration: underline;"><strong>Regex Evaluator</strong></span></p>
<p>A couple years back I took a pass at writing an add-in to evaluate regular expressions, but it has fallen by the wayside. I am glad I didn&#8217;t put too much time into it because the Editing Toolbox provides a slick Regex Evaluator. Not only can you test your regular expressions but you can also search RegExLib.com. It also includes a nice quick reference to common regular expressions and a way to save frequently used regular expressions in your own library:</p>
<p><img src="http://www.visualstudiohacks.com/files/media/image/slickedit2.png" alt="" /></p>
<p>These are just two of the features I enjoy, the editing toolbox includes much more:</p>
<ul>
<li>Quick Profiling &#8211; A way to use trace statements to perform quick code profiling, useful for loops and small profiling jobs but not a replacement for a full featured trace tool.</li>
<li>Code Navigation &#8211; Quickly jump to symbol definitions and uses.</li>
<li>Comments &#8211; The add-in makes it easy to wrap comments, change comments to blocks, and reflow comments.</li>
<li>Icon Extractor &#8211; Makes it easy to pull icons from existing applications.</li>
<li>Code Annotations &#8211; A simple way to store comments, tasks, and bug information without modifying your source file.</li>
<li>Auto Code Doc Viewer &#8211; The Auto Code Doc Viewer generates and lets you quickly view the documentation generated from your inline XML based comments.</li>
</ul>
<p>Overall I think the add-in is definitely worth the $49 and provides a number of features I haven&#8217;t seen in competing add-ins. One of the most pleasant surprises is how solid the add-in is. I have gotten used to many add-ins being unstable and causing the IDE to slow down or crash, I didn&#8217;t experience any of this with SlickEdit.</p>
<p><a href="http://www.slickedit.com/index.php?option=com_content&amp;task=view&amp;id=486&amp;Itemid=57">Check out the SlickEdit Editing Toolbox.</a></p>
<p>-James</p>
<p>Disclaimer: SlickEdit provided me with a free copy of the add-in and are an advertiser with my advertising network The Lounge.</p>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fvisualstudiohacks.com%2faddins%2fcoding%2fslickedit-editing-toolbox%2f"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fvisualstudiohacks.com%2faddins%2fcoding%2fslickedit-editing-toolbox%2f" border="0" alt="kick it on DotNetKicks.com" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://visualstudiohacks.com/addins/slickedit-editing-toolbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Classify</title>
		<link>http://visualstudiohacks.com/addins/classify/</link>
		<comments>http://visualstudiohacks.com/addins/classify/#comments</comments>
		<pubDate>Sat, 01 Mar 2008 22:41:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Addins]]></category>

		<guid isPermaLink="false">http://vsh.infozerk.net/?p=50</guid>
		<description><![CDATA[
Classify is a Visual Studio add-in that contains a number of different features, mostly focused on VB.NET development, but some that can be used by C# developers as well.
Scan-Collapse (VB.NET Only)
Probably the most compelling of [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img src="/files/media/image/classify.gif"><br />
Classify is a Visual Studio add-in that contains a number of different features, mostly focused on VB.NET development, but some that can be used by C# developers as well.</p>
<h3>Scan-Collapse (VB.NET Only)</h3>
<p>Probably the most compelling of the features Classify includes is Scan-Collapse. When you work with classes and namespaces you get used to being able to collapse the class or namespace into a single line using the small plus-minus next to the declaration. The Scan-Collapse feature adds this same functionality to other similar pieces of code. Here you can see a simple piece of code:</p>
<p>If (_i = 12) Then</p>
<p>If (_d = 14) Then</p>
<p>End If</p>
<p>End If</p>
<p>After running Scan-Collapse you would now see this:</p>
<p>You can now expand and collapse If blocks just like they were classes or namespaces. Classify will also collapse any Switch or Try statements.</p>
<p>If you would rather not collapse all these statements in your code you can simply put the cursor on a single If line and click the Collapse Code Block button which would collapse just that single code block.</p>
<h3>Generate Accessors (VB.NET + C#)</h3>
<p>Classify will also generate property accessors for your private member variables. There are two different functions for this. The first, Accessors-&gt;Clipboard will generate the accessors and then copy them to the clipboard. The second, Generate Accessors, will generate the accessors and place them in your document.</p>
<h3>Wrap in Region  (VB.NET + C#)</h3>
<p>Classify can be used to wrap code inside of a region by simple selecting the text you want to include in the region and then clicking the Regionize button. Classify will insert the Region code and then place the cursor over the name of the region.</p>
<p>Classify also includes additional functionality to work with SQL statements and tables.</p>
<p><a href="/files/media/file/classify.zip">Download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://visualstudiohacks.com/addins/classify/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CodeKeep</title>
		<link>http://visualstudiohacks.com/addins/codekeep/</link>
		<comments>http://visualstudiohacks.com/addins/codekeep/#comments</comments>
		<pubDate>Sat, 01 Mar 2008 22:39:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Addins]]></category>

		<guid isPermaLink="false">http://vsh.infozerk.net/uncategorized/codekeep/</guid>
		<description><![CDATA[CodeKeep is a simple code snippet management add-in that allows you to quickly submit and use snippets from the CodeKeep online repository.

CodeKeep is a simple code snippet management add-in that allows you to
quickly submit and [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>CodeKeep is a simple code snippet management add-in that allows you to quickly submit and use snippets from the CodeKeep online repository.</p>
<p><span id="more-287"></span><br />
<a href="http://www.codekeep.net">CodeKeep</a> is a simple code snippet management add-in that allows you to<br />
quickly submit and use snippets from the CodeKeep online repository.<br />
There are two main functions to working with CodeKeep.</p>
<h3>Adding Snippets</h3>
<p>Anytime you write a piece of code that you have a feeling you will need<br />
again in the future, might as well add it to CodeKeep so you can<br />
quickly find it and use it in the future. To add a snippet to CodeKeep<br />
you simply have to select that code in the IDE, right-click, and then<br />
select Send to CodeKeep as seen here.</p>
<p><img src="/files/media/image/codekeep2.gif"></p>
<p>You then get to add a description and some usage notes about the piece<br />
of code, as well as what language your code is written in. (CodeKeep<br />
loves all languages equally)</p>
<h3>Searching</h3>
<p>Now that you have a bunch of snippets loaded in to CodeKeep it&#8217;s time<br />
to use them (as well as all the snippets other people have added).<br />
Simply naviage to Tools -&gt; CodeKeep -&gt; Search and you will see<br />
the following screen.</p>
<p><img src="/files/media/image/codekeep1.gif"></p>
<p>Through the search interface you can view all of your snippets or<br />
search through all of the publically available snippets based on their<br />
title, description, usage, and based on the language of the snippet.<br />
Once you find what you are looking for you can quickly copy and paste<br />
it into your code.</p>
<p>CodeKeep also includes a great web interface so you can also access and<br />
manage your snippets from the web (and not worry about where to store<br />
your snippets since they are available from everywhere)</p>
<p><a href="http://www.codekeep.net/addins/vs2003.aspx">Download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://visualstudiohacks.com/addins/codekeep/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharpTools</title>
		<link>http://visualstudiohacks.com/addins/sharptools/</link>
		<comments>http://visualstudiohacks.com/addins/sharptools/#comments</comments>
		<pubDate>Sat, 01 Mar 2008 22:36:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Addins]]></category>

		<guid isPermaLink="false">http://vsh.infozerk.net/uncategorized/sharptools/</guid>
		<description><![CDATA[SharpTools from Morrison Schwartz gives developers a framework for easily developing add-ins for Visual Studio .NET 2003.&#160; SharpTools also comes with a number of very handy tools as part of the basic install package.

SharpTools from [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>SharpTools from Morrison Schwartz gives developers a framework for easily developing add-ins for Visual Studio .NET 2003.&nbsp; SharpTools also comes with a number of very handy tools as part of the basic install package.</p>
<p><span id="more-286"></span></p>
<p>SharpTools from Morrison Schwartz gives developers a framework for easily developing add-ins for Visual Studio .NET 2003. SharpTools also comes with a number of very handy tools as part of the basic install package.</p>
<p>Developers can rapidly tack on new functionality by creating plug-ins for SharpTools. Note that SharpTools is itself an add-in to Visual Studio. Developers extend SharpTools via plug-ins to SharpTools, not by creating new add-ins to Visual Studio. This means you&rsquo;ll always be running your tools within SharpTools &ndash; and you&rsquo;ll need to deploy SharpTools to any systems you want to run your new tools on.</p>
<p>Plug-ins are quickly spun up by creating a new C# SharpTool Wizard project, added during SharpTools installation.</p>
<p><img src="/files/media/image/sharptools3.gif" alt="" /></p>
<p>As shown below, a one-screen wizard prompts you for a couple options.</p>
<p><img src="/files/media/image/sharptools1.gif" alt="" /></p>
<p>The plug-in then creates a new project complete with references and a fairly complete class for your plug-in. Obviously, you&rsquo;ll still need to wire up your widget&rsquo;s functionality, but all the interfacing to Visual Studio .NET has been handled already. SharpTools also comes with a fair number of already built plug-ins. Perhaps the most useful of these tools is the Code Library for storing documentation and code in a database. The database can be a local MSDE or SQL instance, or you can connect and share data with other developers via a central SQL server database.</p>
<p>A neat feature is keyword support, whereby snippets or documentation can be inserted directly into the VS editor by typing the keyword and then CTRL-ENTER. Former Emacs users might remember abbreviation mode when thinking of this SharpTool functionality. The library comes already populated with quite a few snippets and an example of using the library for storing documentation.</p>
<p><img src="/files/media/image/sharptools4.gif" alt="" /></p>
<p>Another feature is a tool for generates strongly-typed collections. A dialog lets you select which class to use, asks for access specifiers, and checks if you want the collection to raise events for various actions.</p>
<p><img src="/files/media/image/sharptools2.gif" alt="" /></p>
<p>The tool creates a new class with a great amount of functionality and documentation built in. This snippet below shows a partial class generated from a simple business entity:</p>
<p>&nbsp;</p>
<div class="cf"><span class="cb1">///</span><span class="cb2"> </span><span class="cb1">&lt;summary&gt;</span><br />
<span class="cb1">///</span><span class="cb2"> Represents a collection of </span><span class="cb1">&lt;see cref=&#8217;WindowsApplication1.Person&#8217;/&gt;</span><span class="cb2"> objects.</span><br />
<span class="cb1">///</span><span class="cb2"> </span><span class="cb1">&lt;/summary&gt;</span><br />
<span class="cb2">// This class was created on 9/13/2005 by the SharpTools CollectionBuilder Addin.</span><br />
<span class="cb3">public</span> <span class="cb3">class</span> PersonCollection : System.Collections.ICollection<br />
{</p>
<p>&nbsp;&nbsp;&nbsp; <span class="cb2">// Provides the base object storage used by this class</span><br />
&nbsp;&nbsp;&nbsp; <span class="cb3">private</span> System.Collections.ArrayList items;</p>
<p>&nbsp;&nbsp;&nbsp; <span class="cb2">// This version counter is incremented any time the collection changes.</span><br />
&nbsp;&nbsp;&nbsp; <span class="cb3">private</span> <span class="cb3">int</span> listVersion;</p>
<p>&nbsp;&nbsp;&nbsp; <span class="cb1">///</span><span class="cb2"> </span><span class="cb1">&lt;summary&gt;</span><br />
&nbsp;&nbsp;&nbsp; <span class="cb1">///</span><span class="cb2"> Initializes a new instance of the </span><span class="cb1">&lt;see cref=&#8217;WindowsApplication1.PersonCollection&#8217;/&gt;</span><span class="cb2"> class.</span><br />
&nbsp;&nbsp;&nbsp; <span class="cb1">///</span><span class="cb2"> </span><span class="cb1">&lt;/summary&gt;</span><br />
&nbsp;&nbsp;&nbsp; <span class="cb3">public</span> PersonCollection()<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; items = <span class="cb3">new</span> System.Collections.ArrayList();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; listVersion = 0;<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; <span class="cb1">///</span><span class="cb2"> </span><span class="cb1">&lt;summary&gt;</span><br />
&nbsp;&nbsp;&nbsp; <span class="cb1">///</span><span class="cb2"> Returns a number that can be used to determine if the collection has changed since some previous</span><br />
&nbsp;&nbsp;&nbsp; <span class="cb1">///</span><span class="cb2"> reference point, since this value changes each time the collection is modified in any way.</span><br />
&nbsp;&nbsp;&nbsp; <span class="cb1">///</span><span class="cb2"> </span><span class="cb1">&lt;/summary&gt;</span><br />
&nbsp;&nbsp;&nbsp; <span class="cb3">internal</span> <span class="cb3">int</span> Version<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span class="cb3">get</span><br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span class="cb3">return</span> listVersion;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; <span class="cb1">///</span><span class="cb2"> </span><span class="cb1">&lt;summary&gt;</span><br />
&nbsp;&nbsp;&nbsp; <span class="cb1">///</span><span class="cb2"> Gets the number objects contained in the collection.</span><br />
&nbsp;&nbsp;&nbsp; <span class="cb1">///</span><span class="cb2"> </span><span class="cb1">&lt;summary&gt;</span><br />
&nbsp;&nbsp;&nbsp; <span class="cb3">public</span> <span class="cb3">virtual</span> <span class="cb3">int</span> Count<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span class="cb3">get</span><br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span class="cb3">return</span> items.Count;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; <span class="cb1">///</span><span class="cb2"> </span><span class="cb1">&lt;summary&gt;</span><br />
&nbsp;&nbsp;&nbsp; <span class="cb1">///</span><span class="cb2"> Gets a value indicating whether access to the collection is synchronized (thread-safe).</span><br />
&nbsp;&nbsp;&nbsp; <span class="cb1">///</span><span class="cb2"> </span><span class="cb1">&lt;summary&gt;</span><br />
&nbsp;&nbsp;&nbsp; <span class="cb3">public</span> <span class="cb3">virtual</span> <span class="cb3">bool</span> IsSynchronized<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span class="cb3">get</span><br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span class="cb3">return</span> items.IsSynchronized;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
}</div>
<p>&nbsp;</p>
<p>There are quite a few other simpler tools included in SharpTools&rsquo; default install. You can search Google for a highlighted term or phrase, zip the entire solution into one archive, capture screen shots of your application (but only during execution, not design), and add copyright notice (or headers) to all files in a project.</p>
<p>Folks with a background in Win32 development will appreciate the Win32 to .NET mapping tool. This lets you browse through the Win32 API and see what parts of the Framework are applicable. Additionally, there&rsquo;s a database manager for MSDE instances, something Microsoft left out of the distribution.</p>
<p>Another tool let you view DataSet objects during debugging sessions, much like VS2005&rsquo;s visualizers. There&rsquo;s also an RSS Reader tool which will let you read RSS feeds from within Visual Studio.</p>
<p>The binaries for SharpTools are free for download and installation, but donations via PayPay are encouraged. The source code is available for $50. There&rsquo;s also a group of forums for discussing SharpTools. The forums are actively supported by developers from Morrison Schwartz.</p>
]]></content:encoded>
			<wfw:commentRss>http://visualstudiohacks.com/addins/sharptools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CR Editing</title>
		<link>http://visualstudiohacks.com/addins/cr-editing/</link>
		<comments>http://visualstudiohacks.com/addins/cr-editing/#comments</comments>
		<pubDate>Sat, 01 Mar 2008 22:34:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Addins]]></category>

		<guid isPermaLink="false">http://vsh.infozerk.net/uncategorized/cr-editing/</guid>
		<description><![CDATA[Oliver Sturm&#8217;s CR Electric Editing plugin, based on the DXCore plugin framework, brings Emacs functionality to Visual Studio.

Developers with a background in any of the Emacs variants may remember the helpful &#8220;electric editing&#8221; features some [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Oliver Sturm&rsquo;s CR Electric Editing plugin, based on the DXCore plugin framework, brings Emacs functionality to Visual Studio.</p>
<p><span id="more-285"></span></p>
<p>Developers with a background in any of the Emacs variants may remember the helpful &ldquo;<a href="http://www.gnu.org/software/emacs/manual/html_node/Electric-C.html#Electric%20C">electric editing</a>&rdquo; features some of the various modes offered. Electric characters do handy formatting as they&rsquo;re typed into the code editor. For example, braces ({,}) and semi-colons (;) cause the current line to correctly indent, then add a newline with the cursor at the correct indentation level.</p>
<p>Oliver Sturm&rsquo;s <a href="http://www.sturmnet.org/blog/archives/2005/04/10/electric-editing/">CR Electric Editing plugin</a>, based on the DXCore plugin framework, brings the same functionality to Visual Studio. Electric Editing also gives you &ldquo;hungry&rdquo; deletes of whitespaces, deleting all whitespaces to the left of the carat in one fell swoop. This eases the nuisance of cleaning up after you&rsquo;ve accidentally hit Return and are left with the caret five indents in.</p>
<p>Electric deletes do the same thing, and will work across multiple lines. Additionally &ldquo;hints&rdquo; show exactly what whitespace will be deleted when the cursor is at an end or beginning of a line. The hints are very unobtrusive, and their color can be changed via DXCore&rsquo;s Options menu. The figure below shows whitespace hints in red (the default color is a much more pleasant light blue).</p>
<p><img src="/files/media/image/crediting1.gif" alt="" /></p>
<p>An additonal great feature of Electric Editing is Emacs-like scrolling, where scrolling starts when your cursor is several lines below the top of the screen. (Or above the bottom of the screen if you&rsquo;re heading south.)</p>
<p>Electric Editing is very flexible with its configuration options. You control what&rsquo;s deleted, when it&rsquo;s deleted, and how long hints delay before showing up &ndash; or at all. You can also set where the scroll point offset is from the top or bottom of the screen. Sturm has a great walk-through of configuration options here <a href="http://www.sturmnet.org/blog/archives/2005/04/13/electric-editing-11/">on his blog</a>.</p>
<p>DXCore and Electric Editing both work on Visual Studio .NET 2003. DXCore&rsquo;s installation claims &ldquo;experimental&rdquo; support for Visual Studio .NET 2005; however, Sturm&rsquo;s blog notes the last several versions of his plugin have been tested under VS 2005 Beta 2.</p>
<p>Installation of both DXCore and Electric Editing is very simple. Install DXCore, then copy Electric Editing&rsquo;s DLL to DXCores&rsquo; plugin directory. In my case, that&rsquo;s C:\Program Files\Developer Express Inc\DXCore for Visual Studio .NET\1.1\Bin\Plugins</p>
<p>CR Electric Editing may not seem like a sexy, all-powerful plugin, but it&rsquo;s right in line with the Emacs and Unix mindset: write a tool that does one or a few things very well. Electric Editing does just that by enhancing a small portion of the editing experience.</p>
]]></content:encoded>
			<wfw:commentRss>http://visualstudiohacks.com/addins/cr-editing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CR_Documentor</title>
		<link>http://visualstudiohacks.com/addins/cr_documentor/</link>
		<comments>http://visualstudiohacks.com/addins/cr_documentor/#comments</comments>
		<pubDate>Sat, 01 Mar 2008 22:33:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Addins]]></category>

		<guid isPermaLink="false">http://vsh.infozerk.net/uncategorized/cr_documentor/</guid>
		<description><![CDATA[The CR_Documentor plug-in allows you to view XML comments as rendered comments right inside of the IDE.

XML comments in C# and Visual Basic 2005 enable developers to create clear documentation of software classes. Keeping the [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>The CR_Documentor plug-in allows you to view XML comments as rendered comments right inside of the IDE.</p>
<p><span id="more-284"></span></p>
<p>XML comments in C# and Visual Basic 2005 enable developers to create clear documentation of software classes. Keeping the XML comments right in the source helps mitigate documentation disconnects when a developer changes something in existing code &ndash; at least if they change the comments as they&rsquo;re updating the code.</p>
<p>These XML comments can be extracted out to a separate XML file during the build process by selecting a project&rsquo;s property pages and checking the &ldquo;XML Documentation File&rdquo; option on the &ldquo;Build&rdquo; tab. By default the resulting XML file lands in the build&rsquo;s output directory.</p>
<p>This XML file can then be used to create any number of separate help files including Windows Help (chm), HTML help, or MSDN-style help. Developers can use simple XSL transforms or a tool like NDoc to produce the documentation.</p>
<p>However, this requires a separate build step which can be a nuisance when all you&rsquo;re trying to do is verify you&rsquo;ve got a &lt;see&gt; reference correct.</p>
<p>Travis Illig has helped out by porting Lutz Roeder&rsquo;s &ldquo;Documentor&rdquo; application into the DXCore framework. This enables developers to see rendered documentation from a window directly within the Visual Studio IDE.</p>
<p>[NOTE: DXCore, from Developer Express, is the framework behind their popular CodeRush productivity booster. DXCore is freely available, but only for personal use.]</p>
<p>Download Illig&rsquo;s plugin, exit all Visual Studio instances, and drop the dll file into DXCore&rsquo;s plugin directory (&ldquo;C:\Program Files\Developer Express Inc\DXCore for Visual Studio .NET\1.1\Bin\Plugins&rdquo; on my system.) After restarting Visual Studio you&rsquo;ll see the &ldquo;Documentor&rdquo; option under the DevExpress -&gt; Tool Windows menu. A separate dockable window appears in the IDE.</p>
<p><img src="/files/media/images/crdocumentor1.gif" alt="" /></p>
<p>One hitch with the plugin is that text in separate files loaded via the &lt;include&gt; tag aren&rsquo;t pulled in and rendered; however, text clearly notes this and shows the file location and XPath parameter.</p>
<p>This window renders documentation in HTML format any time you have the cursor in an XML comment. Links via &lt;see&gt; and &lt;seealso&gt; are properly displayed, although inactive, and &lt;code&gt; sections are formatted just as they would be in &ldquo;real&rdquo; documentation.</p>
<p><a href="http://www.paraesthesia.com/blog/comments.php?id=701_0_1_0_C">CR_Documentor</a> has a number of useful configuration options available through the Documentor section of the DevExpress -&gt; Options dialog. You can select between MSDN and NDoc&rsquo;s tag sets, determine how to handle undefined tags, replace tabs in &lt;code&gt; sections with spaces, and toggle the toolbar off and on in the Documentor window.</p>
<p>CR_Documentor is a great little tool: it&rsquo;s simple and does one thing very well. It&rsquo;s a very handy add-in if you&rsquo;re using CodeRush or DXCore.</p>
<p>Travis Illig, creator of the CR_Documentor plugin recently passed on some news about his plugin.&nbsp; He&rsquo;s updated it to provide support for the &lt;include&gt; tag &mdash; the only tag that was previously unsupported.&nbsp; You can find his updated plugin <a href="http://www.paraesthesia.com/blog/comments.php?id=701_0_1_0_C">at his blog</a>.</p>
<p>As a side note, Travis said he solved the problem in part by using System.Web.Caching outside of a web context.</p>
]]></content:encoded>
			<wfw:commentRss>http://visualstudiohacks.com/addins/cr_documentor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ImportSorter</title>
		<link>http://visualstudiohacks.com/addins/importsorter/</link>
		<comments>http://visualstudiohacks.com/addins/importsorter/#comments</comments>
		<pubDate>Sat, 01 Mar 2008 22:31:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Addins]]></category>

		<guid isPermaLink="false">http://vsh.infozerk.net/uncategorized/importsorter/</guid>
		<description><![CDATA[Easily maintain order in your directive blocks.

We software developers often fixate on odd bits and pieces of our craft. You don&#8217;t agree? Go out and try to convince a number of your colleagues that your [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Easily maintain order in your directive blocks.</p>
<p><span id="more-283"></span></p>
<p>We software developers often fixate on odd bits and pieces of our craft. You don&#8217;t agree? Go out and try to convince a number of your colleagues that your current brace placement style should be altered.&nbsp; Didn&rsquo;t get a fight there?&nbsp; What about how many white spaces should be used for indentation, and whether you should use tabs instead of plain spaces.&nbsp; Even better, how about a comment on the closing brace of a block noting what block is being closed, a la:</p>
<p><code>  </code></p>
<p>if (foo == bar)</p>
<p>{</p>
<p>&nbsp;&nbsp;&nbsp;Console.Write(&ldquo;Foobar&rdquo;);</p>
<p>} // end if foo==bar</p>
<p>Nicole Calinoiu&#8217;s fixation is the order of import/using statements in code files. As with any great developer, Calinoiu created a tool to ease the pain of the fixation.&nbsp; Calinoiu&rsquo;s ImportSorter, an addin for Visual Studio 2005 works so well that Calinoiu was awarded Third Place in <a href="http://www.larkware.com/contests/contest2005winners.html">Larkware&rsquo;s 2005 Programming Contest</a>.</p>
<p>ImportSorter installs easily and adds a configuration option to Visual Studio&rsquo;s Tools menu, plus a sort option to the context menu in supported code editor windows.&nbsp; The context menu&rsquo;s sort option will fix up mangled orders even after Visual Studio has automatically added in a new directive or two.&nbsp; Imports and using statement sorting works for C#, J#, and VB.NET.</p>
<p>Calinoiu created a very flexible rule system for ImportsSorter.&nbsp; Sorting is controlled by groups of namespaces such as System, Microsoft, and user-specific namespaces.&nbsp;&nbsp;Both simple namespaces (System, e.g.) and compound namespaces (System.IO) can be listed, enabling great control over how the using/imports block is sorted.&nbsp; Blank lines can be injected between groups for better visual appearance.</p>
<p>Calinoiu&rsquo;s very clear documentation doesn&rsquo;t bother going into details on the rule configuration&rsquo;s effect on sorting order, but rather lists example configurations and outputs.&nbsp; For example, in the project I&rsquo;m currently working on, I use various Microsoft namespaces, NUnit, and namespaces specific to the solution I&rsquo;m working on.&nbsp; The configuration shown in the following example results in the directive block displayed below the dialog.</p>
<p><img border="0" src="/files/media/image/importsorter1.gif" alt="Configuration dialog" /></p>
<p><code> </code></p>
<p>using System;<br />
using System.Collections.Generic;<br />
using System.Text;</p>
<p>using NUnit.Framework;</p>
<p>using nUGSoft.Entities;<br />
using nUGSoft.Entities.Errors;<br />
using nUGSoft.Entities.Validation;</p>
<p>Any number of configurations can be set, giving you exact control over how your using/imports directive block is formatted.</p>
<p>Calinoiu&rsquo;s tool is another small, concise, handy widget which does its job really, really well.</p>
<p><a href="http://www.larkware.com/contests/BordecalImports.Sorter.zip">Download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://visualstudiohacks.com/addins/importsorter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Regular Expression Visualizers</title>
		<link>http://visualstudiohacks.com/addins/regular-expression-visualizers/</link>
		<comments>http://visualstudiohacks.com/addins/regular-expression-visualizers/#comments</comments>
		<pubDate>Sat, 01 Mar 2008 22:29:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Addins]]></category>

		<guid isPermaLink="false">http://vsh.infozerk.net/uncategorized/regular-expression-visualizers/</guid>
		<description><![CDATA[Roy Osherove has released a very handy set of Regular Expression Visualizers for Visual Studio 2005.

Visualizers are one of the most helpful additions to debugging in Visual Studio 2005. Visualizers allow you to create your [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Roy Osherove has released a very handy set of Regular Expression Visualizers for Visual Studio 2005.</p>
<p><span id="more-282"></span></p>
<p>Visualizers are one of the most helpful additions to debugging in Visual Studio 2005. Visualizers allow you to create your own customized display for any data type.&nbsp; You&rsquo;re able to tweak or completely rework how a data type is displayed.&nbsp; Think back to how difficult it is to dig through a DataSet in Visual Studio 2003, then compare that&nbsp;to the easy navigation of DataSet objets in Visual Studio 2005.&nbsp; Behold the Power Of Visualizers!</p>
<p>Roy Osherove has <a href="http://weblogs.asp.net/rosherove/archive/2005/11/26/AnnoucingRegexKit10.aspx">released a very handy set of Regular Expression Visualizers</a> for Visual Studio 2005.&nbsp; Installation, as with all custom Visualizers, is simply a matter of adding the files to your VS 2005&rsquo;s profile folder, normally located in your home directory under &ldquo;My Documents\Visual Studio 2005\Visualizers&rdquo;.</p>
<p>Restart Visual Studio, then create a pattern in a snippet and test out the visualizer.&nbsp; Straight from Roy&rsquo;s example:</p>
<p><font size="2" color="#0000ff"> </font></p>
<p><font size="2" color="#0000ff">string</font><font size="2"> pattern =</font><font size="2" color="#800000">&quot;(aa|bb)&quot;</font><font size="2">;</font></p>
<p><font size="2" color="#008080">Regex</font><font size="2"> r = </font><font size="2" color="#0000ff">new</font><font size="2"> </font><font size="2" color="#008080">Regex</font><font size="2">(pattern);</font></p>
<p><font size="2" color="#008080">MatchCollection</font><font size="2"> m = r.Matches(pattern);</font></p>
<p><font size="2" color="#008080">Console</font><font size="2">.WriteLine(m); // BREAK HERE!</font></p>
<p>Run this in a debugger session, breaking on the Console.WriteLine statement.&nbsp; You&rsquo;re now&nbsp;able to select the MatchCollection variable &lsquo;m&rsquo; with Osherove&rsquo;s handy Visualizer as shown below.</p>
<p><img border="0" alt="" src="/files/media/image/regexvisualizer1.gif" class="fancyimg" id="iImage" /></p>
<p>The next image shows how this simplistic pattern measures up as displayed in the &ldquo;Matches&rdquo; tab.</p>
<p><img border="0" alt="" src="/files/media/image/regexvisualizer2.gif" class="fancyimg" id="iImage" /></p>
<p>The &ldquo;Pattern Desc.&rdquo; tab shows an English version of what the RegEx in question captures.&nbsp; (Microsoft&rsquo;s <a href="http://blogs.msdn.com/ericgu/default.aspx">Eric Gunnerson</a> wrote the descriptive text.)</p>
<p><img border="0" alt="" src="/files/media/image/regexvisualizer3.gif" class="fancyimg" id="iImage" /></p>
]]></content:encoded>
			<wfw:commentRss>http://visualstudiohacks.com/addins/regular-expression-visualizers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
