<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://bloggingabout.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Dotgrid by Roiy Zysman : Workflow</title><link>http://bloggingabout.net/blogs/dotgrid/archive/tags/Workflow/default.aspx</link><description>Tags: Workflow</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Using Workflows to visually construct project Build/Compilation flows.</title><link>http://bloggingabout.net/blogs/dotgrid/archive/2007/05/20/using-workflows-to-visually-construct-project-compilations-flows.aspx</link><pubDate>Sat, 19 May 2007 22:43:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:208476</guid><dc:creator>dotgrid</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://bloggingabout.net/blogs/dotgrid/rsscomments.aspx?PostID=208476</wfw:commentRss><comments>http://bloggingabout.net/blogs/dotgrid/archive/2007/05/20/using-workflows-to-visually-construct-project-compilations-flows.aspx#comments</comments><description>&lt;p&gt;Code &lt;a title="BuildActivities.zip" href="http://www.dotnetclan.com/Blog/WF1/BuildActivities.zip"&gt;[Here]&lt;/a&gt;&lt;/p&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;I happen to participate in an agile workshop where some automated build tools were discussed ,&lt;a href="http://www.kinook.com/VisBuildPro/screenshots.html"&gt;visual build&lt;/a&gt;&amp;nbsp; was one of them. I liked the idea of visually&amp;nbsp;constructing &amp;nbsp;the project build instead of using batch files or VS IDE build actions&amp;nbsp;that are hard to execute or to maintain. In &amp;quot;visual build&amp;quot;&amp;nbsp;you simply&amp;nbsp;visually drag and drop&amp;nbsp;activity&amp;nbsp;blocks from a tool box&amp;nbsp;to&amp;nbsp;construct the build process.&amp;nbsp;I wanted have my own &amp;quot;Visual Build Designer&amp;quot; , and it was very obvious that I can utilize &lt;em&gt;Windows Workflow&lt;/em&gt; to do that.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;My basic required activity blocks were:&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;Extract the latest version from Source Control&amp;nbsp; [&lt;span id="highlight_tag" style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-WEIGHT:bold;PADDING-BOTTOM:0px;COLOR:#ee6600;PADDING-TOP:0px;BACKGROUND-COLOR:yellow;"&gt;VSTF&lt;/span&gt;]&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;Build the project&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;Send an email with the results&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;Another requirement was that the process builder (the actual person&amp;nbsp;that drags and drops the activity blocks) would not have to write a single line of code. He would have to set in the activity blocks properties of course , but he wouldn&amp;#39;t actually need to add additional c#/vb.net to support the basic functionality.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;So the first step was to read about writing customized activities . &lt;a href="http://nayyeri.net/archive/2007/01/25/how-to-write-a-custom-workflow-activity.aspx"&gt;This&lt;/a&gt;&amp;nbsp; was a good resource to start.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;The second step was to read about extracting code from &lt;span id="highlight_tag" style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-WEIGHT:bold;PADDING-BOTTOM:0px;COLOR:#ee6600;PADDING-TOP:0px;BACKGROUND-COLOR:yellow;"&gt;VSTF&lt;/span&gt; source control. &lt;a href="http://msdn2.microsoft.com/en-us/library/microsoft.teamfoundation.client(VS.80).aspx"&gt;Here&lt;/a&gt;&amp;nbsp;is a good place to start.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;Next step was to write the customized activities.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;I wrote three customized activities&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;A source control code extractor - GetCode.cs&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;An MSBuild executer - MSBuild.cs&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;A mailer - Mailer.cs&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;here is how (in short) the GetCode.cs imports the source control &lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;font size="+0"&gt;&lt;span class="591232605-20052007"&gt;&lt;font color="#2b91af"&gt;&lt;font face="Tahoma" size="2"&gt;String&lt;/font&gt;&lt;/font&gt;&lt;font face="Tahoma" size="2"&gt; tfsName = TFSServer;&lt;/font&gt;&lt;font color="#008000"&gt;&lt;br /&gt;&lt;/font&gt;&lt;font face="Tahoma" size="2"&gt;TeamFoundationServer tfs = TeamFoundationServerFactory&lt;/font&gt;&lt;font face="Tahoma" size="2"&gt;.GetServer(tfsName);&lt;br /&gt;VersionControlServer versionControl = (VersionControlServer)tfs.GetService(typeof(VersionControlServer&lt;/font&gt;&lt;font face="Tahoma" size="2"&gt;));&lt;br /&gt;Workspace workspace = null&lt;/font&gt;&lt;font face="Tahoma" size="2"&gt;;&lt;br /&gt;workspace = versionControl.CreateWorkspace(WORKSPACENAME, versionControl.AuthenticatedUser);&lt;br /&gt;WorkingFolder myworkingfolder = new WorkingFolder&lt;/font&gt;&lt;font face="Tahoma" size="2"&gt;(TFSArea, SCPath);&lt;br /&gt;&lt;/font&gt;&lt;font face="Tahoma" size="2"&gt;workspace.CreateMapping(myworkingfolder);&lt;br /&gt;&lt;/font&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;workspace.Get();&lt;br /&gt;versionControl.DeleteWorkspace(WORKSPACENAME, versionControl.AuthenticatedUser);&lt;br /&gt;&lt;br /&gt;&lt;span class="591232605-20052007"&gt;The TFSServer,tfsName and SCPath are activity properties which are defined as so in the code&lt;br /&gt;&lt;font color="#0000ff" size="2"&gt;public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;static&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;DependencyProperty&lt;/font&gt;&lt;font size="2"&gt; SCPathProperty = &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;DependencyProperty&lt;/font&gt;&lt;font size="2"&gt;.Register&lt;br /&gt;(&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;SCPath&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;typeof&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt;), &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;typeof&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;GetCode&lt;/font&gt;&lt;font size="2"&gt;));&lt;br /&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;
&lt;p&gt;[&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;Description&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;The local folder to get the code&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;)]&lt;br /&gt;[&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;Category&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;Dependency Properties&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;)]&lt;br /&gt;[&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;Browsable&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;true&lt;/font&gt;&lt;font size="2"&gt;)]&lt;br /&gt;[&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;DesignerSerializationVisibility&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;DesignerSerializationVisibility&lt;/font&gt;&lt;font size="2"&gt;.Visible)]&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt; SCPath&lt;br /&gt;{&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;get&lt;/font&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;return&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;Convert&lt;/font&gt;&lt;font size="2"&gt;.ToString(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;base&lt;/font&gt;&lt;font size="2"&gt;.GetValue(SCPathProperty));}&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;set&lt;/font&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;base&lt;/font&gt;&lt;font size="2"&gt;.SetValue(SCPathProperty, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;value&lt;/font&gt;&lt;font size="2"&gt;);}&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;and that makes them visible in the designer like so &lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;img src="http://www.dotnetclan.com/Blog/WF1/wf1.jpg" alt="" /&gt;[WF1.jpg]&lt;br /&gt;&lt;br /&gt;So here are the properties of all of the components&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;font size="+0"&gt;&lt;span class="591232605-20052007"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;font face="Tahoma" size="2"&gt;G&lt;span class="591232605-20052007"&gt;etCode - &lt;span id="highlight_tag" style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-WEIGHT:bold;PADDING-BOTTOM:0px;COLOR:#ee6600;PADDING-TOP:0px;BACKGROUND-COLOR:yellow;"&gt;VSTF&lt;/span&gt; Server, Source Control area path, and the path to dump the files into&lt;/span&gt;&lt;/font&gt; 
&lt;li&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;MSBuilder - MSBuilde exe path, Project path and Project file name&lt;/span&gt;&lt;/font&gt; 
&lt;li&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;Mailer -&amp;nbsp; To, Subject, Body , SMTPHost&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;font size="+0"&gt;&lt;span class="591232605-20052007"&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;img src="http://www.dotnetclan.com/Blog/WF1/wf2.jpg" alt="" /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;img src="http://www.dotnetclan.com/Blog/WF1/wf3.jpg" alt="" /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;img src="http://www.dotnetclan.com/Blog/WF1/wf4.jpg" alt="" /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;N&lt;span class="591232605-20052007"&gt;ow all that&amp;#39;s left is to open a new workflow project, add these activities to the tool box , drag&amp;nbsp;them into the designer window and finally bind the properties of the activities.&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;img src="http://www.dotnetclan.com/Blog/WF1/wf5.jpg" alt="" /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;The binding are as follows:&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;The msbuilder ProjectPath property is binded to the getCode SCPath property, which means that the msbuilder looks at the same directory where the source controller brought the code to.&lt;/span&gt;&lt;/font&gt; 
&lt;li&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;The Mailer branch is binded to the the MSbuilder BuildResult property , if the build succeeded than the BuildResult Property would be set to true and the successful branch would be taken and vice versa.&lt;/span&gt;&lt;/font&gt; 
&lt;li&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;The mailer Body Property is binded to the MSBuild&amp;nbsp;&amp;nbsp;BuildOutput property which means that the emails body contents would actually be the output of the MSBuild process.&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;All of the other properties (such as TO, SMTPHost , subject , etc) would be have to be set by the process builder (the person using it)&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;That&amp;#39;s basically it, all that&amp;#39;s left to do is to run the process and wait for the result email&lt;span class="936582707-20052007"&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;Build Failed Email &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;img src="http://www.dotnetclan.com/Blog/WF1/wf6.jpg" alt="" /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;Build Success Email&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;img src="http://www.dotnetclan.com/Blog/WF1/wf7.jpg" alt="" /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;Next steps would be to to add more build related activities such as publish(some kind of xcopy), ftp , package, etc.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;Which I hope to accomplish soon.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;Any Feedbacks ? Can you think of other build related activities that would be valuable ?&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;Roiy&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;span class="936582707-20052007"&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;span class="936582707-20052007"&gt;&lt;br /&gt;Code &lt;a title="BuildActivities.zip" href="http://www.dotnetclan.com/Blog/WF1/BuildActivities.zip"&gt;[Here]&lt;/a&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=208476" width="1" height="1"&gt;</description><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/MSBuild/default.aspx">MSBuild</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/Compile/default.aspx">Compile</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/source+control/default.aspx">source control</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/Build/default.aspx">Build</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/VSTF/default.aspx">VSTF</category></item></channel></rss>