<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>freetools</title>
        <link>http://geekswithblogs.net/brians/category/6305.aspx</link>
        <description>freetools</description>
        <language>en-US</language>
        <copyright>Brian Schroer</copyright>
        <managingEditor>brianschroer@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>Free &amp;quot;Mini-Refactor!&amp;quot; From Developer Express</title>
            <link>http://geekswithblogs.net/brians/archive/2007/07/04/113674.aspx</link>
            <description>&lt;p&gt;When a free download of &lt;a href="http://www.devexpress.com/Products/NET/IDETools/RefactorASP/"&gt;Refactor!™ for ASP.NET 2.2&lt;/a&gt; was announced in May by Developer Express, I bookmarked it for future reference because I wasn't working on an ASP project at the time.&lt;/p&gt;
&lt;p&gt;When I took another look, I realized that the download includes 19 C#/VB code refactorings that work in any project, ASP.NET or not. They work in Visual Studio 2003, VS2005, and "Orcas".&lt;/p&gt;
&lt;p&gt;Included are Refactor! versions (with much nicer user interfaces) of four of the seven built-in VS2005 C# refactorings:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Rename&lt;/strong&gt;  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Extract Method&lt;/strong&gt;  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Encapsulate Field&lt;/strong&gt;  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Reorder Parameters&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;...plus:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Create Overload&lt;/strong&gt;:&lt;br /&gt;
    Creates an overload to an existing method, with fewer parameters.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Extract Property&lt;/strong&gt;:&lt;br /&gt;
    Creates a new property from the selected code block. The selection is replaced with appropriate code to reference the newly-declared property.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Flatten Conditional&lt;/strong&gt;:&lt;br /&gt;
    Unindents the If or Else statement for a conditional and applies one of the following refactorings: Replace Nested Conditional with Guard Clause, Remove Redundant Else, or Reverse Conditional followed by Remove Redundant Else.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Inline Temp&lt;/strong&gt;:&lt;br /&gt;
    Replaces all references to a local variable with its initial value.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Introduce Constant&lt;/strong&gt;:&lt;br /&gt;
    Declares a new constant, initialized to the value of the selected string or number.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Introduce Local&lt;/strong&gt;:&lt;br /&gt;
    Creates a new local variable initialized to the selected expression. Replaces the selection with the new variable.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Move Declaration Near Reference&lt;/strong&gt;:&lt;br /&gt;
    Moves the declaration statement for a local variable near its first reference.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Move Initialization to Declaration&lt;/strong&gt;:&lt;br /&gt;
    Combines a local variable's declaration with its first initialization.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Replace Temp with Query&lt;/strong&gt;:&lt;br /&gt;
    Replaces each reference to the active local variable with a call to an extracted method, which returns the initial value assigned to the local.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Reverse Conditional&lt;/strong&gt;:&lt;br /&gt;
    Inverts the logic in a conditional statement and swaps the If and Else blocks.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Safe Rename&lt;/strong&gt;:&lt;br /&gt;
    Safely renames non-private methods and properties by creating a duplicate member to preserve the old signature, calling the renamed member from the old member. The old member is hidden from Intellisense and marked "Obsolete". References to the old member will generate compiler warnings directing developers to the new renamed member.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Simplify Expression&lt;/strong&gt;:&lt;br /&gt;
    Resolves an expression to its simplest form.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Split Initialization from Declaration&lt;/strong&gt;:&lt;br /&gt;
    Breaks an initialized declaration for a local variable into a declaration and a separate initialization statement.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Split Temporary Variable&lt;/strong&gt;:&lt;br /&gt;
    Splits a local variable which has too many assignments, declaring a new local at the first new assignment following the first reference.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;...and the 10 ASP.NET 2.0 refactorings:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Add Validator&lt;/strong&gt;:&lt;br /&gt;
    Adds one or more selected Validators to the active input control.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Extract ContentPlaceHolder&lt;/strong&gt;: &lt;br /&gt;
    Moves the selected content from a .master page to a new .aspx file, placing it inside &amp;lt;asp:content&amp;gt; tags, and inserts a new &amp;lt;asp:contentplaceholder&amp;gt; tag at the extraction point inside the master page.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Extract ContentPlaceHolder (and create master page)&lt;/strong&gt;:&lt;br /&gt;
    Moves the content that is *outside* of the selection (in the active .aspx page) to a new master page, inserting a &amp;lt;asp:contentplaceholder&amp;gt; tag to reference the extracted content, and then wraps the selection in the aspx page with &amp;lt;asp:content&amp;gt; tags and adds a MasterPageFile attribute to link to the new master page.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Extract Style (Class)&lt;/strong&gt;:&lt;br /&gt;
    Converts an inline style to a named class style.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Extract Style (id)&lt;/strong&gt;:&lt;br /&gt;
    Converts an inline style to a named id style.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Extract to UserControl&lt;/strong&gt;:&lt;br /&gt;
    Creates a UserControl for the selected block including content and dependent code.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Move Style Attributes to CSS&lt;/strong&gt;:&lt;br /&gt;
    Moves styling attributes from the active control to a new CSS class and applies the class to the control.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Move to Code-behind&lt;/strong&gt;:&lt;br /&gt;
    Moves code located in &amp;lt;script&amp;gt; tags to the code-behind file.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Rename Style&lt;/strong&gt;:&lt;br /&gt;
    Renames the active CSS style and updates all references to that style.  &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Surround with Update Panel&lt;/strong&gt;:&lt;br /&gt;
    Surrounds a contiguous block of text in the source view with &amp;lt;asp:UpdatePanel …&amp;gt; and &amp;lt;ContentTemplate&amp;gt; tags.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://www.doitwith.net/2007/05/07/PowerfulFreeDownloadRefactor!ForASP.NET2.2.aspx"&gt;Here's a link to a post by Mark Miller&lt;/a&gt;, mad genius of Developer Express, showing examples of all of the refactorings.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113674"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113674" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/brians/aggbug/113674.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2007/07/04/113674.aspx</guid>
            <pubDate>Wed, 04 Jul 2007 13:51:39 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/113674.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2007/07/04/113674.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/113674.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/113674.aspx</trackback:ping>
        </item>
        <item>
            <title>CoolCommands for Visual Studio 2005</title>
            <link>http://geekswithblogs.net/brians/archive/2007/03/04/107922.aspx</link>
            <description>&lt;p&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:226f236a-7fb7-46ef-9ce5-cefe8a439c4a" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/.net" rel="tag"&gt;.net&lt;/a&gt;, &lt;a href="http://technorati.com/tags/freetools" rel="tag"&gt;freetools&lt;/a&gt;&lt;/div&gt; &lt;p&gt;While gathering information about Visual Studio add-ins for a potential local user group presentation, I came across &lt;strong&gt;&lt;a href="http://weblogs.asp.net/gmilano/"&gt;&lt;strong&gt;Gaston Milano's "CoolCommands"&lt;/strong&gt;.&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;As far as I can tell, the latest version of the&amp;nbsp;&lt;strong&gt;CoolCommands &lt;/strong&gt;installer can be downloaded here:&lt;br&gt;&lt;a title="http://download.deklarit.com/files/gmilano/coolcommands40.zip" href="http://download.deklarit.com/files/gmilano/coolcommands40.zip"&gt;http://download.deklarit.com/files/gmilano/coolcommands40.zip&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;It adds a lot of useful tools to Visual Studio, but there's no help or "read-me" file documenting them, and I couldn't find a consolidated overview on Gaston's site, so here's my attempt to summarize the &lt;strong&gt;CoolCommands&lt;/strong&gt; tools:&lt;/p&gt; &lt;h3&gt;Collapse All Projects&lt;/h3&gt; &lt;p&gt;Context menu item displayed when a solution name is right-clicked in the Solution Explorer - Simulates clicking the close (minus sign) icon for all expanded projects.&lt;/p&gt; &lt;h3&gt;Open Container Folder&lt;/h3&gt; &lt;p&gt;Context menu item displayed when a project or file name is right-clicked in the Solution Explorer - Displays the project folder in Windows Explorer (and automatically selects the right-clicked file if you launched the menu from a file name rather than the project name).&lt;/p&gt; &lt;h3&gt;Visual Studio Prompt Here&lt;/h3&gt; &lt;p&gt;Context menu item displayed when a project name is right-clicked in the Solution Explorer - Opens the Visual Studio Command Prompt window, initialized to point&amp;nbsp;to the project's folder.&lt;/p&gt; &lt;h3&gt;Demo Font&lt;/h3&gt; &lt;p&gt;Context menu item displayed in response to a right-click in a text editor window - Quickly toggles between an 18-point font size and your preferred (Tools | Options | Environment | Fonts &amp;amp; Colors) font size.&lt;/p&gt; &lt;h3&gt;Wheel Font Sizing&lt;/h3&gt; &lt;p&gt;Context menu item displayed in response to a right-click in a text editor window - I don't have a wheel mouse on this PC, but it looks like this toggles the ability to change the text editor font size via the mouse wheel.&lt;/p&gt; &lt;h3&gt;Send By Mail&lt;/h3&gt; &lt;p&gt;Context menu item displayed in response to a right-click in a text editor window - Launches your email program's "new message" window with the selected code pasted into the body.&lt;/p&gt; &lt;h3&gt;Open File&lt;/h3&gt; &lt;p&gt;Context menu item displayed in response to a right-click in a text editor window - If you right-click on a string literal containing a file name, this option opens the file.&lt;/p&gt; &lt;h3&gt;Copy File&lt;/h3&gt; &lt;p&gt;Context menu item displayed in response to a right-click in the tab at the top of a text editor window (seems&amp;nbsp;to me it should be&amp;nbsp;in the Solution Explorer instead or at least also)&amp;nbsp;- Displays a popup window asking where you want to save a copy of the selected file:&lt;/p&gt;&lt;img alt="Copy File" src="http://geekswithblogs.net/images/geekswithblogs_net/brians/3864/r_CoolCommandsCopyFileDialog.jpg"&gt;  &lt;h3&gt;Locate in Solution Explorer&lt;/h3&gt; &lt;p&gt;Context menu item displayed in response to a right-click in the tab at the top of a text editor window - Highlights the file in the Solution Explorer (expands solution, project &amp;amp; folders if necessary and even shows the Solution Explorer window if it's not visible).&lt;/p&gt; &lt;h3&gt;Copy Reference&lt;/h3&gt; &lt;p&gt;Context menu item displayed in response to a right-click on a reference displayed in a project's References list in Solution Explorer - Used in conjunction with...&lt;/p&gt; &lt;h3&gt;Paste Reference&lt;/h3&gt; &lt;p&gt;Context menu item displayed in response to a right-click on&amp;nbsp;or in project's&amp;nbsp;References&amp;nbsp;"folder" in Solution Explorer - Adds&amp;nbsp;a reference copied from another project via the "Copy Reference" tool to the current project's&amp;nbsp;References list.&amp;nbsp;&lt;/p&gt; &lt;h3&gt;Resolve Project References&lt;/h3&gt; &lt;p&gt;If you open a project and it has broken "project" references because you usually open the project as part of a solution, this context menu item displayed in response to a right-click on a project name in Solution Explorer automatically adds the referenced projects to the current solution.&lt;/p&gt; &lt;h3&gt;Reference Manager&lt;/h3&gt;&lt;img alt="Reference Manager" src="http://geekswithblogs.net/images/geekswithblogs_net/brians/3864/r_CoolCommandsReferenceManager.jpg"&gt;  &lt;p&gt;Opened via a context menu item displayed in response to a right-click on a solution or project name in Solution Explorer. &lt;/p&gt; &lt;p&gt;If you enter part of an assembly name in the "Find Reference" box and press the Enter key, the Reference Manager will show you which projects contain a reference to that assembly.&lt;/p&gt; &lt;p&gt;You can use the "Remove" button to quickly remove&amp;nbsp;a reference from multiple projects.&lt;/p&gt; &lt;p&gt;If you click the "Add Reference" button, you'll see the standard Visual Studio "Add Reference" dialog, but you can use the Reference Manager to quickly add references to multiple projects at once.&lt;/p&gt; &lt;h3&gt;Add As String Resource&lt;/h3&gt; &lt;p&gt;Context menu item displayed in response to a right-click in a text editor window -&amp;nbsp;Pops up a dialog&amp;nbsp;to allow you to easily specify&amp;nbsp;a&amp;nbsp;key and value (defaults to the selected text), and a dropdown list of resource files to which you can add&amp;nbsp;the new string resource.&amp;nbsp;&lt;/p&gt; &lt;hr&gt;  &lt;p&gt;There's some great stuff here (especially the reference tools), but it would be nice if &lt;strong&gt;CoolCommands&lt;/strong&gt; were packaged a little better:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Version 3 had an .msi installer, but you have to run a .bat file to install version 4, and I'm not sure how to uninstall it.  &lt;li&gt;Some documentation - even a readme.txt or a web page with a summary - would help a lot.  &lt;li&gt;It would be really great if there were a configuration screen where you could select which tools should be visible - My right-click menus are almost long enough to require scrolling now.&lt;/li&gt;&lt;/ul&gt; &lt;hr&gt;  &lt;p&gt;If you have any questions or complaints about CoolCommands, please address them to &lt;a href="http://weblogs.asp.net/gmilano/"&gt;Gaston&lt;/a&gt;, not to me.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=107922"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=107922" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/brians/aggbug/107922.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brian Schroer</dc:creator>
            <guid>http://geekswithblogs.net/brians/archive/2007/03/04/107922.aspx</guid>
            <pubDate>Sun, 04 Mar 2007 21:12:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/brians/comments/107922.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/brians/archive/2007/03/04/107922.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/brians/comments/commentRss/107922.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/brians/services/trackbacks/107922.aspx</trackback:ping>
        </item>
    </channel>
</rss>