<?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>Search results matching tag 'source control'</title><link>http://bloggingabout.net/search/SearchResults.aspx?a=1&amp;o=DateDescending&amp;tag=source+control&amp;orTags=0</link><description>Search results matching tag 'source control'</description><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Version Control by Example: Review and how to get it for free.</title><link>http://bloggingabout.net/blogs/mischa/archive/2011/09/30/version-control-by-example-review-and-how-to-get-it-for-free.aspx</link><pubDate>Fri, 30 Sep 2011 12:32:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:575743</guid><dc:creator>Mischa Kroon</dc:creator><description>&lt;h2&gt;&lt;strong&gt;I just read:
&amp;nbsp;Version Control by Example&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;It&amp;#39;s a free
printed book which can be shipped to your home for free by filling out a page
full of questions.&amp;nbsp;&lt;br /&gt;
If you want the details on how to get it shipped to your home or have any
questions about it find out the details&amp;nbsp;&lt;a href="http://www.ericsink.com/entries/vcbe_print_edition_free.html"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Quick review of
the book:&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;The book gives you
a quick intro about version control systems, it tells you about the history of
version control systems and how they got here.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;What the different
commands are for the version control systems and how they work in the specific
version control systems examined in the book.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It then goes into
how you can use the different version control systems through the command line
interface, so that you can see the differences on how to handle increasingly
complex situations.&amp;nbsp;&lt;br /&gt;
The version control systems it gives the examples for are:&lt;/p&gt;
&lt;p&gt;- Subversion&lt;br /&gt;
- Mercurial&lt;br /&gt;
- Git&amp;nbsp;&lt;br /&gt;
- Veracity (SourceGears product)&amp;nbsp;&lt;/p&gt;
&lt;p&gt;There is also a
bit about the differences between DVCS and CVCS, distributed version control
systems and centralized version control systems.&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;My Opinions&amp;nbsp;&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;I really like the
way the book looks, it&amp;#39;s pretty so it leaves a good first impression.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In talking about
the differences between DVCS and CVCS I think it goes a long way to take away a
bit of the fear surrounding DVCS.&lt;/p&gt;
&lt;p&gt;By focusing on the
command line clients of the different VCS systems you&amp;#39;re looking at the basics
which are great because it gives you the feeling of actually knowing what you&amp;#39;re
doing.&amp;nbsp;&lt;br /&gt;
The reality for a developer like me working with VCS is someone not working
with command line clients but mostly using IDE &amp;nbsp;/ Explorer&amp;nbsp;integration&amp;nbsp;to
get the job done. &amp;nbsp;&lt;br /&gt;
So the quality of integration and the tooling available around the VCS&amp;#39;es
becomes very important to the way I use VCS, still not talking about this makes
perfect sense to me&amp;nbsp;because the tooling landscape is very adaptive and
will change over time and the VCS which is on top now can easily be on the
bottom when the next generation comes. &lt;/p&gt;
&lt;p&gt;The book has quite
a bit of depth where it is needed, but it
also manages to keeps it short and simple in the examples.&lt;/p&gt;
&lt;p&gt;There is a bit of
humor in the book, I like it and it keeps the book from getting a bit dry. &lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;The book does its job in educating about VCS and also providing a reference. &lt;/p&gt;
&lt;p&gt;Nowhere in the
book does it come over as a too much of a sales pitch for the product that the
writer has created which is a very impressive thing because of the bias one has
when talking about the product that he has created. &lt;/p&gt;
&lt;p&gt;So go get it, it&amp;#39;s
free :)&lt;/p&gt;
&lt;h2&gt;Disclaimer&lt;/h2&gt;
&lt;p&gt;I&amp;#39;m not associated with SourceGear in any way.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Using T4 templates to manage assembly version information</title><link>http://bloggingabout.net/blogs/vagif/archive/2010/04/24/using-t4-templates-to-manage-assembly-version-information.aspx</link><pubDate>Sat, 24 Apr 2010 21:35:12 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:483157</guid><dc:creator>VagifAbilov</dc:creator><description>&lt;p&gt;I wanted to configure version information generation for some .NET projects. It’s been a long time since I investigated available options, so I searched around hoping to find some simple way of doing this. What I’ve found didn’t look very encouraging: people write Visual Studio add-ins and custom MsBuild tasks just to obtain one integer number (okay, maybe two). This felt overkill for a small personal project.&lt;/p&gt;  &lt;p&gt;The inspiration came from one of the StackOverflow discussions where somebody suggested that T4 templates could do the job. And of course they can. The solution requires a minimal effort and no Visual Studio or build process customization. Here what should be done:&lt;/p&gt;  &lt;p&gt;1. Create a file with extension &amp;quot;.tt&amp;quot; and place there T4 template that will generate AssemblyVersion and AssemblyFileVersion attributes:&lt;/p&gt;  &lt;pre class="brush: csharp;"&gt;&amp;lt;#@ template language=&amp;quot;C#&amp;quot; #&amp;gt;
// 
// This code was generated by a tool. Any changes made manually will be lost
// the next time this code is regenerated.
// 

using System.Reflection;

[assembly: AssemblyVersion(&amp;quot;1.0.1.&amp;lt;#= this.RevisionNumber #&amp;gt;&amp;quot;)]
[assembly: AssemblyFileVersion(&amp;quot;1.0.1.&amp;lt;#= this.RevisionNumber #&amp;gt;&amp;quot;)]
&amp;lt;#+
    int RevisionNumber = (int)(DateTime.UtcNow - new DateTime(2010,1,1)).TotalDays;
#&amp;gt;&lt;/pre&gt;

&lt;p&gt;You will have to decide about version number generation algoritm. For me it was sufficient to auto-generate a revision number that is set to the number of days since January 1st, 2010. As you can see, the version generation rule is written in plain C#, so you can easily adjust it to your needs.&lt;/p&gt;

&lt;p&gt;2. The file above should be placed in one of the projects. I created a new project with just this single file to make version management technique clear. When I build this project (actually I don’t even need to build it: saving the file is enough to trigger a Visual Studio action), the following C# is generated:&lt;/p&gt;

&lt;pre class="brush: csharp;"&gt;// 
// This code was generated by a tool. Any changes made manually will be lost
// the next time this code is regenerated.
// 

using System.Reflection;

[assembly: AssemblyVersion(&amp;quot;1.0.1.113&amp;quot;)]
[assembly: AssemblyFileVersion(&amp;quot;1.0.1.113&amp;quot;)]&lt;/pre&gt;

&lt;p&gt;Yes, today it’s 113 days since January 1st, 2010. Tomorrow the revision number will change.&lt;/p&gt;

&lt;p&gt;3. Next step is to remove AssemblyVersion and AssemblyFileVersion attributes from AssemblyInfo.cs files in all projects that should share the same auto-generated version information. Instead choose “Add existing item” for each projects, navigate to the folder with T4 template file, select corresponding “.cs” file and add it as a link. That will do!&lt;/p&gt;

&lt;p&gt;What I like about this approach is that it is lightweight (no custom MsBuild tasks), and auto-generated version information is not added to source control. And of course using C# for version generation algorithm opens for algorithms of any complexity.&lt;/p&gt;</description></item><item><title>Source code in the cloud</title><link>http://bloggingabout.net/blogs/vagif/archive/2010/04/18/source-code-in-the-cloud.aspx</link><pubDate>Sat, 17 Apr 2010 22:13:08 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:483122</guid><dc:creator>VagifAbilov</dc:creator><description>&lt;p&gt;It’s difficult to resist giving a try to Git or Mercurial these days, and I decided to start moving the code of my personal projects to DVCS. I’ve chosen &lt;a href="http://www.bitbucket.org/" target="_blank"&gt;Bitbucket&lt;/a&gt; as a remote storage for my repositories. It seems to have very good reputation, and it’s &lt;a href="http://www.bitbucket.org/plans" target="_blank"&gt;subscription plans&lt;/a&gt; include a free plan for a single private repository (up to 1 GB) with upgrades starting as low as $5 a month.&lt;/p&gt;  &lt;p&gt;I am just making my first steps with Mercurial, so I read Joel Spolsky’s &lt;a href="http://hginit.com/" target="_blank"&gt;Hg Init&lt;/a&gt; introduction, but Bitbucket also contains guidelines that make setting up repository a simple excercise.&lt;/p&gt;  &lt;p&gt;It’s easy enough to manage source control using Hg commands, but &lt;a href="http://tortoisehg.bitbucket.org/" target="_blank"&gt;TortoiseHg&lt;/a&gt; installs a Windows shell extension that turns Windows Explorer into a source control management tool.&lt;/p&gt;  &lt;p&gt;And finally, for those spoilt by Visual Studio source control integration, &lt;a href="http://visualhg.codeplex.com/" target="_blank"&gt;VisualHG&lt;/a&gt; is a Mercurial plug-in for Visual Studio.&lt;/p&gt;  &lt;p&gt;I installed all of the above packages and was surprised how quickly I was up and running my source against remote Mercurial repository at Bitbucket. And I definitely enjoy the experience. Comparing to TFS I like the mobile nature of my local sources. Like every centralized version control system, TFS prefers its users to be connected. You can bring your projects offline, but this is considered to be a temporary state. As soon as you can connect to TFS, you are supposed to do it so it can synchronize your changes. Distributed version control systems have different phylosophy, there are no connected and disconnected users, and you can work and commit your changes locally and only push them to a remote repository for planned release or synchronization.&lt;/p&gt;  &lt;p&gt;One thing for sure: no more source control at home. In 1993 I bought a Microsoft Delta license for my personal use. Later I upgraded it to SourceSafe (at that time not yet “Visual”). All this time I had source code repository on one of my home machines. No more. “hg push” command will make Bitbucket take care of my source.&lt;/p&gt;</description></item><item><title>Back to basics: Getting started (Source Control: SVN/Git)</title><link>http://bloggingabout.net/blogs/mischa/archive/2008/07/08/back-to-basics-getting-started-source-control-svn-git.aspx</link><pubDate>Tue, 08 Jul 2008 20:13:37 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:464062</guid><dc:creator>Mischa Kroon</dc:creator><description>&lt;h2&gt;Prelude&lt;/h2&gt; &lt;p&gt;This will hopefully be the start of a series of posts / articles about the basic information/skills needed for different software development. &lt;/p&gt; &lt;h2&gt;Source Control&lt;/h2&gt; &lt;p&gt;Source control is one of the things you need to set up before starting to do the actual development. &lt;/p&gt; &lt;p&gt;Before creating things of value it&amp;#39;s wise to make sure that your investment is guarded. &lt;/p&gt; &lt;p&gt;Source control is there for this need. &lt;br /&gt;Not only can it be used to keep your source code and files safe but it will also allow you to keep different revisions of files available so you can revert to any other version of the files. &lt;/p&gt; &lt;p&gt;This can be great for going back to the way things worked in version x or the way things looked in version y. &lt;/p&gt; &lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Revision_control" target="_blank"&gt;More information on Source control / Revision control&lt;/a&gt;.&lt;/p&gt; &lt;h2&gt;Source Control: Tutorials / Lingo&lt;/h2&gt; &lt;p&gt;Since this is very nicely explained by others I will just link to some tutorials by others:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.ericsink.com/scm/source_control.html" target="_blank"&gt;Source Control Howto&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://betterexplained.com/articles/a-visual-guide-to-version-control/" target="_blank"&gt;A Visual Guide to Version Control&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;h2&gt;Different Source Control providers&lt;/h2&gt; &lt;p&gt;There are a lot of different source control system a brief overview:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/vs2005/aa718670.aspx" target="_blank"&gt;Visual Sourcesafe&lt;/a&gt;: free solution by Microsoft, this one is not really recommended by most people&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.sourcegear.com/vault/" target="_blank"&gt;Sourcegear Vault&lt;/a&gt;: commercial solution created by Sourcegear to be Sourcesafe done right. &lt;/li&gt; &lt;li&gt;&lt;a href="http://subversion.tigris.org/" target="_blank"&gt;SVN&lt;/a&gt;: Free open source source control and the default Source Control solution nowadays&lt;/li&gt; &lt;li&gt;&lt;a href="http://git.or.cz/" target="_blank"&gt;Git&lt;/a&gt;: The new source control kid on the block&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;For me the most interesting source control solutions at the moment are: &lt;br /&gt;SVN / Git &lt;/p&gt; &lt;p&gt;So I will go into these options some more but first lets have a look at &lt;a href="http://git.or.cz/gitwiki/GitSvnComparsion" target="_blank"&gt;a comparison between SVN and Git&lt;/a&gt;.&lt;/p&gt; &lt;h2&gt;SVN&lt;/h2&gt; &lt;p&gt;&lt;a href="http://blogs.vertigosoftware.com/teamsystem/archive/2006/01/16/Setting_up_a_Subversion_Server_under_Windows.aspx" target="_blank"&gt;How to set it up on windows.&lt;/a&gt;&lt;br /&gt;&lt;a href="http://weblogs.asp.net/bsimser/archive/2008/05/06/day-to-day-with-subversion.aspx" target="_blank"&gt;How to use it on a daily basis.&lt;/a&gt;&lt;br /&gt;&lt;a href="http://svnbook.red-bean.com/" target="_blank"&gt;A free book about SVN.&lt;/a&gt; &lt;/p&gt; &lt;h2&gt;Git&lt;/h2&gt; &lt;p&gt;&lt;a href="http://osteele.com/archives/2008/05/my-git-workflow" target="_blank"&gt;Daily usage of Git.&lt;/a&gt;&lt;br /&gt;&lt;a href="http://osteele.com/archives/2008/05/commit-policies" target="_blank"&gt;Git commit policies.&lt;/a&gt; &lt;/p&gt; &lt;h2&gt;Source control hosting options&lt;/h2&gt; &lt;p&gt;If you want to get started with source control but you don&amp;#39;t want to take ages to set up a server and things like that there is also the option, for going for a hosted option. &lt;/p&gt; &lt;p&gt;There are a lot of different hosting options for SVN, there are also a lot of options coming up for Git hosting. &lt;/p&gt; &lt;p&gt;Some are free others aren&amp;#39;t the ones I&amp;#39;ve tried:&lt;/p&gt; &lt;p&gt;&lt;a href="http://unfuddle.com" target="_blank"&gt;Unfuddle&lt;/a&gt;&lt;br /&gt;&lt;a title="http://www.assembla.com" href="http://www.aAssembla.com"&gt;Assembla&lt;/a&gt;&lt;br /&gt;&lt;a title="http://springloops.com/" href="http://sSpringloops.com/"&gt;Springloops&lt;/a&gt;&lt;/p&gt; &lt;p&gt;And all looked well. &lt;/p&gt; &lt;p&gt;Here is also a &lt;a href="http://en.wikipedia.org/wiki/Comparison_of_free_software_hosting_facilities" target="_blank"&gt;comparsion list of different Source control hosters&lt;/a&gt;.&lt;/p&gt; &lt;h2&gt;Conclusion&lt;/h2&gt; &lt;p&gt;Source Control should be the first thing you think of before starting to develop, with this article I hope to have given the readers a head start on how to go about actually using it in a correct way and getting started. &lt;/p&gt;</description></item><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><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;</description></item></channel></rss>