<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/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>Say what? Microsoft Malaysia One ISV Technology Blog : TFS</title><link>http://blogs.msdn.com/fai/archive/tags/TFS/default.aspx</link><description>Tags: TFS</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Continuous Integration</title><link>http://blogs.msdn.com/fai/archive/2008/11/20/continuous-integration.aspx</link><pubDate>Thu, 20 Nov 2008 08:24:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9127456</guid><dc:creator>hoongfai</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/fai/comments/9127456.aspx</comments><wfw:commentRss>http://blogs.msdn.com/fai/commentrss.aspx?PostID=9127456</wfw:commentRss><description>&lt;p&gt;If you can’t wait to download my slides from the Adopting ALM event, it’s right here:&lt;/p&gt; &lt;iframe style="border-bottom: #dde5e9 1px solid; border-left: #dde5e9 1px solid; padding-bottom: 0px; background-color: #ffffff; margin: 3px; padding-left: 0px; width: 240px; padding-right: 0px; height: 66px; border-top: #dde5e9 1px solid; border-right: #dde5e9 1px solid; padding-top: 0px" marginheight="0" src="http://cid-77527ae3878b3eec.skydrive.live.com/embedrowdetail.aspx/Preso/ContinuousIntegration-Fai.pptx" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;p&gt;The other thing I demo’ed at my session was how to set up an interactive TFS Build agent. There’s a good reason why you would want to run an interactive TFS Build Agent. This is the scenario. You have associated a test list that includes a UI functional test case to your build definition, you want TFS Build to bring out the application window so that your tester could perform UI functional testing, and then decide whether the test passed or failed.&amp;#160; &lt;/p&gt;  &lt;p&gt;It’s pretty simple. Go to the following folder (the installation folder of Visual Studio 2008).&lt;/p&gt;  &lt;p&gt;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies&lt;/p&gt;  &lt;p&gt;Edit tfsbuildservice.exe.config file. Locate the following element:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;add key=&amp;quot;InteractivePort&amp;quot; value=&amp;quot;9192&amp;quot; /&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Open a Visual Studio 2008 Command Prompt and make sure you run it as administrator if you are using Windows Vista or Windows Server 2008. &lt;/p&gt;  &lt;p&gt;Reserve the port using the wcfhttpconfig utility. The commands you could use below:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies&amp;gt;wcfhttpconfig     &lt;br /&gt;wcfhttpconfig.exe &amp;lt;command&amp;gt; &amp;lt;options&amp;gt;      &lt;br /&gt;Commands:      &lt;br /&gt;&amp;#160; reserve &amp;lt;user&amp;gt; &amp;lt;port&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Used to reserve a port for a particular user      &lt;br /&gt;&amp;#160; free &amp;lt;port&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Used to remove a port reservation &lt;/p&gt;    &lt;p&gt;Examples:     &lt;br /&gt;&amp;#160; wcfhttpconfig.exe reserve DOMAIN\User 9191      &lt;br /&gt;&amp;#160; wcfhttpconfig.exe free 9191 &lt;/p&gt;    &lt;p&gt;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies&amp;gt;wcfhttpconfig reserve tfsrtm08\darren 9192 &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Then run the TFSBuildService like below. Essentially you are running another instance of TFSBuildService that listens at the port 9192.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies&amp;gt;TFSBuildService.exe     &lt;br /&gt;Press the Escape key (Esc) to exit...&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;When you queue your build, just select the interactive build agent. The properties of an interactive build agent:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/fai/WindowsLiveWriter/ContinuousIntegration_BC64/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/fai/WindowsLiveWriter/ContinuousIntegration_BC64/image_thumb.png" width="320" height="294" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9127456" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/fai/archive/tags/TFS+Build/default.aspx">TFS Build</category><category domain="http://blogs.msdn.com/fai/archive/tags/TFS/default.aspx">TFS</category></item><item><title>How to customize TFS Build project</title><link>http://blogs.msdn.com/fai/archive/2008/11/20/how-to-customize-tfs-build-project.aspx</link><pubDate>Thu, 20 Nov 2008 08:02:35 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9127408</guid><dc:creator>hoongfai</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/fai/comments/9127408.aspx</comments><wfw:commentRss>http://blogs.msdn.com/fai/commentrss.aspx?PostID=9127408</wfw:commentRss><description>&lt;p&gt;A couple days ago, I presented a session called “Continuous Integration throughout the Entire Development Lifecycle” at an Application Lifecycle Management (ALM) event held at Auditorium East, Level 29, Microsoft Malaysia’s office. As promised I will blog about my findings and what I’d demo at my session. I’ll be explaining how to customize your TFS Build project so that you could override an existing target with a custom task.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;TFS Build is essentially built on top of the foundation provided by MSBuild. Having said that, you could customize TFS Build just like how you would customize your MSBuild script. To find out what are the customizable Team Foundation Build targets, there is a &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/aa337604(VS.80).aspx"&gt;good article on MSDN&lt;/a&gt; that explains it well. I’m not exactly adept at creating my own custom tasks, so to my delight I found the &lt;a target="_blank" href="http://www.codeplex.com/MSBuildExtensionPack"&gt;MSBuild Extension pack&lt;/a&gt; which you could download from Codeplex.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;After installing the MSBuild Extension pack, the next thing to do is to edit the TFSBuild.proj file which can be found under the default source control folder named TeamBuildTypes. You may have a number of Team Build types already defined. Each Team Build type corresponds to a build definition. Take note that this is the file that you had set along with its version control folder in the Build definition wizard as shown in the following screen clipping:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/fai/WindowsLiveWriter/HowtocustomizeTFSBuildproject_B657/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/fai/WindowsLiveWriter/HowtocustomizeTFSBuildproject_B657/image_thumb_2.png" width="458" height="146" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In the following task, I am editing the TFSBuild.proj that corresponds to my build definition called “ALM111908Build”.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/fai/WindowsLiveWriter/HowtocustomizeTFSBuildproject_B657/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/fai/WindowsLiveWriter/HowtocustomizeTFSBuildproject_B657/image_thumb.png" width="706" height="223" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Check out to edit the TFSBuild.proj file. Open up the file in the Visual Studio editor. I’ll be customizing the Team Foundation Build target, BeforeDropBuild, with a task I am borrowing from the MSBuild extension pack called MSBuild.ExtensionPack.Communication.Email. The definition of the BeforeDropBuild target is:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;BeforeDropBuild      &lt;br /&gt; Called before saving the built binaries, build log files, and test results to the build-drop directory on the release server. Insert your task into this target to run custom tasks before the built files are saved to the drop-directory.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This task I’m borrowing may be similar to the “A build completes” in the Project Alerts in TFS as illustrated in the following screen clipping.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/fai/WindowsLiveWriter/HowtocustomizeTFSBuildproject_B657/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/fai/WindowsLiveWriter/HowtocustomizeTFSBuildproject_B657/image_thumb_1.png" width="390" height="197" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;However I have more control over how the notification email is composed such as including attachments, recipients, subject and body of the email. And I could also decide when to send an email notification at any stage along the TFS Build process, not just when a build completes.&lt;/p&gt;  &lt;p&gt;At the end of the TFSBuild.proj file, right before the &amp;lt;/Project&amp;gt; closing element, I add the following:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;UsingTask AssemblyFile=&amp;quot;$(MSBuildExtensionsPath)\\ExtensionPack\\MSBuild.ExtensionPack.dll&amp;quot; TaskName=&amp;quot;MSBuild.ExtensionPack.Communication.Email&amp;quot;/&amp;gt; &lt;/p&gt;    &lt;p&gt;&amp;lt;Target Name=&amp;quot;BeforeDropBuild&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160; &amp;lt;ItemGroup&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!-- Specify some attachments --&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Attachment Include=&amp;quot;C:\demo.txt&amp;quot;/&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!-- Specify some recipients --&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Recipient Include=&amp;quot;darren@tfs.local&amp;quot;/&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;/ItemGroup&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;MSBuild.ExtensionPack.Communication.Email TaskAction=&amp;quot;Send&amp;quot; Subject=&amp;quot;Email After Build 5pm&amp;quot; SmtpServer=&amp;quot;tfsrtm08&amp;quot; MailFrom=&amp;quot;tfsbuild@tfs.local&amp;quot; MailTo=&amp;quot;@(Recipient)&amp;quot; Body=&amp;quot;This email is sent after ALM Build&amp;quot; Attachments=&amp;quot;@(Attachment)&amp;quot;/&amp;gt;      &lt;br /&gt;&amp;lt;/Target&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Be sure to check in the TFSBuild.proj into the source control. Otherwise, your current build definition will not be able to invoke the overriden TFS Build target. If you have set up continuous integration, which in other words each check-in will trigger a TFS Build, you will realize that checking in TFSBuild.proj will not trigger any build. This is an expected behavior because only files within your solution will trigger a build. So if you want to see that the customized email task for the BeforeDropBuild target is successfully performed, you can just queue a new build in the Team Explorer Build menu. You can then check out the BuildLog.txt file, and search for BeforeDropBuild. The first thing you see if the following:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Overriding target &amp;quot;BeforeDropBuild&amp;quot; in project &amp;quot;C:\Program Files\MSBuild\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets&amp;quot; with target &amp;quot;BeforeDropBuild&amp;quot; from project &amp;quot;C:\Documents and Settings\TFSBUILD\Local Settings\Temp\Demo\ALM111808Build\BuildType\TFSBuild.proj&amp;quot;.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This means that TFS Build understands that you are overriding the the “BeforeDropBuild” with a custom task. Subsequently when you search for another occurrence of the target, you will see the following:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Target &amp;quot;BeforeDropBuild&amp;quot; in file &amp;quot;C:\Documents and Settings\TFSBUILD\Local Settings\Temp\Demo\ALM111808Build\BuildType\TFSBuild.proj&amp;quot; from project &amp;quot;C:\Documents and Settings\TFSBUILD\Local Settings\Temp\Demo\ALM111808Build\BuildType\TFSBuild.proj&amp;quot;:     &lt;br /&gt;Using &amp;quot;MSBuild.ExtensionPack.Communication.Email&amp;quot; task from assembly &amp;quot;C:\Program Files\MSBuild\\ExtensionPack\\MSBuild.ExtensionPack.dll&amp;quot;.      &lt;br /&gt;Task &amp;quot;MSBuild.ExtensionPack.Communication.Email&amp;quot;      &lt;br /&gt;&amp;#160; Sending email: Email After Build 5pm      &lt;br /&gt;&amp;#160; Adding recipient: darren@tfs.local      &lt;br /&gt;&amp;#160; Adding attachment: C:\demo.txt      &lt;br /&gt;Done executing task &amp;quot;MSBuild.ExtensionPack.Communication.Email&amp;quot;.      &lt;br /&gt;Done building target &amp;quot;BeforeDropBuild&amp;quot; in project &amp;quot;TFSBuild.proj&amp;quot;.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The final check before you shout VOILA is when you see this email in your inbox:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/fai/WindowsLiveWriter/HowtocustomizeTFSBuildproject_B657/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/fai/WindowsLiveWriter/HowtocustomizeTFSBuildproject_B657/image_thumb_3.png" width="341" height="360" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Just remember that there are plenty of other tasks you could borrow from the MSBuild Extension Pack. For instance I can compress the assemblies after the build, deploy my web app to IIS 7, create an event log in Windows, and basically anything you have in mind that you want to associate to your TFS Build.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9127408" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/fai/archive/tags/TFS+Build/default.aspx">TFS Build</category><category domain="http://blogs.msdn.com/fai/archive/tags/TFS/default.aspx">TFS</category></item><item><title>Cloaking in TFS</title><link>http://blogs.msdn.com/fai/archive/2008/10/02/cloaking-in-tfs.aspx</link><pubDate>Thu, 02 Oct 2008 13:09:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8973336</guid><dc:creator>hoongfai</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/fai/comments/8973336.aspx</comments><wfw:commentRss>http://blogs.msdn.com/fai/commentrss.aspx?PostID=8973336</wfw:commentRss><description>&lt;p&gt;In the past couple of days, I've been delving into prescriptive architecture guidance for Team Foundation Server (TFS). Along the way I learnt something new, something I never knew existed in TFS. It's called cloaking. Allow me to quote the following text from the &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/bb668991.aspx"&gt;Team Development with Visual Studio Team Foundation Server prescriptive architecture guidance&lt;/a&gt; (search under Chapter 4):&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Cloaking&lt;br&gt;&lt;/p&gt; &lt;p&gt;You can use cloaking as a performance optimization when you want to prevent a part of the source control tree from being retrieved. The following are typical scenarios for using cloaking:&lt;br&gt;• You want to build the project locally and a folder is not needed for the build, for example a documentation folder.&lt;br&gt;• You are part of a large team project and you only want to retrieve part of the project.&lt;br&gt;&lt;/p&gt; &lt;p&gt;For either of the above scenarios you can cloak folders to stop the client retrieving those folders. You cloak folders on the client by editing the workspace and changing the status of the working folder from active to cloak.&lt;br&gt;&lt;/p&gt; &lt;p&gt;Keep the following recommendations in mind when you cloak:&lt;br&gt;• Do not cloak individual files. This is likely lead to maintenance problems later in the project.&lt;br&gt;• For a large project, map out the root folder and cloak sub folders rather than creating multiple workspaces for the project.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Having said that, I went ahead to put this to practice on Visual Studio TFS 2008. Before I got started, I paid close attention to the statement that says, "&lt;em&gt;You cloak folders on the client by editing the workspace and changing the status of the working folder from active to cloak."&lt;/em&gt;. &lt;/p&gt; &lt;p&gt;The question that begs is &lt;em&gt;"What is a Workspace?"&lt;/em&gt;.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Workspaces Explained&lt;br&gt;A TFS workspace is a client-side copy of the files and folders in TFS source control. A workspace maps source control folders to local file system directories. When you make changes to files within the workspace on your local computer, the local changes, referred to as pending changes, are isolated in your workspace until you check them into the server as an atomic unit. The collective set of changes, checked in as a batch is referred to as a changeset. &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;As a good measure for practice, I didn't want to edit my existing default workspace, so I created a new workspace. This new workspace will map the source control folders to a new folder in my local file system. These were the steps I took to create a new workspace:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Create a new workspace.&lt;/li&gt; &lt;li&gt;In your Source Control Explorer, go to the &lt;em&gt;Workspace&lt;/em&gt;s&lt;em&gt; &lt;/em&gt;combo box. Click Workspaces... (as shown in the following diagram)&lt;a href="http://blogs.msdn.com/blogfiles/fai/WindowsLiveWriter/CloakinginTFS_FF1E/image_2.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/fai/WindowsLiveWriter/CloakinginTFS_FF1E/image_thumb.png" width="307" height="239"&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;This brings out &lt;em&gt;Manage Workspaces&lt;/em&gt; window. &lt;a href="http://blogs.msdn.com/blogfiles/fai/WindowsLiveWriter/CloakinginTFS_FF1E/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/fai/WindowsLiveWriter/CloakinginTFS_FF1E/image_thumb_1.png" width="278" height="184"&gt;&lt;/a&gt; &lt;/li&gt; &lt;li&gt;Click Add.&lt;/li&gt; &lt;li&gt;Then, I mapped the solution folder in my source control to a local folder as shown below. &lt;a href="http://blogs.msdn.com/blogfiles/fai/WindowsLiveWriter/CloakinginTFS_FF1E/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/fai/WindowsLiveWriter/CloakinginTFS_FF1E/image_thumb_2.png" width="477" height="234"&gt;&lt;/a&gt; &lt;/li&gt; &lt;li&gt;Since the &lt;em&gt;Doc&lt;/em&gt; folder is not required in the building of my solution, I want this folder cloaked. Another reason why I would want the documents folder cloaked is because there may potentially be very large files that I do not want to update from the source control every time I get latest changes.&lt;/li&gt; &lt;li&gt;After I've cloaked the &lt;em&gt;Doc&lt;/em&gt; folder, when I get latest version from the source control, it will not get the files under the &lt;em&gt;Doc&lt;/em&gt; folder, and the folder appears as grey in the Source Control Explorer.&lt;/li&gt; &lt;li&gt;Done!&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Please bear in mind that you can only cloak folders that have a mapped parent. Otherwise you get an error message like the following.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/fai/WindowsLiveWriter/CloakinginTFS_FF1E/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/fai/WindowsLiveWriter/CloakinginTFS_FF1E/image_thumb_3.png" width="381" height="96"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8973336" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/fai/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://blogs.msdn.com/fai/archive/tags/TFS/default.aspx">TFS</category><category domain="http://blogs.msdn.com/fai/archive/tags/VSTS/default.aspx">VSTS</category></item><item><title>Visual Studio Team System Licensing White Paper</title><link>http://blogs.msdn.com/fai/archive/2008/06/11/visual-studio-team-system-licensing-white-paper.aspx</link><pubDate>Wed, 11 Jun 2008 06:36:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8590767</guid><dc:creator>hoongfai</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/fai/comments/8590767.aspx</comments><wfw:commentRss>http://blogs.msdn.com/fai/commentrss.aspx?PostID=8590767</wfw:commentRss><description>&lt;p&gt;&lt;b&gt; Visual Studio Team System Licensing White Paper Now Available &lt;/b&gt;&lt;b&gt;&lt;/b&gt; &lt;p&gt;This month we published a &lt;a href="http://go.microsoft.com/?linkid=8883276"&gt;white paper&lt;/a&gt; describing Visual Studio Team System licensing scenarios. It is synchronized with the April 2008 Product Usage Rights (PUR) &lt;a href="http://www.microsoftvolumelicensing.com/userights/DocumentSearch.aspx?Mode=3&amp;amp;DocumentTypeId=1&amp;amp;Language=1"&gt;document&lt;/a&gt;.  &lt;p&gt;I'm so relieved that a VSTS licensing white paper is now available. I often field tones of questions from my ISVs about VSTS licensing. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8590767" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/fai/archive/tags/licensing+techniques/default.aspx">licensing techniques</category><category domain="http://blogs.msdn.com/fai/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://blogs.msdn.com/fai/archive/tags/TFS/default.aspx">TFS</category><category domain="http://blogs.msdn.com/fai/archive/tags/VSTS/default.aspx">VSTS</category></item><item><title>Wanted: TFS Installer</title><link>http://blogs.msdn.com/fai/archive/2008/04/28/wanted-tfs-installer.aspx</link><pubDate>Mon, 28 Apr 2008 14:48:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8435182</guid><dc:creator>hoongfai</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/fai/comments/8435182.aspx</comments><wfw:commentRss>http://blogs.msdn.com/fai/commentrss.aspx?PostID=8435182</wfw:commentRss><description>&lt;p&gt;I reckon someone could just make a living out of doing TFS installation and deployment. It would be a lucrative job. For the past couple of weeks, I've been neck-deep into TFS and VSTS 2008. It's been an enlightening experience to say the last.&lt;/p&gt; &lt;p&gt;One of the things I learnt the hard way was to do with TFS and the SQL Server collations. One of the pre-requisites to installing TFS 2008 is to install SQL Server. I chose SQL Server 2005 because SS08 has not gone to RTM. I read the installation steps careful enough not to miss out any steps (also learnt this the hard way while installing TFS 2005). But little did I notice how important it is to choose the right collation settings for SQL Server 2005.&lt;/p&gt; &lt;p&gt;It's imperative to know that TFS does not support case sensitive collation settings, nor does it support accent sensitive collation settings. And when you're at the SQL Server installation step of selecting the collation type, pay extra attention. DO NOT select the defaults. Select Latin1_General, case-insensitive, and accent-sensitive. Remember, do not even check any other boxes. There's no turning back is you missed this very important step. &lt;/p&gt; &lt;p&gt;In a later post, I will talk about TFS Build, and also the possibility of introducing a TFS Build proxy that will act as the "load balancer" for all the registered build agents. Until a later post.&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:9a8b43b8-4184-4f6f-b076-e424e0df7263" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/TFS%202008%20and%20SQL%20Server%20collations" rel="tag"&gt;TFS 2008 and SQL Server collations&lt;/a&gt;,&lt;a href="http://technorati.com/tags/TFS" rel="tag"&gt;TFS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/TFS%20Build" rel="tag"&gt;TFS Build&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8435182" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/fai/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://blogs.msdn.com/fai/archive/tags/TFS+Build/default.aspx">TFS Build</category><category domain="http://blogs.msdn.com/fai/archive/tags/TFS/default.aspx">TFS</category><category domain="http://blogs.msdn.com/fai/archive/tags/TFS+2008+and+SQL+Server+collations/default.aspx">TFS 2008 and SQL Server collations</category><category domain="http://blogs.msdn.com/fai/archive/tags/VSTS/default.aspx">VSTS</category></item></channel></rss>