<?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>Development in a Blink &#187; Visual Studio 2010</title>
	<atom:link href="http://www.dougfinke.com/blog/index.php/category/visual-studio-2010/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dougfinke.com/blog</link>
	<description>Researching the optimal; implementing the practical</description>
	<lastBuildDate>Fri, 03 May 2013 19:47:05 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Two New Functions for Visual Studio&#8217;s NuGet PowerShell Console</title>
		<link>http://www.dougfinke.com/blog/index.php/2011/04/13/two-new-functions-for-visual-studios-nuget-powershell-console/</link>
		<comments>http://www.dougfinke.com/blog/index.php/2011/04/13/two-new-functions-for-visual-studios-nuget-powershell-console/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 02:05:38 +0000</pubDate>
		<dc:creator>Doug Finke</dc:creator>
				<category><![CDATA[NuGet]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>

		<guid isPermaLink="false">http://www.dougfinke.com/blog/index.php/2011/04/13/two-new-functions-for-visual-studios-nuget-powershell-console/</guid>
		<description><![CDATA[I am trying out two new PowerShell functions I’ve written for Visual Studio NuGet’s Package Management Console. One is Goto-InCurrentWindow and the other Select-StringCurrentFile. The Select-StringCurrentFile (aliased: sscf) lets me search the entire Visual Studio active document for strings (see Example Usage), returning the line and the line number it is found on. Using the [...]]]></description>
				<content:encoded><![CDATA[<p>I am trying out two new PowerShell functions I’ve written for Visual Studio NuGet’s Package Management Console. One is <em>Goto-InCurrentWindow </em>and the other <em>Select-StringCurrentFile.</em> </p>
<p>The Select-StringCurrentFile (aliased: <strong>sscf</strong>) lets me search the entire Visual Studio active document for strings (<em><strong>see Example Usage</strong></em>), returning the line and the line number it is found on. Using the Goto-InCurrentWindow function (aliased: <strong>gicw</strong>), passing the line number; it jumps to that line in that document.</p>
<h3>The Console</h3>
<p>The NuGet console, is a PowerShell console which is hooked up to the Visual Studio environment through the DTE. It is accessed via the PowerShell variable <strong><em>$dte</em></strong>.</p>
<p>From the $dte variable, I use properties such as, ActiveDocument, ExcecuteCommand and Windows. There are other properties and methods on the $dte object, I reviewed them in the NuGet console with this: </p>
<p><font size="2" face="Courier New">$dte | Get-Member</font></p>
<h3>The PowerShell Functions</h3>
<p>The Select-StringCurrentFile function gets the active document’s full name and passes it to PowerShell’s built in cmdlet Select-String (aka grep, like in Unix). This returns the matches it finds. I extract and emit the Line and LinNumber in a new object. Note, the $pattern can be any valid <em>regular expression</em>.</p>
<p>The Goto-InCurrentWindow function takes a line number as a parameter, Activates the current window and then uses ExecuteCommand. I pass two parameters to ExecuteCommand. “Edit.Goto” and the line number. Edit.Goto is a built in Visual Studio command. I discovered the other Visual Studio commands with this: </p>
<p><font size="2" face="Courier New">$dte.Commands | ForEach {$_.Name}</font></p>
<p>In the <em>Example Usage</em> I use the aliases I created for the function, <em>sscf</em> and <em>gicw</em>. This lets me type fewer characters than the full function names.</p>
<pre style="width: 492px; height: 394px" class="PowerShellColorizedScript"><span style="color: #00008b">function</span> <span style="color: #8a2be2">Goto-InCurrentWindow</span> <span style="color: #000000">(</span><span style="color: #ff4500">$lineNumber</span><span style="color: #000000">)</span> <span style="color: #000000">{</span>            
    <span style="color: #ff4500">$dte</span><span style="color: #a9a9a9">.</span><span style="color: #000000">Windows</span><span style="color: #a9a9a9">.</span><span style="color: #000000">Item</span><span style="color: #000000">(</span><span style="color: #ff4500">$dte</span><span style="color: #a9a9a9">.</span><span style="color: #000000">ActiveDocument</span><span style="color: #a9a9a9">.</span><span style="color: #000000">Name</span><span style="color: #000000">)</span><span style="color: #a9a9a9">.</span><span style="color: #000000">Activate</span><span style="color: #000000">(</span><span style="color: #000000">)</span>            
    <span style="color: #ff4500">$dte</span><span style="color: #a9a9a9">.</span><span style="color: #000000">ExecuteCommand</span><span style="color: #000000">(</span><span style="color: #8b0000">&quot;Edit.GoTo&quot;</span><span style="color: #a9a9a9">,</span> <span style="color: #ff4500">$lineNumber</span><span style="color: #000000">)</span>            
<span style="color: #000000">}</span>            
            
<span style="color: #00008b">function</span> <span style="color: #8a2be2">Select-StringCurrentFile</span> <span style="color: #000000">{</span>            
    <span style="color: #00008b">param</span><span style="color: #000000">(</span><span style="color: #ff4500">$pattern</span><span style="color: #000000">)</span>            
            
    <span style="color: #0000ff">Select-String</span> <span style="color: #ff4500">$pattern</span> <span style="color: #ff4500">$dte</span><span style="color: #a9a9a9">.</span><span style="color: #000000">ActiveDocument</span><span style="color: #a9a9a9">.</span><span style="color: #000000">FullName</span> <span style="color: #a9a9a9">|</span>             
        <span style="color: #0000ff">ForEach</span> <span style="color: #000000">{</span>            
            <span style="color: #ff4500">$line</span> <span style="color: #a9a9a9">=</span> <span style="color: #ff4500">$_</span><span style="color: #a9a9a9">.</span><span style="color: #000000">line</span><span style="color: #a9a9a9">.</span><span style="color: #000000">Trim</span><span style="color: #000000">(</span><span style="color: #000000">)</span>            
            
            <span style="color: #0000ff">New-Object</span> <span style="color: #8a2be2">PSObject</span> <span style="color: #000080">-Property</span> <span style="color: #000000">@{</span>            
                <span style="color: #000000">Line</span> <span style="color: #a9a9a9">=</span> <span style="color: #ff4500">$line</span>            
                <span style="color: #000000">LineNumber</span> <span style="color: #a9a9a9">=</span> <span style="color: #ff4500">$_</span><span style="color: #a9a9a9">.</span><span style="color: #000000">LineNumber</span>            
            <span style="color: #000000">}</span>            
        <span style="color: #000000">}</span>            
<span style="color: #000000">}</span>            
            
<span style="color: #0000ff">Set-Alias</span> <span style="color: #8a2be2">gicw</span> <span style="color: #8a2be2">Goto-InCurrentWindow</span>            
<span style="color: #0000ff">Set-Alias</span> <span style="color: #8a2be2">sscf</span> <span style="color: #8a2be2">Select-StringCurrentFile</span></pre>
<h3>&#160;</h3>
<h3>Example Usage</h3>
<p><a href="http://dougfinke.com/uploadPictures/6def1ab0a472_12259/image.png"><img style="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" title="image" border="0" alt="image" src="http://dougfinke.com/uploadPictures/6def1ab0a472_12259/image_thumb.png" width="505" height="691" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dougfinke.com/blog/index.php/2011/04/13/two-new-functions-for-visual-studios-nuget-powershell-console/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>How to use PowerShell to Get NuGet Download Stats</title>
		<link>http://www.dougfinke.com/blog/index.php/2010/12/26/how-to-use-powershell-to-get-nuget-download-stats/</link>
		<comments>http://www.dougfinke.com/blog/index.php/2010/12/26/how-to-use-powershell-to-get-nuget-download-stats/#comments</comments>
		<pubDate>Sun, 26 Dec 2010 16:40:25 +0000</pubDate>
		<dc:creator>Doug Finke</dc:creator>
				<category><![CDATA[ISE]]></category>
		<category><![CDATA[NuGet]]></category>
		<category><![CDATA[OData]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>
		<category><![CDATA[Xml]]></category>

		<guid isPermaLink="false">http://www.dougfinke.com/blog/index.php/2010/12/26/how-to-use-powershell-to-get-nuget-download-stats/</guid>
		<description><![CDATA[David Fowler tweeted the link for viewing NuGet download stats. You can use the URL in the browser and you’ll see the XML. This PowerShell code demonstrates a few cool reusable ideas. Working with XML downloaded from a URL OData feed all in PowerShell. Leveraging PowerShell’s .NET Framework integration (Net.WebClient) you download the XML string [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://weblogs.asp.net/davidfowler/">David Fowler</a> tweeted <a href="http://bit.ly/fz9Rwj">the link</a> for viewing NuGet download stats. You can use the URL in the browser and you’ll see the XML. This PowerShell code demonstrates a few cool reusable ideas. Working with XML downloaded from a URL <a href="http://www.odata.org/">OData</a> feed all in PowerShell. </p>
<p>Leveraging PowerShell’s .NET Framework integration (Net.WebClient) you download the XML string from the OData endpoint, convert it an XML Document using the <em>[xml] </em>accelerator and iterate the collection extracting the Id, converting the <em>download count</em> to an int and finally selecting the top 15 ( pipes to PowerShell’s Select cmdlet using the –First parameter).</p>
<h3>Get Top 15 NuGet Downloads</h3>
<p>You can add the Get-NuGetStats function to your NuGet PM Console Profile (type $profile at the prompt) so it will be available the next time you load Visual Studio. For now, paste the code (see below) into the PM Console (or any other PowerShell Host) and run the function.</p>
<p><a href="http://dougfinke.com/uploadPictures/725a04bf31bc_860D/image.png"><img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://dougfinke.com/uploadPictures/725a04bf31bc_860D/image_thumb.png" width="558" height="320" /></a></p>
<h3>The Code</h3>
<pre style="width: 537px; height: 292px" class="PowerShellColorizedScript"><span style="color: #00008b">Function</span> <span style="color: #8a2be2">Get-NuGetStats</span> <span style="color: #000000">{</span>            
    <span style="color: #ff4500">$url</span> <span style="color: #a9a9a9">=</span> <span style="color: #8b0000">'http://packages.nuget.org/GalleryServer/FeedService.svc/Packages?$orderby=VersionDownloadCount desc&amp;$select=Id,VersionDownloadCount'</span>            
    <span style="color: #ff4500">$wc</span> <span style="color: #a9a9a9">=</span> <span style="color: #0000ff">New-Object</span> <span style="color: #8a2be2">net.webclient</span>            
            
    <span style="color: #000000">$(</span>            
        <span style="color: #00008b">ForEach</span><span style="color: #000000">(</span><span style="color: #ff4500">$entry</span> <span style="color: #00008b">in</span> <span style="color: #000000">(</span><span style="color: #008080">[xml]</span> <span style="color: #000000">(</span><span style="color: #ff4500">$wc</span><span style="color: #a9a9a9">.</span><span style="color: #000000">DownloadString</span><span style="color: #000000">(</span><span style="color: #ff4500">$url</span><span style="color: #000000">)</span><span style="color: #000000">)</span><span style="color: #000000">)</span><span style="color: #a9a9a9">.</span><span style="color: #000000">feed</span><span style="color: #a9a9a9">.</span><span style="color: #000000">entry</span> <span style="color: #000000">)</span> <span style="color: #000000">{</span>            
            <span style="color: #ff4500">$entry</span><span style="color: #a9a9a9">.</span><span style="color: #000000">properties</span> <span style="color: #a9a9a9">|</span>             
                <span style="color: #0000ff">Select</span> <span style="color: #8a2be2">Id</span><span style="color: #a9a9a9">,</span> <span style="color: #000000">@{</span>            
                    <span style="color: #000000">Name</span><span style="color: #a9a9a9">=</span><span style="color: #8b0000">&quot;DownloadCount&quot;</span>            
                    <span style="color: #000000">Expression</span><span style="color: #a9a9a9">=</span><span style="color: #000000">{</span><span style="color: #008080">[int]</span><span style="color: #000000">(</span><span style="color: #ff4500">$_</span><span style="color: #a9a9a9">.</span><span style="color: #000000">VersionDownloadCount</span><span style="color: #a9a9a9">.</span><span style="color: #8b0000">'#text'</span><span style="color: #000000">)</span>            
                <span style="color: #000000">}</span>            
            <span style="color: #000000">}</span>            
        <span style="color: #000000">}</span>            
    <span style="color: #000000">)</span> <span style="color: #a9a9a9">|</span> <span style="color: #0000ff">Select</span> <span style="color: #000080">-First</span> <span style="color: #800080">15</span> <span style="color: #a9a9a9">|</span> <span style="color: #0000ff">Format-Table</span> <span style="color: #000080">-AutoSize</span>            
<span style="color: #000000">}</span></pre>
<h3>Paste the Code into the NuGet Package Manager Console</h3>
<p>Works in any PowerShell Host, PowerShell Console, ISE (Integrated Scripting Environment) or NuGet PM Console.</p>
<p><a href="http://dougfinke.com/uploadPictures/725a04bf31bc_860D/image_3.png"><img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://dougfinke.com/uploadPictures/725a04bf31bc_860D/image_thumb_3.png" width="556" height="257" /></a></p>
<p>Note, these steps can be used to pull and transform <a href="http://www.odataprimer.com/#OData_Feeds_to_Use_and_Test_Free_5">any OData feed</a>. The differences being the OData endpoint and the field names being retrieved. </p>
<p>Check out the NuGet OData URL. It specifies both the $orderby and $select system query options. This makes the work of sorting the data the responsibility of the server as well as reduces the amount of data returned. $Select limits how many fields are sent back to the client.</p>
<h3>Modifications</h3>
<p>You can easily parameterize Get-NuGetStats so it defaults to returning the Top 15 or lets the user specify how many they would like.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dougfinke.com/blog/index.php/2010/12/26/how-to-use-powershell-to-get-nuget-download-stats/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>I Presented at the NYC meet up on NuGet and PowerShell</title>
		<link>http://www.dougfinke.com/blog/index.php/2010/12/22/i-presented-at-the-nyc-meet-up-on-nuget-and-powershell/</link>
		<comments>http://www.dougfinke.com/blog/index.php/2010/12/22/i-presented-at-the-nyc-meet-up-on-nuget-and-powershell/#comments</comments>
		<pubDate>Wed, 22 Dec 2010 16:05:15 +0000</pubDate>
		<dc:creator>Doug Finke</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[NuGet]]></category>
		<category><![CDATA[NYC Meetup]]></category>
		<category><![CDATA[Package Management]]></category>
		<category><![CDATA[PowerConsole]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>
		<category><![CDATA[Visual Studio Automation]]></category>

		<guid isPermaLink="false">http://www.dougfinke.com/blog/index.php/2010/12/22/i-presented-at-the-nyc-meet-up-on-nuget-and-powershell/</guid>
		<description><![CDATA[A co-worker David Padbury asked if I could do a session on NuGet, a free, open source developer focused package management system for the .NET platform intent on simplifying the process of incorporating libraries into a .NET application during development. The demo covered: The Package Manager Console, PowerShell inside Visual Studio Get-Package, Install-Package, Uninstall-Package and [...]]]></description>
				<content:encoded><![CDATA[<p>A co-worker <a href="http://blog.davidpadbury.com/">David Padbury</a> asked if I could do a session on <a href="http://nuget.codeplex.com/">NuGet</a>, a free, open source developer focused package management system for the .NET platform intent on simplifying the process of incorporating libraries into a .NET application during development.</p>
<p>The demo covered:</p>
<ul>
<li>The Package Manager Console, PowerShell inside Visual Studio </li>
<li>Get-Package, Install-Package, Uninstall-Package and Update-Package </li>
<li>Setting up a local NuGet Repository simply on the file system </li>
<li>Authoring NuGet packages with Nuget.exe and the XML spec </li>
<li>Using init.ps1, install.ps1 and uninstall.ps1 to add/remove/Import-Module my custom PowerShell module during a NuGet Install-Package </li>
</ul>
<p>I want to thank David for inviting me and the the group that showed up for the presentation.</p>
<p>I was pleasantly surprised to see how many developers were actually using PowerShell. PowerShell is definitely heading up the adoption curve.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dougfinke.com/blog/index.php/2010/12/22/i-presented-at-the-nyc-meet-up-on-nuget-and-powershell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;ll Be Presenting On NuGet and PowerShell</title>
		<link>http://www.dougfinke.com/blog/index.php/2010/11/24/ill-be-presenting-on-nuget-and-powershell/</link>
		<comments>http://www.dougfinke.com/blog/index.php/2010/11/24/ill-be-presenting-on-nuget-and-powershell/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 20:42:26 +0000</pubDate>
		<dc:creator>Doug Finke</dc:creator>
				<category><![CDATA[New York .NET Meetup]]></category>
		<category><![CDATA[NuGet]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>

		<guid isPermaLink="false">http://www.dougfinke.com/blog/index.php/2010/11/24/ill-be-presenting-on-nuget-and-powershell/</guid>
		<description><![CDATA[At the New York .NET Meetup. You’ll need to RSVP. Follow me on Twitter, I’ll be giving details on how to win a Microsoft Visual Studio 2010 Ultimate MSDN subscription.]]></description>
				<content:encoded><![CDATA[<p>At the New York .NET Meetup. You’ll need to <a href="http://goo.gl/YTae3">RSVP</a>.</p>
<p><a href="http://twitter.com/dfinke">Follow me on Twitter</a>, I’ll be giving details on how to win a Microsoft Visual Studio 2010 Ultimate MSDN subscription.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dougfinke.com/blog/index.php/2010/11/24/ill-be-presenting-on-nuget-and-powershell/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PowerShell, NuGet and Discoverability</title>
		<link>http://www.dougfinke.com/blog/index.php/2010/11/07/powershell-nuget-and-discoverability/</link>
		<comments>http://www.dougfinke.com/blog/index.php/2010/11/07/powershell-nuget-and-discoverability/#comments</comments>
		<pubDate>Sun, 07 Nov 2010 16:00:22 +0000</pubDate>
		<dc:creator>Doug Finke</dc:creator>
				<category><![CDATA[NuGet]]></category>
		<category><![CDATA[NuPack]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Scott Hanselman]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>

		<guid isPermaLink="false">http://www.dougfinke.com/blog/index.php/2010/11/07/powershell-nuget-and-discoverability/</guid>
		<description><![CDATA[Blending PowerShell, NuGet and Visual Studio is brilliant. Not just for the package management aspect. Also because it leverages the fundamentals of the PowerShell verb noun approach, which promotes discoverability. PowerShell cmdlets (functions) follow a verb noun pattern, for example, Get-Item, Remove-Item, Set-Item. As a developer of PowerShell tools, if you follow this pattern, consumers [...]]]></description>
				<content:encoded><![CDATA[<p>Blending <a href="http://support.microsoft.com/kb/968930">PowerShell</a>, <a href="http://nuget.codeplex.com/">NuGet</a> and Visual Studio is brilliant. Not just for the package management aspect. Also because it leverages the fundamentals of the PowerShell verb noun approach, which promotes discoverability.</p>
<p>PowerShell cmdlets (functions) follow a verb noun pattern, for example, Get-Item, Remove-Item, Set-Item. As a developer of PowerShell tools, if you follow this pattern, consumers of your cmdlets benefit greatly. It is a glide path to discovery.</p>
<h3>How Consumers Benefit</h3>
<p>Let’s say you ship a set of functionality around, Tires. If you use common verbs, your cmdlets look like Get-Tire, Set-Tire, Remove-Tire, Add-Tire etc. NuGet does this and now you can leverage your PowerShell knowledge and quickly discover how this ecosystem works.</p>
<h3>Discovering NuGet Package Cmdlets</h3>
<p>Get-Command is a key PowerShell cmdlet and is similar to the <em>which</em> command in Unix. Let’s find all the cmdlets that have the word <strong><em>pack</em></strong> in the name.</p>
<pre class="PowerShellColorizedScript"><span style="color: #0000ff">Get-Command</span> <span style="color: #8a2be2">*pack*</span> <span style="color: #000080">-CommandType</span> <span style="color: #8a2be2">cmdlet</span> <span style="color: #a9a9a9">|</span> <span style="color: #0000ff">Format-Table</span> <span style="color: #000080">-AutoSize</span></pre>
<p><a href="http://dougfinke.com/uploadPictures/PowerShellandNuGet_8B4A/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://dougfinke.com/uploadPictures/PowerShellandNuGet_8B4A/image_thumb.png" width="574" height="132" /></a> </p>
<p>We’ve discovered there are 5 commands that have package as their noun:</p>
<ul>
<li>Get-Package </li>
<li>Install-Package </li>
<li>New-Package </li>
<li>Uninstall-Package </li>
<li>Update-Package </li>
</ul>
<p>Let’s inject a GUI into our pipeline. This makes viewing package information easier.</p>
<pre style="width: 356px; height: 22px" class="PowerShellColorizedScript"><span style="color: #0000ff">Get-Package</span> <span style="color: #a9a9a9">|</span> <span style="color: #0000ff">Out-GridView</span></pre>
<p><a href="http://dougfinke.com/uploadPictures/PowerShellandNuGet_8B4A/image_3.png"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://dougfinke.com/uploadPictures/PowerShellandNuGet_8B4A/image_thumb_3.png" width="569" height="312" /></a></p>
<p>Note, Out-GridView can be shortened to <strong><em>ogv</em></strong> because it is aliased.</p>
<p>Type in <strong><em>sca</em></strong> in the filter box, I was looking for <a href="http://www.hanselman.com/blog/PDC10BuildingABlogWithMicrosoftUnnamedPackageOfWebLove.aspx">Scott Hansleman’s MvcScaffold package</a>.</p>
<p><a href="http://dougfinke.com/uploadPictures/PowerShellandNuGet_8B4A/image_4.png"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://dougfinke.com/uploadPictures/PowerShellandNuGet_8B4A/image_thumb_4.png" width="553" height="304" /></a>&#160; </p>
<p>The Out-GridView cmdlet works out of the box in PowerShell V2 and can be used with any application that hosts PowerShell. You can do this with the PowerShell command line, NuGet Console, PowerShell Integrated Scripting Environment (ISE) and others.</p>
<h3>Wrap Up</h3>
<p>The good news, even if you’re only using the NuGet Console, you’re experiencing the fundamentals of the PowerShell automation platform. You will see this played out in Azure cmdlets, AppFabric, cluster management and there’s a lot more coming.</p>
<p>Learning these fundamentals are worth the investment and this will be transferrable to the numerous systems employing PowerShell that are coming down the pipe.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dougfinke.com/blog/index.php/2010/11/07/powershell-nuget-and-discoverability/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PowerShell Inside of Visual Studio &#8211; NuGet (formerly known as NuPack)</title>
		<link>http://www.dougfinke.com/blog/index.php/2010/10/29/powershell-inside-of-visual-studio-nuget-formerly-known-as-nupack/</link>
		<comments>http://www.dougfinke.com/blog/index.php/2010/10/29/powershell-inside-of-visual-studio-nuget-formerly-known-as-nupack/#comments</comments>
		<pubDate>Fri, 29 Oct 2010 19:22:36 +0000</pubDate>
		<dc:creator>Doug Finke</dc:creator>
				<category><![CDATA[F#]]></category>
		<category><![CDATA[NuPack]]></category>
		<category><![CDATA[PDC10]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>

		<guid isPermaLink="false">http://www.dougfinke.com/blog/index.php/2010/10/29/powershell-inside-of-visual-studio-nuget-formerly-known-as-nupack/</guid>
		<description><![CDATA[Scott Hanselman demoed the PowerShell Package Manager at PDC10. PowerShell inside Visual Studio 2010 That’s right, PowerShell inside Visual Studio 2010. Interesting possibilities. He also demoed (code that won’t will be shipped) where he worked Visual Studio like a puppet on strings from the PowerShell console. Again, interesting possibilities. NuPack is a free, open source [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.hanselman.com/blog/">Scott Hanselman</a> demoed the PowerShell Package Manager at <a href="http://player.microsoftpdc.com/Session/e0c3ce51-9869-456c-a197-63dc0283f57e">PDC10</a>. </p>
<h3>PowerShell inside Visual Studio 2010</h3>
<p>That’s right, PowerShell inside Visual Studio 2010. Interesting possibilities. He also demoed (code that <strike>won’t</strike> <em>will</em> be shipped) where he worked Visual Studio like a puppet on strings from the PowerShell console. Again, interesting possibilities.</p>
<p><a href="http://nupack.codeplex.com/">NuPack</a> is a free, open source developer focused package management system for the .NET platform. I’ve blogged on NuPack and Power Console. PowerConsole has been re-released as part of NuPack.</p>
<ul>
<li><a href="http://www.dougfinke.com/blog/index.php/2010/10/21/check-available-net-packages-without-nupack-installed/">Check Available .NET Packages without NuPack Installed</a> </li>
<li><a href="http://www.dougfinke.com/blog/index.php/2010/10/06/nupack-open-source-package-manager-for-net-includes-a-powershell-interface/">NuPack &#8211; Open Source Package Manager for .NET &#8211; Includes a PowerShell Interface</a> </li>
<li><a href="http://www.dougfinke.com/blog/index.php/2010/05/16/visual-studio-keymaps-using-powershell/">Visual Visual Studio Keymaps using PowerShell</a> </li>
<li><a href="http://www.dougfinke.com/blog/index.php/2010/05/16/accessing-visual-studios-automation-api-from-powershell/">Accessing Visual Studio’s Automation API From PowerShell</a> </li>
<li><a href="http://www.dougfinke.com/blog/index.php/2010/04/02/powershell-and-f-consoles-in-visual-studio-2010/">PowerShell and F# Consoles in Visual Studio 2010</a> </li>
<li><a href="http://www.dougfinke.com/blog/index.php/2010/03/14/powerconsole-powershell-integrated-with-visual-studio-2010/">PowerConsole &#8211; PowerShell Integrated with Visual Studio 2010</a> </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.dougfinke.com/blog/index.php/2010/10/29/powershell-inside-of-visual-studio-nuget-formerly-known-as-nupack/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Build Visual Studio Projects on Remote Boxes Using PowerShell and MSBuild</title>
		<link>http://www.dougfinke.com/blog/index.php/2010/10/20/build-visual-studio-projects-on-remote-boxes-using-powershell-and-msbuild/</link>
		<comments>http://www.dougfinke.com/blog/index.php/2010/10/20/build-visual-studio-projects-on-remote-boxes-using-powershell-and-msbuild/#comments</comments>
		<pubDate>Thu, 21 Oct 2010 00:20:22 +0000</pubDate>
		<dc:creator>Doug Finke</dc:creator>
				<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[MSBuild]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>

		<guid isPermaLink="false">http://www.dougfinke.com/blog/index.php/2010/10/20/build-visual-studio-projects-on-remote-boxes-using-powershell-and-msbuild/</guid>
		<description><![CDATA[We are setting up a new Continuous Build server and as we tweak parameters, things happen. For example, false positives. The build worked on the server but fails locally. As a sanity check and major time saver, this script runs MSBuild on a remote computer. You specify the name of the remote box and the [...]]]></description>
				<content:encoded><![CDATA[</p>
<p>We are setting up a new <a href="http://en.wikipedia.org/wiki/Continuous_integration">Continuous Build</a> server and as we tweak parameters, things happen. For example, false positives. The build worked on the server but fails locally. </p>
<p>As a sanity check and major time saver, this script runs MSBuild on a remote computer. You specify the name of the remote box and the Visual Studio solution path and filename. </p>
<pre style="width: 362px; height: 21px" class="PowerShellColorizedScript"><span style="color: #0000ff">Invoke-RemoteMSBuild</span> <span style="color: #8a2be2">ServerX</span> <span style="color: #8a2be2">G:\Build\Test.sln</span></pre>
<h3>No Fuss, No Muss</h3>
<p>You run this script on your box, the MSBuild runs remotely. The MSBuild output is returned to your local box. No remoting in, no login, simple and easy.</p>
<pre style="width: 559px; height: 282px" class="PowerShellColorizedScript"><span style="color: #00008b">Function</span> <span style="color: #8a2be2">Invoke-RemoteMSBuild</span> <span style="color: #000000">{</span>            
    <span style="color: #00008b">param</span> <span style="color: #000000">(</span>            
        <span style="color: #ff4500">$computerName</span> <span style="color: #a9a9a9">,</span>            
        <span style="color: #ff4500">$vsSolution</span> <span style="color: #a9a9a9">=</span> <span style="color: #000000">$(</span><span style="color: #00008b">throw</span> <span style="color: #8b0000">&quot;Please specify the solution file&quot;</span><span style="color: #000000">)</span>            
    <span style="color: #000000">)</span>            
            
    <span style="color: #0000ff">Invoke-Command</span> <span style="color: #000080">-ComputerName</span> <span style="color: #ff4500">$computerName</span> <span style="color: #000000">{</span>            
        <span style="color: #00008b">param</span> <span style="color: #000000">(</span><span style="color: #ff4500">$vsSolution</span><span style="color: #000000">)</span>            
            
        <span style="color: #ff4500">$msbuildpath</span> <span style="color: #a9a9a9">=</span> <span style="color: #8b0000">&quot;$($env:windir)\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe&quot;</span>            
        <span style="color: #a9a9a9">&amp;</span> <span style="color: #ff4500">$msbuildpath</span> <span style="color: #ff4500">$vsSolution</span>            
            
    <span style="color: #000000">}</span> <span style="color: #000080">-ArgumentList</span> <span style="color: #ff4500">$vsSolution</span>            
<span style="color: #000000">}</span></pre>
<p>You need to have PowerShell installed on both boxes, run Enable-PSRemoting on both boxes and you need to be in the admin group on the server.</p>
<p>Thanks to colleague <a href="http://blog.lab49.com/archives/2650">Jason Dolinger</a> who is quickly ramping up on PowerShell and asked if this could be done.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dougfinke.com/blog/index.php/2010/10/20/build-visual-studio-projects-on-remote-boxes-using-powershell-and-msbuild/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>I&#8217;ll be doing a PowerShell session at the Westchester Code Camp November 6th</title>
		<link>http://www.dougfinke.com/blog/index.php/2010/10/19/ill-be-doing-a-powershell-session-at-the-westchester-code-camp-november-6th/</link>
		<comments>http://www.dougfinke.com/blog/index.php/2010/10/19/ill-be-doing-a-powershell-session-at-the-westchester-code-camp-november-6th/#comments</comments>
		<pubDate>Tue, 19 Oct 2010 23:46:01 +0000</pubDate>
		<dc:creator>Doug Finke</dc:creator>
				<category><![CDATA[MSDN]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>
		<category><![CDATA[Westchester Code Camp]]></category>

		<guid isPermaLink="false">http://www.dougfinke.com/blog/index.php/2010/10/19/ill-be-doing-a-powershell-session-at-the-westchester-code-camp-november-6th/</guid>
		<description><![CDATA[The Westchester Code Camp Link is HERE. Follow me on twitter, I’ll be giving details on how to win a Microsoft Visual Studio 2010 Ultimate MSDN subscription at my Code Camp session.]]></description>
				<content:encoded><![CDATA[<p>The Westchester Code Camp Link is <a href="http://goo.gl/Wh2C">HERE</a>.</p>
<p><a href="http://twitter.com/dfinke">Follow me on twitter</a>, I’ll be giving details on how to win a Microsoft Visual Studio 2010 Ultimate MSDN subscription at my Code Camp session.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dougfinke.com/blog/index.php/2010/10/19/ill-be-doing-a-powershell-session-at-the-westchester-code-camp-november-6th/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NuPack &#8211; Open Source Package Manager for .NET &#8211; Includes a PowerShell Interface</title>
		<link>http://www.dougfinke.com/blog/index.php/2010/10/06/nupack-open-source-package-manager-for-net-includes-a-powershell-interface/</link>
		<comments>http://www.dougfinke.com/blog/index.php/2010/10/06/nupack-open-source-package-manager-for-net-includes-a-powershell-interface/#comments</comments>
		<pubDate>Thu, 07 Oct 2010 00:11:24 +0000</pubDate>
		<dc:creator>Doug Finke</dc:creator>
				<category><![CDATA[NuPack]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>

		<guid isPermaLink="false">http://www.dougfinke.com/blog/index.php/2010/10/06/nupack-open-source-package-manager-for-net-includes-a-powershell-interface/</guid>
		<description><![CDATA[NuPack is an integrated package management tool for adding libraries and tools to their .NET projects. It is available as a command line tool, integrated console window inside of Visual Studio 2010, a UI element in the Visual Studio context menu, and a series of PowerShell cmdlets. ScottGu’s post on NuPack Package Manager Console Is [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://nupack.codeplex.com/">NuPack</a> is an integrated package management tool for adding libraries and tools to their .NET projects. It is available as a command line tool, integrated console window inside of Visual Studio 2010, a UI element in the Visual Studio context menu, and a series of <strong><em>PowerShell cmdlets</em></strong>.</p>
<p><a href="http://weblogs.asp.net/scottgu/archive/2010/10/06/announcing-nupack-asp-net-mvc-3-beta-and-webmatrix-beta-2.aspx">ScottGu’s post on NuPack</a></p>
<h3>Package Manager Console</h3>
<p>Is a Visual Studio 2010 Add-in which is a PowerShell Console, a custom PowerShell host.</p>
<p><img alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_0102ACAF.png" width="553" height="374" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dougfinke.com/blog/index.php/2010/10/06/nupack-open-source-package-manager-for-net-includes-a-powershell-interface/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>I&#8217;ll be doing a PowerShell session at the Pittsburgh Code Camp October 16th</title>
		<link>http://www.dougfinke.com/blog/index.php/2010/09/27/ill-be-doing-a-powershell-session-at-the-pittsburgh-code-camp-october-16th/</link>
		<comments>http://www.dougfinke.com/blog/index.php/2010/09/27/ill-be-doing-a-powershell-session-at-the-pittsburgh-code-camp-october-16th/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 00:41:04 +0000</pubDate>
		<dc:creator>Doug Finke</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Code Camp]]></category>
		<category><![CDATA[MSDN]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>
		<category><![CDATA[Westchester Code Camp]]></category>

		<guid isPermaLink="false">http://www.dougfinke.com/blog/index.php/2010/09/27/ill-be-doing-a-powershell-session-at-the-pittsburgh-code-camp-october-16th/</guid>
		<description><![CDATA[The Pittsburgh Code Camp Link is HERE. Follow me on twitter, I’ll be giving details how to win a Microsoft Visual Studio 2010 Ultimate MSDN subscription at my Code Camp session.]]></description>
				<content:encoded><![CDATA[<p>The Pittsburgh Code Camp Link is <a href="http://codecamppgh.com/CodeCamp20102Schedule.aspx">HERE</a>.</p>
<p><a href="http://twitter.com/dfinke">Follow me on twitter</a>, I’ll be giving details how to win a Microsoft Visual Studio 2010 Ultimate MSDN subscription at my Code Camp session.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dougfinke.com/blog/index.php/2010/09/27/ill-be-doing-a-powershell-session-at-the-pittsburgh-code-camp-october-16th/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
