<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Nikhil's Blog</title><subtitle type="html">About VSTO and random technology tidbits</subtitle><id>http://blogs.msdn.com/nikhil/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nikhil/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/nikhil/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2007-06-06T00:47:00Z</updated><entry><title>Shortcut tip: Ctrl + shift + Esc and Ctrl + alt + end</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nikhil/archive/2008/04/14/shortcut-tip-ctrl-shift-esc-and-ctrl-alt-end.aspx" /><id>http://blogs.msdn.com/nikhil/archive/2008/04/14/shortcut-tip-ctrl-shift-esc-and-ctrl-alt-end.aspx</id><published>2008-04-15T08:24:00Z</published><updated>2008-04-15T08:24:00Z</updated><content type="html">&lt;P&gt;I recently learnt&amp;nbsp;a new shortcut to get to the task manager: Ctrl + shift + Esc. It's especially useful on Vista and Windows Server 2008. On these OSs, ctrl+alt+del maps to another screen where you can select the task manager.&amp;nbsp;One screen lesser to get to the task manager is totally awesome! &lt;/P&gt;
&lt;P&gt;Also,&amp;nbsp;my colleague loved&amp;nbsp;another shortcut key combination (ctrl + alt + end)&amp;nbsp;that I have been using for a while.&amp;nbsp;Ctrl + alt + end shows the task manager on&amp;nbsp;the remote machine when using Remote Desktop.&lt;/P&gt;
&lt;P&gt;I'm just putting it out there&amp;nbsp;- in case, someone will find this useful!&lt;/P&gt;
&lt;P&gt;(I have to admit that I was inspired to blog about&amp;nbsp;this&amp;nbsp;by &lt;A class="" href="http://blogs.msdn.com/saraford/default.aspx" mce_href="http://blogs.msdn.com/saraford/default.aspx"&gt;Sara Ford's&lt;/A&gt; amazing&amp;nbsp;VS&amp;nbsp;tip of the day series&amp;nbsp;(she's at #193 right now)&amp;nbsp;. She'd recently shared her blogging experiences with some of us and how people love shortcuts!)&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8396638" width="1" height="1"&gt;</content><author><name>nikhilkh</name><uri>http://blogs.msdn.com/members/nikhilkh.aspx</uri></author><category term="Tip &amp;amp; Tricks" scheme="http://blogs.msdn.com/nikhil/archive/tags/Tip+_2600_amp_3B00_+Tricks/default.aspx" /></entry><entry><title>VSTO Power tool: SharePoint Workflow package generator</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nikhil/archive/2008/03/03/vsto-power-tool-sharepoint-workflow-package-generator.aspx" /><id>http://blogs.msdn.com/nikhil/archive/2008/03/03/vsto-power-tool-sharepoint-workflow-package-generator.aspx</id><published>2008-03-04T09:26:00Z</published><updated>2008-03-04T09:26:00Z</updated><content type="html">&lt;P&gt;We announced the release of &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=46B6BF86-E35D-4870-B214-4D7B72B02BF9&amp;amp;displaylang=en" target=_blank mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=46B6BF86-E35D-4870-B214-4D7B72B02BF9&amp;amp;displaylang=en"&gt;VSTO power tools&lt;/A&gt; at Office Developer Conference (ODC). Of the many tools that we released, I will discuss the SharePoint Workflow Package Generator. Workflow package generator is a tool that creates a WSP file from a VS 2008 SharePoint workflow project. &lt;/P&gt;
&lt;P&gt;The package generator uses the feature.xml file to generate a WSP file. In the WSP file, it will also include any &amp;lt;ElementFile&amp;gt; that have been referenced. Hence, any referenced InfoPath forms and resource files will also be packaged in the WSP file.&lt;/P&gt;
&lt;P&gt;To use the package generator just type: 
&lt;P&gt;“c:\Program Files\Microsoft VSTO Power Tools 1.0\workflowpackagegen.exe" /featureManifest:feature.xml 
&lt;P&gt;An example of incorporating the tool into the project as an MSBuild post-build task is shown below. You can add this to the end of your csproj/vbproj file to get a wsp file after every build: 
&lt;P&gt;&amp;lt;Target Name="AfterBuild"&amp;gt;&lt;BR&gt;&amp;lt;Exec Command="&amp;amp;quot;c:\Program Files\Microsoft VSTO Power Tools 1.0\workflowpackagegen.exe&amp;amp;quot; /featureManifest:feature.xml" ContinueOnError="true"&amp;gt;&lt;BR&gt;&amp;lt;/Exec&amp;gt;&lt;BR&gt;&amp;lt;/Target&amp;gt; 
&lt;P&gt;Drop me a line if you find the tool useful. We're always looking for feedback on our tools.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8020453" width="1" height="1"&gt;</content><author><name>nikhilkh</name><uri>http://blogs.msdn.com/members/nikhilkh.aspx</uri></author><category term="VSTO" scheme="http://blogs.msdn.com/nikhil/archive/tags/VSTO/default.aspx" /><category term="SharePoint" scheme="http://blogs.msdn.com/nikhil/archive/tags/SharePoint/default.aspx" /><category term="VS 2008" scheme="http://blogs.msdn.com/nikhil/archive/tags/VS+2008/default.aspx" /><category term="SharePoint Workflow" scheme="http://blogs.msdn.com/nikhil/archive/tags/SharePoint+Workflow/default.aspx" /></entry><entry><title>InfoPath forms deployment, SharePoint workflow in VS 2008</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nikhil/archive/2008/01/22/infopath-forms-deployment-sharepoint-workflow-in-vs-2008.aspx" /><id>http://blogs.msdn.com/nikhil/archive/2008/01/22/infopath-forms-deployment-sharepoint-workflow-in-vs-2008.aspx</id><published>2008-01-22T12:13:09Z</published><updated>2008-01-22T12:13:09Z</updated><content type="html">&lt;p&gt;A number of developers who have tried the SharePoint workflow features in VS 2008 wanted to know more about our support for InfoPath forms deployment. So I'm blogging it here for everyone's reference.&lt;/p&gt; &lt;p&gt;Before diving into details of InfoPath forms deployment here's a little bit of background on workflow and InfoPath forms integration. Typical SharePoint workflows goes through different stages - &lt;strong&gt;association&lt;/strong&gt;, &lt;strong&gt;initiation&lt;/strong&gt;, &lt;strong&gt;task completion&lt;/strong&gt;. Also, workflows might be &lt;strong&gt;modified&lt;/strong&gt; after being initiated. SharePoint supports ASP.NET and InfoPath forms to enable developers to capture user inputs at these different stages. For example, on initiation of a simple document approval workflow you might want to capture the approvers for the document. &lt;p&gt;To develop InfoPath forms you can either use the VSTO template for InfoPath that also ships with Visual Studio 2008 or InfoPath (with VSTA) itself. Once you have designed the InfoPath form it can be published as an XSN file. There is some great documentation on &lt;a href="http://msdn2.microsoft.com/en-us/library/ms548723.aspx" target="_blank"&gt;MSDN&lt;/a&gt; regarding this. In general, if you need code (custom event handlers/validation) behind your InfoPath forms you should use the VSTO InfoPath template and create a project alongside your workflow project. &lt;p&gt;Coming back to SharePoint workflow integration with InfoPath forms - It is very easy to deploy InfoPath forms along with your workflow. All you have to do is to add a relative reference to the form in the feature.xml with the &amp;lt;ElementFile/&amp;gt; element eg:&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ElementFile&lt;/span&gt; &lt;span class="attr"&gt;Location&lt;/span&gt;&lt;span class="kwrd"&gt;="InfoPathForm.xsn"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;

&lt;p&gt;When you press F5 you will see that VS will copy the form alongside your feature.xml files in the 12\TEMPLATE\FEATURES\&amp;lt;featname&amp;gt;\ directory. It must be noted that this is a &lt;em&gt;relative reference &lt;/em&gt;to the form and VS will look in the path specified relative to the source location of feature.xml.
&lt;p&gt;You can use the above feature to also install resx files or any other accompanying files. Also, the feature.xml file is processed by SharePoint on feature installation and absolute paths or relative references with ellipsis are not supported (for obvious security reasons). However, you can add references that need to be deployed as subdirectories and we will replicate the hierarchy eg:&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ElementFile&lt;/span&gt; &lt;span class="attr"&gt;Location&lt;/span&gt;&lt;span class="kwrd"&gt;="InfoPathForms\InfoPathForm1.xsn"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;br&gt;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ElementFile&lt;/span&gt; &lt;span class="attr"&gt;Location&lt;/span&gt;&lt;span class="kwrd"&gt;="Resources\Resources.en-us.resx"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;On F5, a subdirectory named InfoPathForms and Resources will be created in the 12\TEMPLATE\Features\&amp;lt;featname&amp;gt;\ directory.
&lt;p&gt;And yeah, don't forget to reference them also in the workflow.xml as an initiation, association, modification or task form, to see them show up at runtime.
&lt;p&gt;Now go ahead and have fun with InfoPath forms!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7195844" width="1" height="1"&gt;</content><author><name>nikhilkh</name><uri>http://blogs.msdn.com/members/nikhilkh.aspx</uri></author><category term="VSTO" scheme="http://blogs.msdn.com/nikhil/archive/tags/VSTO/default.aspx" /><category term="SharePoint" scheme="http://blogs.msdn.com/nikhil/archive/tags/SharePoint/default.aspx" /><category term="VS 2008" scheme="http://blogs.msdn.com/nikhil/archive/tags/VS+2008/default.aspx" /><category term="SharePoint Workflow" scheme="http://blogs.msdn.com/nikhil/archive/tags/SharePoint+Workflow/default.aspx" /></entry><entry><title>SharePoint Workflow feature in VS 2008 (Part II)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nikhil/archive/2008/01/19/sharepoint-workflow-feature-in-vs-2008-part-ii.aspx" /><id>http://blogs.msdn.com/nikhil/archive/2008/01/19/sharepoint-workflow-feature-in-vs-2008-part-ii.aspx</id><published>2008-01-20T03:30:00Z</published><updated>2008-01-20T03:30:00Z</updated><content type="html">&lt;P&gt;I will continue from my &lt;A href="http://blogs.msdn.com/nikhil/archive/2008/01/15/sharepoint-workflow-feature-in-vs-2008.aspx" target=_blank mce_href="http://blogs.msdn.com/nikhil/archive/2008/01/15/sharepoint-workflow-feature-in-vs-2008.aspx"&gt;last post&lt;/A&gt; on authoring SharePoint workflows in VS 2008 by providing a walkthrough.&lt;/P&gt;
&lt;P&gt;In order to work with SharePoint workflows in VS you will have to setup your development machine as follows:&lt;/P&gt;
&lt;P&gt;1)&amp;nbsp;&amp;nbsp;&amp;nbsp; Install Windows Server 2003.&lt;BR&gt;2)&amp;nbsp;&amp;nbsp;&amp;nbsp; Install Internet Information Services (IIS). (In Control Panel, Add/Remove Windows Components, Application Server, Details, Internet Information Services (IIS).)&lt;BR&gt;3)&amp;nbsp;&amp;nbsp;&amp;nbsp; Install .NET Framework 2.0 and.NET Framework 3.0.&lt;BR&gt;4)&amp;nbsp;&amp;nbsp;&amp;nbsp; Enable ASP.NET 2.0.5727 in IIS Manager.&lt;BR&gt;5)&amp;nbsp;&amp;nbsp;&amp;nbsp; Install Microsoft Office SharePoint Server 2007 (MOSS). Make sure to run the configuration wizard. [Edit: May 29: WSS is not supported]&lt;BR&gt;6)&amp;nbsp;&amp;nbsp;&amp;nbsp; Install Visual Studio 2008. Use the default installation, or make sure that Visual Studio Tools for Office is selected on the Custom installation page of the Setup wizard. 
&lt;P&gt;Some questions that come to mind -&amp;nbsp; Firstly, why &lt;STRONG&gt;only&lt;/STRONG&gt; Windows Server 2003 (no Windows Xp)? Well MOSS/WSS can only be installed on a Windows Server machine. And secondly, why does MOSS/WSS need to be installed on the development machine? It's just required to do &lt;STRONG&gt;any &lt;/STRONG&gt;(not just workflow) practical SharePoint development since you have to do an iisreset, access the GAC etc. 
&lt;P&gt;Is the above installation order important? Yes and no. If you install SharePoint before Visual Studio, your toolbox for Workflow development comes initialized with all SharePoint related activities. So it is a good idea to install in that order. If you do not do so - you will have to reset your toolbox (Right click on the toolbox and select 'Reset toolbox') once you start developing SharePoint workflows. 
&lt;P&gt;&lt;STRONG&gt;Project Creation&lt;/STRONG&gt; - Select the 'SharePoint 2007 Sequential Workflow' 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/NewProjectWizard_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/NewProjectWizard_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=317 alt=NewProjectWizard src="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/NewProjectWizard_thumb.jpg" width=532 border=0 mce_src="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/NewProjectWizard_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;New SharePoint Workflow wizard:&lt;/STRONG&gt; A wizard shows up that allows you to specify the parameters for debugging - the name of the worklfow, the local&amp;nbsp;SharePoint site &lt;STRONG&gt;(no support for&amp;nbsp;remote SharePoint sites)&lt;/STRONG&gt;&amp;nbsp;on which to deploy the workflows, the list to associate&amp;nbsp;it with, the task&amp;nbsp;and&amp;nbsp;history list to work with. Also you can specify, how you intend to start your workflow on F5.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/Wizard1_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/Wizard1_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=417 alt=Wizard1 src="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/Wizard1_thumb.jpg" width=522 border=0 mce_src="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/Wizard1_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Select the parameters for workflow association on F5:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/wizard2_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/wizard2_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=422 alt=wizard2 src="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/wizard2_thumb.jpg" width=529 border=0 mce_src="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/wizard2_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/Wizard3_4.jpg" mce_href="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/Wizard3_4.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=417 alt=Wizard3 src="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/Wizard3_thumb_1.jpg" width=523 border=0 mce_src="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/Wizard3_thumb_1.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Workflow designer:&lt;/STRONG&gt;On pressing 'Finish' in the wizard, the workflow designer shows up.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/designer_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/designer_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=321 alt=designer src="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/designer_thumb.jpg" width=521 border=0 mce_src="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/designer_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Property Window:&lt;/STRONG&gt;A few additions to note include a property window that allows you to view/change the selections you made in the wizard. The property window is visible when you have the project node selected in the Solution Explorer.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/PropertyGrid_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/PropertyGrid_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=478 alt=PropertyGrid src="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/PropertyGrid_thumb.jpg" width=405 border=0 mce_src="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/PropertyGrid_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Breakpoint: &lt;/STRONG&gt;You can go ahead an now put a breakpoint in the workflow activity in the designer, by right clicking the activity and selecting 'Insert breakpoint' from the context menu.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/breakpoint_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/breakpoint_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=229 alt=breakpoint src="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/breakpoint_thumb.jpg" width=372 border=0 mce_src="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/breakpoint_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Press F5 now to start debugging&lt;/STRONG&gt;&amp;nbsp; and you will notice the output window shows all the deployment details - Install the assembly to the GAC, restart IIS, copy workflow.xml, feature.xml, and any other resource files/InfoPath forms you may have, install and activate the workflow template as a feature in SharePoint, associate the workflow with the list you specified in the wizard.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/OutputWindow_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/OutputWindow_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=105 alt=OutputWindow src="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/OutputWindow_thumb.jpg" width=523 border=0 mce_src="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/OutputWindow_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;In the browser window that launches you will see the deployed workflow.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/DeployedWorkflow_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/DeployedWorkflow_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=175 alt=DeployedWorkflow src="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/DeployedWorkflow_thumb.jpg" width=544 border=0 mce_src="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/DeployedWorkflow_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;After you manually start the instance of the workflow, you will see the breakpoint being hit:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/breakpointHit_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/breakpointHit_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=261 alt=breakpointHit src="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/breakpointHit_thumb.jpg" width=383 border=0 mce_src="http://blogs.msdn.com/blogfiles/nikhil/WindowsLiveWriter/SharePointWorkflowfeatureinVS2008PartII_C5A/breakpointHit_thumb.jpg"&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Btw. my technorati profile is getting started here: &lt;A href="http://technorati.com/claim/a6aiweyxgg" target=_blank rel=me mce_href="http://technorati.com/claim/a6aiweyxgg"&gt;Technorati Profile&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7166126" width="1" height="1"&gt;</content><author><name>nikhilkh</name><uri>http://blogs.msdn.com/members/nikhilkh.aspx</uri></author><category term="VSTO" scheme="http://blogs.msdn.com/nikhil/archive/tags/VSTO/default.aspx" /><category term="SharePoint" scheme="http://blogs.msdn.com/nikhil/archive/tags/SharePoint/default.aspx" /><category term="VS 2008" scheme="http://blogs.msdn.com/nikhil/archive/tags/VS+2008/default.aspx" /><category term="SharePoint Workflow" scheme="http://blogs.msdn.com/nikhil/archive/tags/SharePoint+Workflow/default.aspx" /></entry><entry><title>SharePoint Workflow feature in VS 2008</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nikhil/archive/2008/01/15/sharepoint-workflow-feature-in-vs-2008.aspx" /><id>http://blogs.msdn.com/nikhil/archive/2008/01/15/sharepoint-workflow-feature-in-vs-2008.aspx</id><published>2008-01-15T12:33:00Z</published><updated>2008-01-15T12:33:00Z</updated><content type="html">&lt;P&gt;As mentioned in &lt;A href="http://blogs.msdn.com/nikhil/archive/2007/09/11/vsto-and-sharepoint-workflow.aspx" target=_blank mce_href="http://blogs.msdn.com/nikhil/archive/2007/09/11/vsto-and-sharepoint-workflow.aspx"&gt;earlier posts&lt;/A&gt;, I was one of the developers on the SharePoint Workflow feature in VS 2008. (shipped as one of the VSTO components - available in Professional SKU upwards)&lt;/P&gt;
&lt;P&gt;The feature include a set of VS project templates, wizard, and VS project package that integrates creating, deploying, and debugging of SharePoint workflows into a streamlined, simplified experience. &lt;/P&gt;
&lt;P&gt;Those who have used WSS SDK or MOSS SDK would realize that creating and debugging workflows in SharePoint is not an easy task. The main pillars of this feature were to significantly lower the learning curve for SharePoint workflow development, and make developers more productive. To achieve this, we knew that we had to optimize - what I like to call the &lt;STRONG&gt;code-build-debug cycle&lt;/STRONG&gt;. That's where you are bound to spend most of your time while developing workflows, and any improvements there would be of great value. &lt;/P&gt;
&lt;P&gt;Before VS 2008, typical code-build-debug cycle would be:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Write the code 
&lt;LI&gt;&lt;FONT color=#ff0000&gt;Build the workflow project. &lt;/FONT&gt;
&lt;LI&gt;&lt;FONT color=#ff0000&gt;Copy the latest feature.xml and workflow.xml files to the FEATURE directory. &lt;/FONT&gt;
&lt;LI&gt;&lt;FONT color=#ff0000&gt;Remove any existing copies of the workflow assembly from the GAC. &lt;/FONT&gt;
&lt;LI&gt;&lt;FONT color=#ff0000&gt;Add the latest version of the workflow assembly to the GAC. &lt;/FONT&gt;
&lt;LI&gt;&lt;FONT color=#ff0000&gt;Re-start IIS. &lt;/FONT&gt;
&lt;LI&gt;&lt;FONT color=#ff0000&gt;Install the feature with SharePoint using &lt;/FONT&gt;&lt;A href="http://technet2.microsoft.com/Office/en-us/library/188f006d-aa66-4784-a65b-a31822aa13f71033.mspx" target=_blank mce_href="http://technet2.microsoft.com/Office/en-us/library/188f006d-aa66-4784-a65b-a31822aa13f71033.mspx"&gt;&lt;FONT color=#ff0000&gt;stsadm&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ff0000&gt;. &lt;/FONT&gt;
&lt;LI&gt;&lt;FONT color=#ff0000&gt;Activate the feature at a SharePoint site where you intend to perform the debugging. &lt;/FONT&gt;
&lt;LI&gt;Launch the web browser and go to the list that you want to associate the workflow with. 
&lt;LI&gt;Associate the workflow with&amp;nbsp; the list. 
&lt;LI&gt;Attach the debugger to the correct IIS worker process. (W3WP) 
&lt;LI&gt;Manually start the workflow. 
&lt;LI&gt;Debug the workflow.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;The steps in &lt;FONT color=#ff0000&gt;red&lt;/FONT&gt; are scriptable, and WSS and MOSS SDK include batch files to enable that. However, batch files are difficult to maintain (source control, hard coding etc.?), error-prone (when something fails - what do you do?), and slow (more on this in another post). Rest of the steps are manual, tedious, and time consuming.&lt;/P&gt;
&lt;P&gt;Using VSTO SharePoint workflow project templates, your code-build-debug cycle will be so simple:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Write the code.&lt;/LI&gt;
&lt;LI&gt;Press F5 (builds, deploys files, associates the workflow feature in SharePoint, attaches the debugger to the correct W3WP process, launches the browser).&lt;/LI&gt;
&lt;LI&gt;Manually start the workflow.&lt;/LI&gt;
&lt;LI&gt;Debug the workflow.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Imagine this being repeated every time you make a change to your workflow. This is how VS 2008 already gives you a great productivity edge - you just need to now &lt;STRONG&gt;focus&lt;/STRONG&gt; on designing your solution.&lt;/P&gt;
&lt;P&gt;Get your copy of VS 2008 and give the feature a try, and drop me a line about how you find the feature.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7117089" width="1" height="1"&gt;</content><author><name>nikhilkh</name><uri>http://blogs.msdn.com/members/nikhilkh.aspx</uri></author><category term="VSTO" scheme="http://blogs.msdn.com/nikhil/archive/tags/VSTO/default.aspx" /><category term="SharePoint" scheme="http://blogs.msdn.com/nikhil/archive/tags/SharePoint/default.aspx" /><category term="VS 2008" scheme="http://blogs.msdn.com/nikhil/archive/tags/VS+2008/default.aspx" /><category term="SharePoint Workflow" scheme="http://blogs.msdn.com/nikhil/archive/tags/SharePoint+Workflow/default.aspx" /></entry><entry><title>Visual Studio 2008 released</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nikhil/archive/2007/12/04/visual-studio-2008-released.aspx" /><id>http://blogs.msdn.com/nikhil/archive/2007/12/04/visual-studio-2008-released.aspx</id><published>2007-12-04T12:12:41Z</published><updated>2007-12-04T12:12:41Z</updated><content type="html">&lt;p&gt;With a lot of fanfare, VS 2008 and .NET 3.5 released on Nov. 19th. Talking to customers and early adopters, I have received a lot of positive feedback on the product. Check out the excitement in the blogsphere:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;With more than 400 comments (and counting), customers seem to be certainly excited about the announcement of the release by &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/11/19/visual-studio-2008-and-net-3-5-released.aspx" target="_blank"&gt;ScottGu&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;Another great post is from a former MVP (Daniel Moth): &lt;a href="http://www.danielmoth.com/Blog/2007/11/top-10-things-to-know-about-visual.html" target="_blank"&gt;Top 10 things to know about VS 2008 and .NET Framework 3.5&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;More link love and information of VS 2008 features can be found on &lt;a href="http://jopx.blogspot.com/2007/11/getting-started-with-visual-studio-2008.html" target="_blank"&gt;this post&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Check out the spike in Technorati's visual studio blog topic chart:&lt;/p&gt; &lt;p&gt;&lt;img alt="" src="http://charts.technorati.com/chartimg/visual%20studio?totalHits=12344&amp;amp;qParams=%26fMinAuthority%3Da4%26fTermLanguage%3D26110&amp;amp;height=329&amp;amp;width=420&amp;amp;days=90"&gt;&lt;/p&gt; &lt;p&gt;Download your trial copy now from &lt;a href="http://www.microsoft.com/vstudio" target="_blank"&gt;MSDN&lt;/a&gt;. In case you had installed any pre-release bits of the product, please make sure you &lt;a href="http://msdn2.microsoft.com/en-us/vstudio/bb964521.aspx" target="_blank"&gt;uninstall&lt;/a&gt; it first.&lt;/p&gt; &lt;p&gt;Watch out this space for more posts with details of new VSTO features in the release.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6650519" width="1" height="1"&gt;</content><author><name>nikhilkh</name><uri>http://blogs.msdn.com/members/nikhilkh.aspx</uri></author><category term="VS 2008" scheme="http://blogs.msdn.com/nikhil/archive/tags/VS+2008/default.aspx" /></entry><entry><title>Performance tips for the BCL</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nikhil/archive/2007/11/07/performance-tips-for-the-bcl.aspx" /><id>http://blogs.msdn.com/nikhil/archive/2007/11/07/performance-tips-for-the-bcl.aspx</id><published>2007-11-07T12:25:00Z</published><updated>2007-11-07T12:25:00Z</updated><content type="html">&lt;P&gt;This is a good article on performance tips of the .NET Framework Base Class Library - &lt;A title=http://msdn.microsoft.com/msdnmag/issues/06/01/CLRInsideOut/default.aspx href="http://msdn.microsoft.com/msdnmag/issues/06/01/CLRInsideOut/default.aspx" mce_href="http://msdn.microsoft.com/msdnmag/issues/06/01/CLRInsideOut/default.aspx"&gt;http://msdn.microsoft.com/msdnmag/issues/06/01/CLRInsideOut/default.aspx&lt;/A&gt;. I learned something new about lock-free tracing and DateTime comparisons. &lt;/P&gt;
&lt;P&gt;The great numerical comparisons of generic Vs non-generic collections, for reference and value types, is a good read. Generics (as expected) perform better than their non-generic counterparts.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5954920" width="1" height="1"&gt;</content><author><name>nikhilkh</name><uri>http://blogs.msdn.com/members/nikhilkh.aspx</uri></author><category term="General Coding" scheme="http://blogs.msdn.com/nikhil/archive/tags/General+Coding/default.aspx" /></entry><entry><title>VS 2008 and SharePoint Workflow</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nikhil/archive/2007/09/11/vsto-and-sharepoint-workflow.aspx" /><id>http://blogs.msdn.com/nikhil/archive/2007/09/11/vsto-and-sharepoint-workflow.aspx</id><published>2007-09-11T10:14:00Z</published><updated>2007-09-11T10:14:00Z</updated><content type="html">&lt;P&gt;The "Orcas" release train has been keeping me busy. For a long time I have been thinking of blogging about the feature that I worked on in Orcas. As the title of this entry suggests it is a VSTO feature that has to do something with SharePoint Workflow.&lt;/P&gt;
&lt;P&gt;Firstly, lets look at SharePoint (also referred to as Microsoft Office SharePoint Server (MOSS) - yet another long product name!). In the MOSS 2007 release, the SharePoint team has done a great job of integrating with the &lt;A href="http://wf.netfx3.com/" target=_blank mce_href="http://wf.netfx3.com/"&gt;Workflow Foundation (WF)&lt;/A&gt; to provide a means to create workflows. &lt;/P&gt;
&lt;P&gt;A &lt;B&gt;workflow&lt;/B&gt; is a reliably repeatable pattern of activity enabled by a systematic organization of resources, and information flows (from Wikipedia). A typical workflow in MOSS would be that of document approval. An employee writes a document that needs to be approved by the manager before sending it out externally. When the employee checks in the document in a SharePoint library, the manager is assigned a task to approve the document. On approval, the employee gets a notification and sends out the document to the customer. This is a simple example, but a workflow can define a more sophisticated and complex series of human or automated activities in an enterprise.&lt;/P&gt;
&lt;P&gt;As you may have guessed, that building workflows from ground up is a lot of work. The SharePoint team has done a great job by integrating WF and creating a great runtime story - taking care of difficult problems pertaining to persistence, serialization, permissions, user model etc., However, there is a necessity to make the development of SharePoint workflows much easier.&amp;nbsp; As John Durant in his &lt;A href="http://blogs.msdn.com/johnrdurant/archive/2007/04/06/sharepoint-development-article.aspx" target=_blank mce_href="http://blogs.msdn.com/johnrdurant/archive/2007/04/06/sharepoint-development-article.aspx"&gt;blog post&lt;/A&gt; quotes &lt;A href="http://www.devx.com/webdev/Article/34032/" target=_blank mce_href="http://www.devx.com/webdev/Article/34032/"&gt;Robert Bogue&lt;/A&gt;: &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;SharePoint and Workflow may be the most powerful combination since chocolate and peanut butter, but the trick is harnessing their combined power. &lt;STRONG&gt;That isn't as easy as it first seems&lt;/STRONG&gt;, but in this article you'll learn how create a SharePoint workflow in Visual Studio from start to finish.&amp;nbsp; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;That's where the VSTO SharePoint workflow tools come in. We have made it extremely easy for you to &lt;STRONG&gt;develop, deploy, and debug &lt;/STRONG&gt;SharePoint workflows. We have brought the "simple F5 experience" (as we internally refer to it) that you are familiar with for Windows application development, to SharePoint Workflow development. &lt;/P&gt;
&lt;P&gt;No more hunting for the right w3wp processes in the task manager, looking for stsadm errors, or running of some batch scripts to deploy your workflows. (as documented &lt;A href="http://msdn2.microsoft.com/en-us/library/ms455354.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/ms455354.aspx"&gt;here&lt;/A&gt;) VSTO SharePoint workflow tools take care of all this for you. &lt;/P&gt;
&lt;P&gt;Check this feature out in the &lt;A href="http://go.microsoft.com/?linkid=7175498" target=_blank mce_href="http://go.microsoft.com/?linkid=7175498"&gt;VS 2008 Beta 2 release.&lt;/A&gt;&amp;nbsp;Now you can focus on your business logic right away - without caring about&amp;nbsp;setting up your environment for development.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4862261" width="1" height="1"&gt;</content><author><name>nikhilkh</name><uri>http://blogs.msdn.com/members/nikhilkh.aspx</uri></author><category term="VSTO" scheme="http://blogs.msdn.com/nikhil/archive/tags/VSTO/default.aspx" /><category term="SharePoint" scheme="http://blogs.msdn.com/nikhil/archive/tags/SharePoint/default.aspx" /><category term="VS 2008" scheme="http://blogs.msdn.com/nikhil/archive/tags/VS+2008/default.aspx" /><category term="SharePoint Workflow" scheme="http://blogs.msdn.com/nikhil/archive/tags/SharePoint+Workflow/default.aspx" /></entry><entry><title>VSTO file type mapping is lost</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nikhil/archive/2007/08/27/vsto-file-type-mapping-lost.aspx" /><id>http://blogs.msdn.com/nikhil/archive/2007/08/27/vsto-file-type-mapping-lost.aspx</id><published>2007-08-27T20:17:00Z</published><updated>2007-08-27T20:17:00Z</updated><content type="html">&lt;P&gt;Some people have been running into this issue with VS2008 Beta 2 as posted on the &lt;A class="" href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2058128&amp;amp;SiteID=1" mce_href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2058128&amp;amp;SiteID=1"&gt;MSDN forum&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;I am posting&amp;nbsp;a workaround here for everyone's reference. When you change the default program for&amp;nbsp;the .vsto file&amp;nbsp;extension, VSTO solutions cannot be deployed again.&amp;nbsp;You will have to reset the default handler for .vsto file back to VSTO Execution Engine. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;For Windows XP:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P align=left&gt;Right-click a .vsto file and select "Open With...". In the list of the programs you should be able to see "Visual Studio Tools for Office Execution Engine Component (VSTOEE)". Please select it and make sure you select the checkbox that says "Always use the selected program to open this kind of file". In case you do not find the VSTOEE component in the list of the available programs follow the steps below:&lt;/P&gt;
&lt;P align=left&gt;&lt;STRONG&gt;For Windows Vista (and sometimes Windows XP):&lt;/STRONG&gt;&lt;/P&gt;
&lt;P align=left&gt;You will need to add a registry entry to show the VSTOEE component in the Open With.. dialog box.&lt;/P&gt;
&lt;P align=left&gt;Copy and paste this into notepad and name&amp;nbsp;the file&amp;nbsp;vsto.reg:&lt;/P&gt;
&lt;P align=left mce_keep="true"&gt;Windows Registry Editor Version 5.00&lt;/P&gt;
&lt;P align=left&gt;[HKEY_CLASSES_ROOT\bootstrap.vsto.1\shell]&lt;/P&gt;
&lt;P align=left&gt;[HKEY_CLASSES_ROOT\bootstrap.vsto.1\shell\open]&lt;BR&gt;@=""&lt;/P&gt;
&lt;P align=left&gt;[HKEY_CLASSES_ROOT\bootstrap.vsto.1\shell\open\command]&lt;BR&gt;@="rundll32.exe \"C:\\Program Files\\Common Files\\Microsoft Shared\\VSTO\\vstoee.dll\",InstallVstoSolution %1"&lt;/P&gt;
&lt;P align=left&gt;&lt;SPAN&gt;[HKEY_CLASSES_ROOT\.vsto]&lt;BR&gt;"Content Type"="application/x-ms-vsto"&lt;BR&gt;@="bootstrap.vsto.1"&lt;/P&gt;
&lt;P align=left&gt;[HKEY_CLASSES_ROOT\.vsto\bootstrap]&lt;BR&gt;@="bootstrap.vsto.1"&lt;BR&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;/SPAN&gt;Now&amp;nbsp;double-click the registry file to add it into the registry.&lt;/P&gt;
&lt;P align=left mce_keep="true"&gt;Once it has been added you might need to restart explorer.exe so that it picks up the changes. Now you should see the VSTOEE component being listed in the Open With... dialog box. Use it as the default program for the .vsto extension. Everything should work as expected now.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Hope this helps!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4594659" width="1" height="1"&gt;</content><author><name>nikhilkh</name><uri>http://blogs.msdn.com/members/nikhilkh.aspx</uri></author><category term="VSTO" scheme="http://blogs.msdn.com/nikhil/archive/tags/VSTO/default.aspx" /></entry><entry><title>VS 2008 Beta 2 has released</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nikhil/archive/2007/07/26/vs-2008-beta-2-has-released.aspx" /><id>http://blogs.msdn.com/nikhil/archive/2007/07/26/vs-2008-beta-2-has-released.aspx</id><published>2007-07-27T09:53:39Z</published><updated>2007-07-27T09:53:39Z</updated><content type="html">&lt;p&gt;This is a significant milestone in the VS 2008 development cycle. Almost all our features have completed in this broadly available public release and you can expect a significant upgrade in features when compared to Beta 1. If you haven't already got a copy, download one from &lt;a href="http://msdn2.microsoft.com/en-us/vstudio/default.aspx" target="_blank"&gt;here&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;Are you a little intimidated with the size of the download? With VS 2008 beta 2 we are for the first time on a large scale trying Microsoft Secure Content Distribution (MSCD) system that uses peer-to-peer technology developed at MSR to allow faster and easier downloads. More details on MSCD can be found at the &lt;a href="http://research.microsoft.com/news/featurestories/publish/MSCD.docx.aspx?0hp=n1" target="_blank"&gt;Microsoft Research web site&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;Let us know how you find the Beta 2. Give feedback through &lt;a href="http://connect.microsoft.com/feedback/default.aspx?siteid=210" target="_blank"&gt;Microsoft Connect&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4076044" width="1" height="1"&gt;</content><author><name>nikhilkh</name><uri>http://blogs.msdn.com/members/nikhilkh.aspx</uri></author></entry><entry><title>Performance Signatures</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nikhil/archive/2007/06/29/performance-signatures.aspx" /><id>http://blogs.msdn.com/nikhil/archive/2007/06/29/performance-signatures.aspx</id><published>2007-06-30T04:37:00Z</published><updated>2007-06-30T04:37:00Z</updated><content type="html">&lt;P&gt;Today I attended an interesting talk on Performance Signatures by &lt;A href="http://blogs.msdn.com/ricom/" mce_href="http://blogs.msdn.com/ricom/"&gt;Rico Mariani&lt;/A&gt;. According to his experience, a high proportion of performance related problems are due to:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Bad choice of algorithm 
&lt;LI&gt;Dependencies we take on other frameworks or platforms.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;He talked about the second problem in detail. He proposed a mechanism of using &lt;A href="http://blogs.msdn.com/ricom/archive/tags/signatures/default.aspx" mce_href="http://blogs.msdn.com/ricom/archive/tags/signatures/default.aspx"&gt;performance signatures&lt;/A&gt; to evaluate performance of external dependencies we take. Performance signatures are a qualitative measure that can help us to understand the performance characteristics of a method eg. synchronization, memory allocation complexity etc. &lt;/P&gt;
&lt;P&gt;He gave an interesting analogy from the architectural world.&amp;nbsp;A structural engineer can evaluate materials on the basis of their tensile strength to build a&amp;nbsp;robust structure. In the same way, a software engineer can use performance signatures to chose the dependencies he can afford to take.&lt;/P&gt;
&lt;P&gt;Rico also mentioned how they have done the groundwork to enable this (through static analysis)&amp;nbsp;and create performance signature for the .NET framework. They are expected to be published on MSDN in due time. A link to the cost metrics is &lt;A href="http://download.microsoft.com/download/8/d/a/8da59e54-0bbf-47c4-ab76-e38f478a44d2/log10costs.zip" mce_href="http://download.microsoft.com/download/8/d/a/8da59e54-0bbf-47c4-ab76-e38f478a44d2/log10costs.zip"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;It would be great if these could be integrated into the VS IDE using Intellisense to use different colors - red, yellow, green to indicate the cost involved for a certain method. This will help people understand and detect performance issues early in the cycle. Another cool idea, as suggested by &lt;A href="http://blogs.msdn.com/kcwalina/archive/2007/01/26/PerformanceSignatures.aspx" mce_href="http://blogs.msdn.com/kcwalina/archive/2007/01/26/PerformanceSignatures.aspx"&gt;Krzysztof Cwalina&lt;/A&gt;, is to enable this using FxCop.&lt;/P&gt;
&lt;P&gt;One might ask why does one need performance signatures? I think performance signatures will be most relevant when you are working against a library that has a high level of abstraction. Take for example - the .NET framework XmlDocument class.&amp;nbsp;I have seen it being used all too often in cases, when it&amp;nbsp;was not&amp;nbsp;necessarily required. The same XML&amp;nbsp;operation could be done without&amp;nbsp;loading the&amp;nbsp;complete DOM tree of the document into memory. &lt;/P&gt;
&lt;P&gt;In general, .NET framework offers a&amp;nbsp;high level of abstraction to make the life of a developer&amp;nbsp;simple by creating&amp;nbsp;very&amp;nbsp;easy-to-use&amp;nbsp;friendly APIs. But like any&amp;nbsp;abstraction, it is bound to be leaky (See Joel's &lt;A href="http://www.joelonsoftware.com/articles/LeakyAbstractions.html" mce_href="http://www.joelonsoftware.com/articles/LeakyAbstractions.html"&gt;original post&lt;/A&gt; on leaky abstractions). Developers become care-free, thinking that the framework will do everything to manage memory and do the heavy-lifting, and they do not need to care about it. They do not give so much thought to dependencies they are taking during the design and development phase. Only after 6 months of investment in the project when the end-to-end scenario is working, they realize that the performance just sucks and the software is quite unusable. In this case, performance signatures can help get a better understanding of the performance implications of taking a dependency on a particular method. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3613571" width="1" height="1"&gt;</content><author><name>nikhilkh</name><uri>http://blogs.msdn.com/members/nikhilkh.aspx</uri></author><category term="General Coding" scheme="http://blogs.msdn.com/nikhil/archive/tags/General+Coding/default.aspx" /></entry><entry><title>What have I been reading?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nikhil/archive/2007/06/19/how-to-be-a-programmer-a-short-comprehensive-and-personal-summary.aspx" /><id>http://blogs.msdn.com/nikhil/archive/2007/06/19/how-to-be-a-programmer-a-short-comprehensive-and-personal-summary.aspx</id><published>2007-06-19T20:21:00Z</published><updated>2007-06-19T20:21:00Z</updated><content type="html">&lt;P&gt;A&amp;nbsp;good read for developers: How to be a Programmer: A Short, Comprehensive, and Personal Summary.&amp;nbsp;Check it out here: &lt;A title=http://samizdat.mines.edu/howto/HowToBeAProgrammer.html#id2794476 href="http://samizdat.mines.edu/howto/HowToBeAProgrammer.html#id2794476" mce_href="http://samizdat.mines.edu/howto/HowToBeAProgrammer.html#id2794476"&gt;http://samizdat.mines.edu/howto/HowToBeAProgrammer.html#id2794476&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;Other books that I think&amp;nbsp;every developer should read:&lt;/P&gt;
&lt;TABLE class="" cellSpacing=0 cellPadding=2 width=536 border=0 unselectable="on"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=162&gt;&lt;A href="http://www.amazon.com/gp/product/020161622X?ie=UTF8&amp;amp;tag=blindbot-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=020161622X" target=blank mce_href="http://www.amazon.com/gp/product/020161622X?ie=UTF8&amp;amp;tag=blindbot-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=020161622X"&gt;&lt;IMG height=158 src="http://www.turnofthecrank.com/images/books/pragmaticprogrammer.jpg" width=125 mce_src="http://www.turnofthecrank.com/images/books/pragmaticprogrammer.jpg"&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD class="" vAlign=top width=372&gt;As the name suggests, this book provides some great pragmatic advice on programming. It is a very easy read and is helpful resource whenever I feel I'm not sure how to deal with an issue. &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=165&gt;&lt;IMG height=154 src="http://www.turnofthecrank.com/images/books/codecomplete2.jpg" width=123 mce_src="http://www.turnofthecrank.com/images/books/codecomplete2.jpg"&gt;&lt;/TD&gt;
&lt;TD class="" vAlign=top width=372&gt;This book is a comprehensive guide to how to become a great programmer. It is extensively well researched with great references and wisdom from other books of the same genre. It's thicker than pragmatic programmer, but it is still an easy read. Most of the concepts are explained through powerful metaphors and examples.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;These books&amp;nbsp;have&amp;nbsp;a good deal of time tested&amp;nbsp;wisdom. I refer to&amp;nbsp;them every now and then. Every time I pick up these books, I begin to reflect on the way I work,&amp;nbsp;and how&amp;nbsp;to make it better. It reinvigorates me, and increases my productivity - I feel a renewed zeal and passion for my work - improving day-by-day.&amp;nbsp;Go grab a copy, if you don't have one.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3408608" width="1" height="1"&gt;</content><author><name>nikhilkh</name><uri>http://blogs.msdn.com/members/nikhilkh.aspx</uri></author><category term="General Coding" scheme="http://blogs.msdn.com/nikhil/archive/tags/General+Coding/default.aspx" /></entry><entry><title>Bill Gates' Harvard commencement speech</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nikhil/archive/2007/06/18/bill-gates-harvard-commencement-speech.aspx" /><id>http://blogs.msdn.com/nikhil/archive/2007/06/18/bill-gates-harvard-commencement-speech.aspx</id><published>2007-06-18T10:35:42Z</published><updated>2007-06-18T10:35:42Z</updated><content type="html">&lt;p&gt;I'll take an exception form the technical tone of this blog and comment on a a great speech by Bill Gates at the Harvard commencement ceremony. It touches on a very important subject&amp;nbsp;- all of us in our small, little way, can make a huge difference to a&amp;nbsp;complex&amp;nbsp;problem&amp;nbsp;- let's do what we can - donate our time and money to benefit the underprivileged.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;And I hope you will come back here to Harvard 30 years from now and reflect on what you have done with your talent and your energy. I hope you will judge yourselves not on your professional accomplishments alone, but also on how well you have addressed the world’s deepest inequities … on how well you treated people a world away who have nothing in common with you but their humanity. &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;a href="http://www.news.harvard.edu/gazette/2007/06.14/99-gates.html"&gt;Remarks of Bill Gates — The Harvard University Gazette&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3377579" width="1" height="1"&gt;</content><author><name>nikhilkh</name><uri>http://blogs.msdn.com/members/nikhilkh.aspx</uri></author></entry><entry><title>Enabling remote desktop remotely</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nikhil/archive/2007/06/14/enabling-remote-desktop-remotely.aspx" /><id>http://blogs.msdn.com/nikhil/archive/2007/06/14/enabling-remote-desktop-remotely.aspx</id><published>2007-06-14T21:53:37Z</published><updated>2007-06-14T21:53:37Z</updated><content type="html">&lt;p&gt;I do not remember how many times I have tried to connect to a remote desktop using terminal services, only to realize that Terminal Services are not enabled on the machine. I found this article recently on how to &lt;a href="http://www.windowsdevcenter.com/pub/a/windows/2004/05/04/serverhacks_remote.html" target="_blank"&gt;remotely enable remote desktop&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;This trick worked just great for me even without restarting the remote computer. I'm just putting it down on this blog for later reference.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3295398" width="1" height="1"&gt;</content><author><name>nikhilkh</name><uri>http://blogs.msdn.com/members/nikhilkh.aspx</uri></author><category term="Miscellaneous" scheme="http://blogs.msdn.com/nikhil/archive/tags/Miscellaneous/default.aspx" /></entry><entry><title>Give feedback on "Orcas" feature specifications</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nikhil/archive/2007/06/06/give-feedback-on-orcas-feature-specifications.aspx" /><id>http://blogs.msdn.com/nikhil/archive/2007/06/06/give-feedback-on-orcas-feature-specifications.aspx</id><published>2007-06-06T10:47:00Z</published><updated>2007-06-06T10:47:00Z</updated><content type="html">&lt;P&gt;In the last few years, blogs have been largely instrumental&amp;nbsp;in increasing transparency into Microsoft. From celebrity ex-Microsoft blogger, Scoble to the over 3000 bloggers now on MSDN blogs, we have been sharing more and more details of our development processes and technology bits through our blogs. &lt;/P&gt;
&lt;P&gt;Why is this important? Generally, at Microsoft, development cycles are over 2 years long, and in some cases, even much longer. With increased transparency we can disclose a lot of our product&amp;nbsp;features even before it is released. This provides us the&amp;nbsp;essential customer connection and opens the feedback channel. Moreover, many times I have&amp;nbsp;read a program manager's blog explaining the internal details of our product so that customers can troubleshoot and have a better understanding of the product.&lt;/P&gt;
&lt;P&gt;Recently, we started&amp;nbsp;a great&amp;nbsp;initiative&amp;nbsp;to share the product feature specifications of "Orcas" here: &lt;A title=http://msdn2.microsoft.com/en-us/vstudio/aa948851.aspx href="http://msdn2.microsoft.com/en-us/vstudio/aa948851.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/vstudio/aa948851.aspx"&gt;http://msdn2.microsoft.com/en-us/vstudio/aa948851.aspx&lt;/A&gt;. During the development cycle, we make some&amp;nbsp;assumptions of how the customer will use the product and prioritize the most important use cases. We are (hopefully) mostly close to correct, but sometimes we might have missed the mark and we want you to tell us. I feel this is a great leap forward in&amp;nbsp;increasing transparency and involving the&amp;nbsp;community in the development process.&amp;nbsp;Give us your&amp;nbsp;feedback today.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I worked on the &lt;A title="Office Workflow Tools" href="http://download.microsoft.com/download/5/9/c/59cd0dc5-4691-4c3e-840c-66d865f27692/office-workflow-tools.xps" target=_blank mce_href="http://download.microsoft.com/download/5/9/c/59cd0dc5-4691-4c3e-840c-66d865f27692/office-workflow-tools.xps"&gt;Office Workflow Tools&lt;/A&gt;&amp;nbsp;feature and would welcome any feedback you have on it. We will surely take it into consideration in planning for future releases.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3111926" width="1" height="1"&gt;</content><author><name>nikhilkh</name><uri>http://blogs.msdn.com/members/nikhilkh.aspx</uri></author></entry></feed>